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
On a local benchmark, removing compute is faster than compute in both debug and release mode on a Pixel 4. On a MotoG4, a much larger text sample (800 Kb) takes 50 ms, so we cannot simple remove the limit. Increase to 50 Kb which should take at most a ms or two on an older device, and only microseconds on newerones.
The remaining uses of this pattern were all due to wanting to have
the child's slot when `Element.forgetChild()` was called. However,
when that method is called, the child's `slot` value is still valid
in the context of the parent, so the uses can just use `child.slot`.
This is the final round of cleanup from the fallout of #63269
This wires up the new WindowProc delegation system that allows plugins
to handle top-level window messages (e.g., to control resize behavior).
Fixes#53168