Avoid creating AndroidDevice discovery if the SDK cannot be located. Previously the tool would use which/where adb, however this required us to handle the AndroidSdk class being potentially null - which required an additional layer of indirection around all access. Sometimes these were forgotten leading to NPEs.
In general, not much can be done with an Android Device if the actual SDK is not installed.
Reland with fixed code + tests for null SDK + adb in AndroidDeviceDiscovery
* b08c6b95e Fixing synthesizing keys for multiple keys pressed down on flutter web (flutter/engine#19632)
* 8308b6ad8 Avoid passing nil to IOS accessibility announcement (flutter/engine#20700)
* 950b6a030 Roll Skia from ead4ca052b99 to 5da7327358e3 (1 revision) (flutter/engine#20782)
* 87fd0e497 Guard recording_canvas against restore calls without ending recording (flutter/engine#20786)
* 388193a67 Add tests for lerpDouble (flutter/engine#20778)
To allow tests to begin migrating to null safety, sound null safety needs to be disabled. Also removes the experiment flag that is unnecessary since the framework is on the SDK allowlist.
Avoid creating AndroidDevice discovery if the SDK cannot be located. Previously the tool would use which/where adb, however this required us to handle the AndroidSdk class being potentially null - which required an additional layer of indirection around all access. Sometimes these were forgotten leading to NPEs.
In general, not much can be done with an Android Device if the actual SDK is not installed.
Fixes#64246
If decoding the string contents of a stamp file fails, treat it as if the stamp file is missing. This is always safe to do, since at worst it downloads more artifacts. The files could end up corrupted if they were edited by another program, for example
Adds support for size analysis on iOS, macOS, linux, and Windows - using an uncompressed directory based approach. The output format is not currently specified.
Adds support for size analysis on android on windows, switching to package:archive
Updates the console format to display as a tree, allowing longer paths. Increases the number of dart libraries shown (to avoid only ever printing the flutter/dart:ui libraries, which dominate the size)
The pointer-argument-based version of Success() is deprecated; this
updates the template to use the new reference-based version (which
allows for inline construction of the response value).
Part of https://github.com/flutter/flutter/issues/63975
* fix bug when tap ListTitle when tristate enable #63846
* fix bug when tap ListTitle when tristate enable #63846
* code style
* improve the unit test case
* bow to convention