Version 9.0 (20230830-154348)
Breaking Changes
- Removes Vuforia
 - Fields in 
AprilTagDetectionandAprilTagPose(ftc/raw)objects are nowfinal - VisionPortal builder method 
setCameraMonitorViewId()has been renamed tosetLiveViewContainerId()andenableCameraMonitoring()has been renamed toenableLiveView() 
Enhancements
- Adds support for the DFRobot HuskyLens Vision Sensor.
 - Blocks teams can now perform webcam calibration.
- Added a Block for System.currentTimeMillis (under Utilities/Time)
 - Added a Block for VisionPortal.saveNextFrameRaw (under Vision/VisionPortal)
 - Added a new sample Blocks OpMode called UtilityCameraFrameCapture.
 
 - The RobotDriveByGyro sample has been updated to use the new universal IMU interface. It now supports both IMU types.
 - Removed some error-prone ElapsedTime Blocks from the Blocks editor's toolbox. This is not a breaking change: old Blocks OpModes that use these Blocks will still function, both in the Blocks editor and at runtime.
 - Standardizes on the form "OpMode" for the term OpMode.
- The preferred way to refer to OpModes that specifically extend 
LinearOpMode(including Blocks OpModes) is "linear OpMode". - The preferred way to refer to OpModes that specifically extend 
OpModedirectly is "iterative OpMode". 
 - The preferred way to refer to OpModes that specifically extend 
 - Overhauls 
OpModeandLinearOpModeJavadoc comments to be easier to read and include more detail. - Makes minor enhancements to Java samples
- Javadoc comments in samples that could be rendered badly in Android Studio have been converted to standard multi-line comments
 - Consistency between samples has been improved
 - The SensorDigitalTouch sample has been replaced with a new SensorTouch sample that uses the 
TouchSensorinterface instead ofDigitalChannel. - The ConceptCompassCalibration, SensorMRCompass, and SensorMRIRSeeker samples have been deleted, as they are not useful for modern FTC competitions.
 
 
Bug Fixes
- Fixes a bug which prevented PlayStation gamepads from being used in bluetooth mode. Bluetooth is NOT legal for competition but may be useful to allow a DS device to be used while charging, or at an outreach event.
 - Fixes a bug where a Blocks OpMode's Date Modified value can change to December 31, 1969, if the Control Hub is rebooted while the Blocks OpMode is being edited.
 - Fixes the automatic TeleOp preselection feature (was broken in 8.2)
 - Fixes a bug where passing an integer number such as 123 to the Telemetry.addData block that takes a number shows up as 123.0 in the telemetry.
 - Fixes OnBotJava autocomplete issues:
- Autocomplete would incorrectly provide values for the current class when autocompleting a local variable
 hardwareMapautocomplete would incorrectly include lambda class entries
 - Fixes OnBotJava not automatically importing classes.
 - Fixes OnBotJava tabs failing to close when their file is deleted.
 - Fixes a project view refresh not happening when a file is renamed in OnBotJava.
 - Fixes the "Download" context menu item for external libraries in the OnBotJava interface.
 - Fixes issue where Driver Station telemetry would intermittently freeze when set to Monospace mode.
 - Fixes performance regression for certain REV Hub operations that was introduced in version 8.2.
 - Fixes TagID comparison logic in DriveToTag samples.
 
