Trivial nit fixes (#12285)
This commit is contained in:
parent
4389f07024
commit
efb45ea788
@ -1386,7 +1386,7 @@ class IterableProperty<T> extends DiagnosticsProperty<Iterable<T>> {
|
|||||||
/// Create a diagnostics property for iterables (e.g. lists).
|
/// Create a diagnostics property for iterables (e.g. lists).
|
||||||
///
|
///
|
||||||
/// The [ifEmpty] argument is used to indicate how an iterable [value] with 0
|
/// The [ifEmpty] argument is used to indicate how an iterable [value] with 0
|
||||||
/// elements is displayed. If [ifEmpty] equals `null` that indicates that an
|
/// elements is displayed. If [ifEmpty] equals null that indicates that an
|
||||||
/// empty iterable [value] is not interesting to display similar to how
|
/// empty iterable [value] is not interesting to display similar to how
|
||||||
/// [defaultValue] is used to indicate that a specific concrete value is not
|
/// [defaultValue] is used to indicate that a specific concrete value is not
|
||||||
/// interesting to display.
|
/// interesting to display.
|
||||||
@ -1433,10 +1433,10 @@ class IterableProperty<T> extends DiagnosticsProperty<Iterable<T>> {
|
|||||||
/// Priority level of the diagnostic used to control which diagnostics should
|
/// Priority level of the diagnostic used to control which diagnostics should
|
||||||
/// be shown and filtered.
|
/// be shown and filtered.
|
||||||
///
|
///
|
||||||
/// If [ifEmpty] is `null` and the [value] is an empty [Iterable] then level
|
/// If [ifEmpty] is null and the [value] is an empty [Iterable] then level
|
||||||
/// [DiagnosticLevel.fine] is returned in a similar way to how an
|
/// [DiagnosticLevel.fine] is returned in a similar way to how an
|
||||||
/// [ObjectFlagProperty] handles when [ifNull] is `null` and the [value] is
|
/// [ObjectFlagProperty] handles when [ifNull] is null and the [value] is
|
||||||
/// `null`.
|
/// null.
|
||||||
@override
|
@override
|
||||||
DiagnosticLevel get level {
|
DiagnosticLevel get level {
|
||||||
if (ifEmpty == null && value != null && value.isEmpty && super.level != DiagnosticLevel.hidden)
|
if (ifEmpty == null && value != null && value.isEmpty && super.level != DiagnosticLevel.hidden)
|
||||||
@ -1605,8 +1605,8 @@ class DiagnosticsProperty<T> extends DiagnosticsNode {
|
|||||||
///
|
///
|
||||||
/// The [level] argument is just a suggestion and can be overridden if
|
/// The [level] argument is just a suggestion and can be overridden if
|
||||||
/// something else about the property causes it to have a lower or higher
|
/// something else about the property causes it to have a lower or higher
|
||||||
/// level. For example, if the property value is `null` and [missingIfNull] is
|
/// level. For example, if the property value is null and [missingIfNull] is
|
||||||
/// `true`, [level] is raised to [DiagnosticLevel.warning].
|
/// true, [level] is raised to [DiagnosticLevel.warning].
|
||||||
DiagnosticsProperty(
|
DiagnosticsProperty(
|
||||||
String name,
|
String name,
|
||||||
T value, {
|
T value, {
|
||||||
@ -2056,7 +2056,7 @@ abstract class Diagnosticable {
|
|||||||
/// Returns a debug representation of the object that is used by debugging
|
/// Returns a debug representation of the object that is used by debugging
|
||||||
/// tools and by [toStringDeep].
|
/// tools and by [toStringDeep].
|
||||||
///
|
///
|
||||||
/// Leave [name] as `null` if there is not a meaningful description of the
|
/// Leave [name] as null if there is not a meaningful description of the
|
||||||
/// relationship between the this node and its parent.
|
/// relationship between the this node and its parent.
|
||||||
///
|
///
|
||||||
/// Typically the [style] argument is only specified to indicate an atypical
|
/// Typically the [style] argument is only specified to indicate an atypical
|
||||||
|
@ -54,7 +54,7 @@ class ExpansionTile extends StatefulWidget {
|
|||||||
/// Called when the tile expands or collapses.
|
/// Called when the tile expands or collapses.
|
||||||
///
|
///
|
||||||
/// When the tile starts expanding, this function is called with the value
|
/// When the tile starts expanding, this function is called with the value
|
||||||
/// `true`. When the tile starts collapsing, this function is called with
|
/// true. When the tile starts collapsing, this function is called with
|
||||||
/// the value false.
|
/// the value false.
|
||||||
final ValueChanged<bool> onExpansionChanged;
|
final ValueChanged<bool> onExpansionChanged;
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ import 'theme.dart';
|
|||||||
/// ```dart
|
/// ```dart
|
||||||
/// assert(debugCheckHasMaterial(context));
|
/// assert(debugCheckHasMaterial(context));
|
||||||
/// ```
|
/// ```
|
||||||
/// The parameter [enableFeedback] must not be `null`.
|
/// The parameter [enableFeedback] must not be null.
|
||||||
///
|
///
|
||||||
/// See also:
|
/// See also:
|
||||||
///
|
///
|
||||||
|
@ -102,7 +102,7 @@ abstract class MaterialLocalizations {
|
|||||||
/// This text theme is incomplete. For example, it lacks text color
|
/// This text theme is incomplete. For example, it lacks text color
|
||||||
/// information. This theme must be merged with another text theme that
|
/// information. This theme must be merged with another text theme that
|
||||||
/// provides the missing values. The text styles provided by this theme have
|
/// provides the missing values. The text styles provided by this theme have
|
||||||
/// their [TextStyle.inherit] property set to `true`.
|
/// their [TextStyle.inherit] property set to true.
|
||||||
///
|
///
|
||||||
/// Typically a complete theme is obtained via [Theme.of], which can be
|
/// Typically a complete theme is obtained via [Theme.of], which can be
|
||||||
/// localized using the [Localizations] widget.
|
/// localized using the [Localizations] widget.
|
||||||
|
@ -303,7 +303,7 @@ class _IndicatorPainter extends CustomPainter {
|
|||||||
|
|
||||||
static bool _tabOffsetsNotEqual(List<double> a, List<double> b) {
|
static bool _tabOffsetsNotEqual(List<double> a, List<double> b) {
|
||||||
assert(a != null && b != null && a.length == b.length);
|
assert(a != null && b != null && a.length == b.length);
|
||||||
for(int i = 0; i < a.length; i++) {
|
for (int i = 0; i < a.length; i += 1) {
|
||||||
if (a[i] != b[i])
|
if (a[i] != b[i])
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -457,7 +457,7 @@ class ThemeData {
|
|||||||
/// provided by the [localTextGeometry].
|
/// provided by the [localTextGeometry].
|
||||||
///
|
///
|
||||||
/// The [TextStyle.inherit] field in the text styles provided by
|
/// The [TextStyle.inherit] field in the text styles provided by
|
||||||
/// [localTextGeometry] must be set to `true`.
|
/// [localTextGeometry] must be set to true.
|
||||||
static ThemeData localize(ThemeData baseTheme, TextTheme localTextGeometry) {
|
static ThemeData localize(ThemeData baseTheme, TextTheme localTextGeometry) {
|
||||||
assert(baseTheme != null);
|
assert(baseTheme != null);
|
||||||
assert(localTextGeometry != null);
|
assert(localTextGeometry != null);
|
||||||
|
@ -287,7 +287,7 @@ class _MinuteControl extends StatelessWidget {
|
|||||||
/// Provides time picker header layout configuration for the given
|
/// Provides time picker header layout configuration for the given
|
||||||
/// [timeOfDayFormat] passing [context] to each widget in the configuration.
|
/// [timeOfDayFormat] passing [context] to each widget in the configuration.
|
||||||
///
|
///
|
||||||
/// [timeOfDayFormat] and [context] must not be `null`.
|
/// The [timeOfDayFormat] and [context] arguments must not be null.
|
||||||
_TimePickerHeaderFormat _buildHeaderFormat(TimeOfDayFormat timeOfDayFormat, _TimePickerFragmentContext context) {
|
_TimePickerHeaderFormat _buildHeaderFormat(TimeOfDayFormat timeOfDayFormat, _TimePickerFragmentContext context) {
|
||||||
// Creates an hour fragment.
|
// Creates an hour fragment.
|
||||||
_TimePickerHeaderFragment hour(HourFormat hourFormat) {
|
_TimePickerHeaderFragment hour(HourFormat hourFormat) {
|
||||||
|
@ -130,7 +130,7 @@ class TwoLevelSublist extends StatefulWidget {
|
|||||||
/// Called when the sublist expands or collapses.
|
/// Called when the sublist expands or collapses.
|
||||||
///
|
///
|
||||||
/// When the sublist starts expanding, this function is called with the value
|
/// When the sublist starts expanding, this function is called with the value
|
||||||
/// `true`. When the sublist starts collapsing, this function is called with
|
/// true. When the sublist starts collapsing, this function is called with
|
||||||
/// the value false.
|
/// the value false.
|
||||||
final ValueChanged<bool> onOpenChanged;
|
final ValueChanged<bool> onOpenChanged;
|
||||||
|
|
||||||
|
@ -778,7 +778,7 @@ class _RootSemanticsFragment extends _InterestingSemanticsFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Represents a RenderObject that has [isSemanticBoundary] set to `true`.
|
/// Represents a RenderObject that has [isSemanticBoundary] set to true.
|
||||||
///
|
///
|
||||||
/// It returns the SemanticsNode for that [RenderObject].
|
/// It returns the SemanticsNode for that [RenderObject].
|
||||||
class _ConcreteSemanticsFragment extends _InterestingSemanticsFragment {
|
class _ConcreteSemanticsFragment extends _InterestingSemanticsFragment {
|
||||||
@ -818,7 +818,7 @@ class _ConcreteSemanticsFragment extends _InterestingSemanticsFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Represents a RenderObject that does not have [isSemanticBoundary] set to
|
/// Represents a RenderObject that does not have [isSemanticBoundary] set to
|
||||||
/// `true`, but which does have some semantic annotators.
|
/// true, but which does have some semantic annotators.
|
||||||
///
|
///
|
||||||
/// When it is compiled, if the nearest ancestor [_SemanticsFragment] that isn't
|
/// When it is compiled, if the nearest ancestor [_SemanticsFragment] that isn't
|
||||||
/// also an [_ImplicitSemanticsFragment] is a [_RootSemanticsFragment] or a
|
/// also an [_ImplicitSemanticsFragment] is a [_RootSemanticsFragment] or a
|
||||||
@ -2500,7 +2500,7 @@ abstract class RenderObject extends AbstractNode with DiagnosticableTreeMixin im
|
|||||||
/// Whether this [RenderObject] makes other [RenderObject]s previously painted
|
/// Whether this [RenderObject] makes other [RenderObject]s previously painted
|
||||||
/// within the same semantic boundary unreachable for accessibility purposes.
|
/// within the same semantic boundary unreachable for accessibility purposes.
|
||||||
///
|
///
|
||||||
/// If `true` is returned, the [SemanticsNode]s for all siblings and cousins
|
/// If true is returned, the [SemanticsNode]s for all siblings and cousins
|
||||||
/// of this node, that are earlier in a depth-first pre-order traversal, are
|
/// of this node, that are earlier in a depth-first pre-order traversal, are
|
||||||
/// dropped from the semantics tree up until a semantic boundary (as defined
|
/// dropped from the semantics tree up until a semantic boundary (as defined
|
||||||
/// by [isSemanticBoundary]) is reached.
|
/// by [isSemanticBoundary]) is reached.
|
||||||
@ -2562,9 +2562,9 @@ abstract class RenderObject extends AbstractNode with DiagnosticableTreeMixin im
|
|||||||
///
|
///
|
||||||
/// The parameters [onlyLocalUpdates] and [noGeometry] tell the framework
|
/// The parameters [onlyLocalUpdates] and [noGeometry] tell the framework
|
||||||
/// how much of the semantics have changed. Bigger changes (indicated by
|
/// how much of the semantics have changed. Bigger changes (indicated by
|
||||||
/// setting one or both parameters to `false`) are more expansive to compute.
|
/// setting one or both parameters to false) are more expansive to compute.
|
||||||
///
|
///
|
||||||
/// [onlyLocalUpdates] should be set to `true` to reduce cost if the semantics
|
/// [onlyLocalUpdates] should be set to true to reduce cost if the semantics
|
||||||
/// update does not in any way change the shape of the semantics tree (e.g.
|
/// update does not in any way change the shape of the semantics tree (e.g.
|
||||||
/// [SemanticsNode]s will neither be added/removed from the tree nor be moved
|
/// [SemanticsNode]s will neither be added/removed from the tree nor be moved
|
||||||
/// within the tree). In other words, with [onlyLocalChanges] the
|
/// within the tree). In other words, with [onlyLocalChanges] the
|
||||||
@ -2572,14 +2572,14 @@ abstract class RenderObject extends AbstractNode with DiagnosticableTreeMixin im
|
|||||||
/// local [SemanticsNode] (e.g. changing a label or flag) without affecting
|
/// local [SemanticsNode] (e.g. changing a label or flag) without affecting
|
||||||
/// other nodes in the tree.
|
/// other nodes in the tree.
|
||||||
///
|
///
|
||||||
/// [onlyLocalUpdates] has to be set to `false` in the following cases as they
|
/// [onlyLocalUpdates] has to be set to false in the following cases as they
|
||||||
/// will change the shape of the tree:
|
/// will change the shape of the tree:
|
||||||
///
|
///
|
||||||
/// 1. [isSemanticBoundary] changed its value.
|
/// 1. [isSemanticBoundary] changed its value.
|
||||||
/// 2. [semanticsAnnotator] changed from or to returning `null` and
|
/// 2. [semanticsAnnotator] changed from or to returning null and
|
||||||
/// [isSemanticBoundary] isn't `true`.
|
/// [isSemanticBoundary] isn't true.
|
||||||
///
|
///
|
||||||
/// [noGeometry] should be set to `true` to reduce cost if the geometry (e.g.
|
/// [noGeometry] should be set to true to reduce cost if the geometry (e.g.
|
||||||
/// size and position) of the corresponding [SemanticsNode] has not
|
/// size and position) of the corresponding [SemanticsNode] has not
|
||||||
/// changed. Examples for such semantic updates that don't require a geometry
|
/// changed. Examples for such semantic updates that don't require a geometry
|
||||||
/// update are changes to flags, labels, or actions.
|
/// update are changes to flags, labels, or actions.
|
||||||
@ -2766,7 +2766,7 @@ abstract class RenderObject extends AbstractNode with DiagnosticableTreeMixin im
|
|||||||
/// [markNeedsSemanticsUpdate] must not have `onlyLocalUpdates` set, as it is
|
/// [markNeedsSemanticsUpdate] must not have `onlyLocalUpdates` set, as it is
|
||||||
/// possible that the node should be entirely removed.
|
/// possible that the node should be entirely removed.
|
||||||
///
|
///
|
||||||
/// If the annotation should only happen under certain conditions, `null`
|
/// If the annotation should only happen under certain conditions, null
|
||||||
/// should be returned if those conditions are currently not met to avoid
|
/// should be returned if those conditions are currently not met to avoid
|
||||||
/// the creation of an empty [SemanticsNode].
|
/// the creation of an empty [SemanticsNode].
|
||||||
SemanticsAnnotator get semanticsAnnotator => null;
|
SemanticsAnnotator get semanticsAnnotator => null;
|
||||||
|
@ -209,7 +209,7 @@ abstract class RenderSliverPersistentHeader extends RenderSliver with RenderObje
|
|||||||
/// be excluded from the semantic scrolling area.
|
/// be excluded from the semantic scrolling area.
|
||||||
///
|
///
|
||||||
/// [RenderSliver]s that stay on the screen even though the user has scrolled
|
/// [RenderSliver]s that stay on the screen even though the user has scrolled
|
||||||
/// past them (e.g. a pinned app bar) should set this to `true`.
|
/// past them (e.g. a pinned app bar) should set this to true.
|
||||||
@protected
|
@protected
|
||||||
bool get excludeFromSemanticsScrolling => _excludeFromSemanticsScrolling;
|
bool get excludeFromSemanticsScrolling => _excludeFromSemanticsScrolling;
|
||||||
bool _excludeFromSemanticsScrolling = false;
|
bool _excludeFromSemanticsScrolling = false;
|
||||||
|
@ -567,7 +567,7 @@ class RawGestureDetectorState extends State<RawGestureDetector> {
|
|||||||
/// The event can be interpreted by assistive technologies to provide
|
/// The event can be interpreted by assistive technologies to provide
|
||||||
/// additional feedback to the user about the state of the UI.
|
/// additional feedback to the user about the state of the UI.
|
||||||
///
|
///
|
||||||
/// The event will not be sent if [excludeFromSemantics] is set to `true`.
|
/// The event will not be sent if [excludeFromSemantics] is set to true.
|
||||||
void sendSemanticsEvent(SemanticsEvent event) {
|
void sendSemanticsEvent(SemanticsEvent event) {
|
||||||
if (!widget.excludeFromSemantics) {
|
if (!widget.excludeFromSemantics) {
|
||||||
final RenderSemanticsGestureHandler semanticsGestureHandler = context.findRenderObject();
|
final RenderSemanticsGestureHandler semanticsGestureHandler = context.findRenderObject();
|
||||||
|
@ -411,7 +411,7 @@ class Localizations extends StatefulWidget {
|
|||||||
/// Returns the localized resources object of the given `type` for the widget
|
/// Returns the localized resources object of the given `type` for the widget
|
||||||
/// tree that corresponds to the given `context`.
|
/// tree that corresponds to the given `context`.
|
||||||
///
|
///
|
||||||
/// Returns `null` if no resources object of the given `type` exists within
|
/// Returns null if no resources object of the given `type` exists within
|
||||||
/// the given `context`.
|
/// the given `context`.
|
||||||
///
|
///
|
||||||
/// This method is typically used by a static factory method on the `type`
|
/// This method is typically used by a static factory method on the `type`
|
||||||
|
@ -169,7 +169,8 @@ void main() {
|
|||||||
..circle(color: const Color(0x33000000))
|
..circle(color: const Color(0x33000000))
|
||||||
..circle(color: const Color(0x24000000))
|
..circle(color: const Color(0x24000000))
|
||||||
..circle(color: const Color(0x1f000000))
|
..circle(color: const Color(0x1f000000))
|
||||||
..circle(color: Colors.yellow[500]));
|
..circle(color: Colors.yellow[500])
|
||||||
|
);
|
||||||
await tester.drag(find.byType(Switch), const Offset(-30.0, 0.0));
|
await tester.drag(find.byType(Switch), const Offset(-30.0, 0.0));
|
||||||
await tester.pump();
|
await tester.pump();
|
||||||
|
|
||||||
@ -183,6 +184,7 @@ void main() {
|
|||||||
..circle(color: const Color(0x33000000))
|
..circle(color: const Color(0x33000000))
|
||||||
..circle(color: const Color(0x24000000))
|
..circle(color: const Color(0x24000000))
|
||||||
..circle(color: const Color(0x1f000000))
|
..circle(color: const Color(0x1f000000))
|
||||||
..circle(color: Colors.red[500]));
|
..circle(color: Colors.red[500])
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -425,7 +425,7 @@ class FlutterDriver {
|
|||||||
|
|
||||||
/// Turns semantics on or off in the Flutter app under test.
|
/// Turns semantics on or off in the Flutter app under test.
|
||||||
///
|
///
|
||||||
/// Returns `true` when the call actually changed the state from on to off or
|
/// Returns true when the call actually changed the state from on to off or
|
||||||
/// vice versa.
|
/// vice versa.
|
||||||
Future<bool> setSemantics(bool enabled, { Duration timeout: _kShortTimeout }) async {
|
Future<bool> setSemantics(bool enabled, { Duration timeout: _kShortTimeout }) async {
|
||||||
final SetSemanticsResult result = SetSemanticsResult.fromJson(await _sendCommand(new SetSemantics(enabled, timeout: timeout)));
|
final SetSemanticsResult result = SetSemanticsResult.fromJson(await _sendCommand(new SetSemantics(enabled, timeout: timeout)));
|
||||||
|
@ -434,10 +434,10 @@ class _EqualsIgnoringHashCodes extends Matcher {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns `true` if [c] represents a whitespace code unit.
|
/// Returns true if [c] represents a whitespace code unit.
|
||||||
bool _isWhitespace(int c) => (c <= 0x000D && c >= 0x0009) || c == 0x0020;
|
bool _isWhitespace(int c) => (c <= 0x000D && c >= 0x0009) || c == 0x0020;
|
||||||
|
|
||||||
/// Returns `true` if [c] represents a vertical line unicode line art code unit.
|
/// Returns true if [c] represents a vertical line unicode line art code unit.
|
||||||
///
|
///
|
||||||
/// See [https://en.wikipedia.org/wiki/Box-drawing_character]. This method only
|
/// See [https://en.wikipedia.org/wiki/Box-drawing_character]. This method only
|
||||||
/// specifies vertical line art code units currently used by Flutter line art.
|
/// specifies vertical line art code units currently used by Flutter line art.
|
||||||
|
@ -118,11 +118,7 @@ class AnsiTerminal {
|
|||||||
}
|
}
|
||||||
String choice;
|
String choice;
|
||||||
singleCharMode = true;
|
singleCharMode = true;
|
||||||
while(
|
while (isEmpty(choice) || choice.length != 1 || !acceptedCharacters.contains(choice)) {
|
||||||
isEmpty(choice)
|
|
||||||
|| choice.length != 1
|
|
||||||
|| !acceptedCharacters.contains(choice)
|
|
||||||
) {
|
|
||||||
if (isNotEmpty(prompt)) {
|
if (isNotEmpty(prompt)) {
|
||||||
printStatus(prompt, emphasis: true, newline: false);
|
printStatus(prompt, emphasis: true, newline: false);
|
||||||
if (displayAcceptedCharacters)
|
if (displayAcceptedCharacters)
|
||||||
|
@ -53,8 +53,8 @@ abstract class AnalyzeBase {
|
|||||||
bool get isBenchmarking => argResults['benchmark'];
|
bool get isBenchmarking => argResults['benchmark'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return `true` if [fileList] contains a path that resides inside the Flutter repository.
|
/// Return true if [fileList] contains a path that resides inside the Flutter repository.
|
||||||
/// If [fileList] is empty, then return `true` if the current directory resides inside the Flutter repository.
|
/// If [fileList] is empty, then return true if the current directory resides inside the Flutter repository.
|
||||||
bool inRepo(List<String> fileList) {
|
bool inRepo(List<String> fileList) {
|
||||||
if (fileList == null || fileList.isEmpty)
|
if (fileList == null || fileList.isEmpty)
|
||||||
fileList = <String>[fs.path.current];
|
fileList = <String>[fs.path.current];
|
||||||
|
@ -109,7 +109,7 @@ class ResidentCompiler {
|
|||||||
/// Otherwise, [mainPath] is ignored, but [invalidatedFiles] is recompiled
|
/// Otherwise, [mainPath] is ignored, but [invalidatedFiles] is recompiled
|
||||||
/// into new binary.
|
/// into new binary.
|
||||||
/// Binary file name is returned if compilation was successful, otherwise
|
/// Binary file name is returned if compilation was successful, otherwise
|
||||||
/// `null` is returned.
|
/// null is returned.
|
||||||
Future<String> recompile(String mainPath, List<String> invalidatedFiles) async {
|
Future<String> recompile(String mainPath, List<String> invalidatedFiles) async {
|
||||||
stdoutHandler.reset();
|
stdoutHandler.reset();
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ DevFSConfig get devFSConfig => context[DevFSConfig];
|
|||||||
abstract class DevFSContent {
|
abstract class DevFSContent {
|
||||||
bool _exists = true;
|
bool _exists = true;
|
||||||
|
|
||||||
/// Return `true` if this is the first time this method is called
|
/// Return true if this is the first time this method is called
|
||||||
/// or if the entry has been modified since this method was last called.
|
/// or if the entry has been modified since this method was last called.
|
||||||
bool get isModified;
|
bool get isModified;
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ class DevFSByteContent extends DevFSContent {
|
|||||||
_isModified = true;
|
_isModified = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return `true` only once so that the content is written to the device only once.
|
/// Return true only once so that the content is written to the device only once.
|
||||||
@override
|
@override
|
||||||
bool get isModified {
|
bool get isModified {
|
||||||
final bool modified = _isModified;
|
final bool modified = _isModified;
|
||||||
|
@ -673,7 +673,7 @@ int compareIosVersions(String v1, String v2) {
|
|||||||
final int v2Fragment = v2Fragments[i];
|
final int v2Fragment = v2Fragments[i];
|
||||||
if (v1Fragment != v2Fragment)
|
if (v1Fragment != v2Fragment)
|
||||||
return v1Fragment.compareTo(v2Fragment);
|
return v1Fragment.compareTo(v2Fragment);
|
||||||
i++;
|
i += 1;
|
||||||
}
|
}
|
||||||
return v1Fragments.length.compareTo(v2Fragments.length);
|
return v1Fragments.length.compareTo(v2Fragments.length);
|
||||||
}
|
}
|
||||||
|
@ -395,7 +395,7 @@ class VersionCheckError implements Exception {
|
|||||||
|
|
||||||
/// Runs [command] and returns the standard output as a string.
|
/// Runs [command] and returns the standard output as a string.
|
||||||
///
|
///
|
||||||
/// If [lenient] is `true` and the command fails, returns an empty string.
|
/// If [lenient] is true and the command fails, returns an empty string.
|
||||||
/// Otherwise, throws a [ToolExit] exception.
|
/// Otherwise, throws a [ToolExit] exception.
|
||||||
String _runSync(List<String> command, {bool lenient: true}) {
|
String _runSync(List<String> command, {bool lenient: true}) {
|
||||||
final ProcessResult results = processManager.runSync(command, workingDirectory: Cache.flutterRoot);
|
final ProcessResult results = processManager.runSync(command, workingDirectory: Cache.flutterRoot);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user