mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
null annotate window.dart (#18789)
This commit is contained in:
parent
201dc00cb9
commit
fe80dff37b
@ -9,7 +9,7 @@ part of dart.ui;
|
||||
typedef VoidCallback = void Function();
|
||||
|
||||
/// Signature for [Window.onBeginFrame].
|
||||
typedef FrameCallback = void Function(Duration duration);
|
||||
typedef FrameCallback = void Function(Duration/*!*/ duration);
|
||||
|
||||
/// Signature for [Window.onReportTimings].
|
||||
///
|
||||
@ -23,25 +23,25 @@ typedef FrameCallback = void Function(Duration duration);
|
||||
/// even if there are no later frames to batch. The timing of the first frame
|
||||
/// will be sent immediately without batching.
|
||||
/// {@endtemplate}
|
||||
typedef TimingsCallback = void Function(List<FrameTiming> timings);
|
||||
typedef TimingsCallback = void Function(List<FrameTiming/*!*/>/*!*/ timings);
|
||||
|
||||
/// Signature for [Window.onPointerDataPacket].
|
||||
typedef PointerDataPacketCallback = void Function(PointerDataPacket packet);
|
||||
typedef PointerDataPacketCallback = void Function(PointerDataPacket/*!*/ packet);
|
||||
|
||||
/// Signature for [Window.onSemanticsAction].
|
||||
typedef SemanticsActionCallback = void Function(int id, SemanticsAction action, ByteData args);
|
||||
typedef SemanticsActionCallback = void Function(int/*!*/ id, SemanticsAction/*!*/ action, ByteData/*?*/ args);
|
||||
|
||||
/// Signature for responses to platform messages.
|
||||
///
|
||||
/// Used as a parameter to [Window.sendPlatformMessage] and
|
||||
/// [Window.onPlatformMessage].
|
||||
typedef PlatformMessageResponseCallback = void Function(ByteData data);
|
||||
typedef PlatformMessageResponseCallback = void Function(ByteData/*?*/ data);
|
||||
|
||||
/// Signature for [Window.onPlatformMessage].
|
||||
typedef PlatformMessageCallback = void Function(String name, ByteData data, PlatformMessageResponseCallback callback);
|
||||
typedef PlatformMessageCallback = void Function(String/*!*/ name, ByteData/*?*/ data, PlatformMessageResponseCallback/*?*/ callback);
|
||||
|
||||
// Signature for _setNeedsReportTimings.
|
||||
typedef _SetNeedsReportTimingsFunc = void Function(bool value);
|
||||
typedef _SetNeedsReportTimingsFunc = void Function(bool/*!*/ value);
|
||||
|
||||
/// Various important time points in the lifetime of a frame.
|
||||
///
|
||||
@ -89,14 +89,14 @@ class FrameTiming {
|
||||
///
|
||||
/// This constructor is usually only called by the Flutter engine, or a test.
|
||||
/// To get the [FrameTiming] of your app, see [Window.onReportTimings].
|
||||
FrameTiming(List<int> timestamps)
|
||||
FrameTiming(List<int/*!*/>/*!*/ timestamps)
|
||||
: assert(timestamps.length == FramePhase.values.length), _timestamps = timestamps;
|
||||
|
||||
/// This is a raw timestamp in microseconds from some epoch. The epoch in all
|
||||
/// [FrameTiming] is the same, but it may not match [DateTime]'s epoch.
|
||||
int timestampInMicroseconds(FramePhase phase) => _timestamps[phase.index];
|
||||
int/*!*/ timestampInMicroseconds(FramePhase/*!*/ phase) => _timestamps[phase.index];
|
||||
|
||||
Duration _rawDuration(FramePhase phase) => Duration(microseconds: _timestamps[phase.index]);
|
||||
Duration/*!*/ _rawDuration(FramePhase/*!*/ phase) => Duration(microseconds: _timestamps[phase.index]);
|
||||
|
||||
/// The duration to build the frame on the UI thread.
|
||||
///
|
||||
@ -113,13 +113,13 @@ class FrameTiming {
|
||||
/// {@template dart.ui.FrameTiming.fps_milliseconds}
|
||||
/// That's about 16ms for 60fps, and 8ms for 120fps.
|
||||
/// {@endtemplate}
|
||||
Duration get buildDuration => _rawDuration(FramePhase.buildFinish) - _rawDuration(FramePhase.buildStart);
|
||||
Duration/*!*/ get buildDuration => _rawDuration(FramePhase.buildFinish) - _rawDuration(FramePhase.buildStart);
|
||||
|
||||
/// The duration to rasterize the frame on the raster thread.
|
||||
///
|
||||
/// {@macro dart.ui.FrameTiming.fps_smoothness_milliseconds}
|
||||
/// {@macro dart.ui.FrameTiming.fps_milliseconds}
|
||||
Duration get rasterDuration => _rawDuration(FramePhase.rasterFinish) - _rawDuration(FramePhase.rasterStart);
|
||||
Duration/*!*/ get rasterDuration => _rawDuration(FramePhase.rasterFinish) - _rawDuration(FramePhase.rasterStart);
|
||||
|
||||
/// The timespan between build start and raster finish.
|
||||
///
|
||||
@ -128,9 +128,9 @@ class FrameTiming {
|
||||
/// {@macro dart.ui.FrameTiming.fps_milliseconds}
|
||||
///
|
||||
/// See also [buildDuration] and [rasterDuration].
|
||||
Duration get totalSpan => _rawDuration(FramePhase.rasterFinish) - _rawDuration(FramePhase.buildStart);
|
||||
Duration/*!*/ get totalSpan => _rawDuration(FramePhase.rasterFinish) - _rawDuration(FramePhase.buildStart);
|
||||
|
||||
final List<int> _timestamps; // in microseconds
|
||||
final List<int/*!*/>/*!*/ _timestamps; // in microseconds
|
||||
|
||||
String _formatMS(Duration duration) => '${duration.inMicroseconds * 0.001}ms';
|
||||
|
||||
@ -209,16 +209,16 @@ class WindowPadding {
|
||||
const WindowPadding._({ this.left, this.top, this.right, this.bottom });
|
||||
|
||||
/// The distance from the left edge to the first unpadded pixel, in physical pixels.
|
||||
final double left;
|
||||
final double/*!*/ left;
|
||||
|
||||
/// The distance from the top edge to the first unpadded pixel, in physical pixels.
|
||||
final double top;
|
||||
final double/*!*/ top;
|
||||
|
||||
/// The distance from the right edge to the first unpadded pixel, in physical pixels.
|
||||
final double right;
|
||||
final double/*!*/ right;
|
||||
|
||||
/// The distance from the bottom edge to the first unpadded pixel, in physical pixels.
|
||||
final double bottom;
|
||||
final double/*!*/ bottom;
|
||||
|
||||
/// A window padding that has zeros for each edge.
|
||||
static const WindowPadding zero = WindowPadding._(left: 0.0, top: 0.0, right: 0.0, bottom: 0.0);
|
||||
@ -303,9 +303,9 @@ class Locale {
|
||||
/// Validity is not checked by default, but some methods may throw away
|
||||
/// invalid data.
|
||||
const Locale.fromSubtags({
|
||||
String languageCode = 'und',
|
||||
String/*!*/ languageCode = 'und',
|
||||
this.scriptCode,
|
||||
String countryCode,
|
||||
String/*?*/ countryCode,
|
||||
}) : assert(languageCode != null),
|
||||
assert(languageCode != ''),
|
||||
_languageCode = languageCode,
|
||||
@ -336,8 +336,8 @@ class Locale {
|
||||
///
|
||||
/// * [Locale.fromSubtags], which describes the conventions for creating
|
||||
/// [Locale] objects.
|
||||
String get languageCode => _deprecatedLanguageSubtagMap[_languageCode] ?? _languageCode;
|
||||
final String _languageCode;
|
||||
String/*!*/ get languageCode => _deprecatedLanguageSubtagMap[_languageCode] ?? _languageCode;
|
||||
final String/*!*/ _languageCode;
|
||||
|
||||
// This map is generated by //flutter/tools/gen_locale.dart
|
||||
// Mappings generated for language subtag registry as of 2019-02-27.
|
||||
@ -434,7 +434,7 @@ class Locale {
|
||||
///
|
||||
/// * [Locale.fromSubtags], which describes the conventions for creating
|
||||
/// [Locale] objects.
|
||||
final String scriptCode;
|
||||
final String/*?*/ scriptCode;
|
||||
|
||||
/// The region subtag for the locale.
|
||||
///
|
||||
@ -455,8 +455,8 @@ class Locale {
|
||||
///
|
||||
/// * [Locale.fromSubtags], which describes the conventions for creating
|
||||
/// [Locale] objects.
|
||||
String get countryCode => _deprecatedRegionSubtagMap[_countryCode] ?? _countryCode;
|
||||
final String _countryCode;
|
||||
String/*?*/ get countryCode => _deprecatedRegionSubtagMap[_countryCode] ?? _countryCode;
|
||||
final String/*?*/ _countryCode;
|
||||
|
||||
// This map is generated by //flutter/tools/gen_locale.dart
|
||||
// Mappings generated for language subtag registry as of 2019-02-27.
|
||||
@ -470,7 +470,7 @@ class Locale {
|
||||
};
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
bool/*!*/ operator ==(dynamic other) {
|
||||
if (identical(this, other))
|
||||
return true;
|
||||
return other is Locale
|
||||
@ -482,10 +482,10 @@ class Locale {
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => hashValues(languageCode, scriptCode, countryCode == '' ? null : countryCode);
|
||||
int/*!*/ get hashCode => hashValues(languageCode, scriptCode, countryCode == '' ? null : countryCode);
|
||||
|
||||
static Locale _cachedLocale;
|
||||
static String _cachedLocaleString;
|
||||
static Locale/*?*/ _cachedLocale;
|
||||
static String/*?*/ _cachedLocaleString;
|
||||
|
||||
/// Returns a string representing the locale.
|
||||
///
|
||||
@ -507,9 +507,9 @@ class Locale {
|
||||
/// Some examples of such identifiers: "en", "es-419", "hi-Deva-IN" and
|
||||
/// "zh-Hans-CN". See http://www.unicode.org/reports/tr35/ for technical
|
||||
/// details.
|
||||
String toLanguageTag() => _rawToString('-');
|
||||
String/*!*/ toLanguageTag() => _rawToString('-');
|
||||
|
||||
String _rawToString(String separator) {
|
||||
String/*!*/ _rawToString(String separator) {
|
||||
final StringBuffer out = StringBuffer(languageCode);
|
||||
if (scriptCode != null && scriptCode.isNotEmpty)
|
||||
out.write('$separator$scriptCode');
|
||||
@ -600,8 +600,8 @@ class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this value changes.
|
||||
double get devicePixelRatio => _devicePixelRatio;
|
||||
double _devicePixelRatio = 1.0;
|
||||
double/*!*/ get devicePixelRatio => _devicePixelRatio;
|
||||
double/*!*/ _devicePixelRatio = 1.0;
|
||||
|
||||
/// The dimensions of the rectangle into which the application will be drawn,
|
||||
/// in physical pixels.
|
||||
@ -620,8 +620,8 @@ class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this value changes.
|
||||
Size get physicalSize => _physicalSize;
|
||||
Size _physicalSize = Size.zero;
|
||||
Size/*!*/ get physicalSize => _physicalSize;
|
||||
Size/*!*/ _physicalSize = Size.zero;
|
||||
|
||||
/// The physical depth is the maximum elevation that the Window allows.
|
||||
///
|
||||
@ -634,8 +634,8 @@ class Window {
|
||||
/// The default value is [double.maxFinite], which is used for platforms that
|
||||
/// do not specify a maximum elevation. This property is currently on expected
|
||||
/// to be set to a non-default value on Fuchsia.
|
||||
double get physicalDepth => _physicalDepth;
|
||||
double _physicalDepth = double.maxFinite;
|
||||
double/*!*/ get physicalDepth => _physicalDepth;
|
||||
double/*!*/ _physicalDepth = double.maxFinite;
|
||||
|
||||
/// The number of physical pixels on each side of the display rectangle into
|
||||
/// which the application can render, but over which the operating system
|
||||
@ -655,8 +655,8 @@ class Window {
|
||||
/// * [MediaQuery.of], a simpler mechanism for the same.
|
||||
/// * [Scaffold], which automatically applies the view insets in material
|
||||
/// design applications.
|
||||
WindowPadding get viewInsets => _viewInsets;
|
||||
WindowPadding _viewInsets = WindowPadding.zero;
|
||||
WindowPadding/*!*/ get viewInsets => _viewInsets;
|
||||
WindowPadding/*!*/ _viewInsets = WindowPadding.zero;
|
||||
|
||||
/// The number of physical pixels on each side of the display rectangle into
|
||||
/// which the application can render, but which may be partially obscured by
|
||||
@ -682,8 +682,8 @@ class Window {
|
||||
/// * [MediaQuery.of], a simpler mechanism for the same.
|
||||
/// * [Scaffold], which automatically applies the padding in material design
|
||||
/// applications.
|
||||
WindowPadding get viewPadding => _viewPadding;
|
||||
WindowPadding _viewPadding = WindowPadding.zero;
|
||||
WindowPadding/*!*/ get viewPadding => _viewPadding;
|
||||
WindowPadding/*!*/ _viewPadding = WindowPadding.zero;
|
||||
|
||||
/// The number of physical pixels on each side of the display rectangle into
|
||||
/// which the application can render, but where the operating system will
|
||||
@ -700,8 +700,8 @@ class Window {
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this value changes.
|
||||
/// * [MediaQuery.of], a simpler mechanism for the same.
|
||||
WindowPadding get systemGestureInsets => _systemGestureInsets;
|
||||
WindowPadding _systemGestureInsets = WindowPadding.zero;
|
||||
WindowPadding/*!*/ get systemGestureInsets => _systemGestureInsets;
|
||||
WindowPadding/*!*/ _systemGestureInsets = WindowPadding.zero;
|
||||
|
||||
/// The number of physical pixels on each side of the display rectangle into
|
||||
/// which the application can render, but which may be partially obscured by
|
||||
@ -730,8 +730,8 @@ class Window {
|
||||
/// * [MediaQuery.of], a simpler mechanism for the same.
|
||||
/// * [Scaffold], which automatically applies the padding in material design
|
||||
/// applications.
|
||||
WindowPadding get padding => _padding;
|
||||
WindowPadding _padding = WindowPadding.zero;
|
||||
WindowPadding/*!*/ get padding => _padding;
|
||||
WindowPadding/*!*/ _padding = WindowPadding.zero;
|
||||
|
||||
/// A callback that is invoked whenever the [devicePixelRatio],
|
||||
/// [physicalSize], [padding], [viewInsets], or [systemGestureInsets]
|
||||
@ -750,10 +750,10 @@ class Window {
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// register for notifications when this is called.
|
||||
/// * [MediaQuery.of], a simpler mechanism for the same.
|
||||
VoidCallback get onMetricsChanged => _onMetricsChanged;
|
||||
VoidCallback _onMetricsChanged;
|
||||
Zone _onMetricsChangedZone;
|
||||
set onMetricsChanged(VoidCallback callback) {
|
||||
VoidCallback/*?*/ get onMetricsChanged => _onMetricsChanged;
|
||||
VoidCallback/*?*/ _onMetricsChanged;
|
||||
Zone/*!*/ _onMetricsChangedZone = Zone.root;
|
||||
set onMetricsChanged(VoidCallback/*?*/ callback) {
|
||||
_onMetricsChanged = callback;
|
||||
_onMetricsChangedZone = Zone.current;
|
||||
}
|
||||
@ -768,7 +768,7 @@ class Window {
|
||||
///
|
||||
/// This is equivalent to `locales.first` and will provide an empty non-null locale
|
||||
/// if the [locales] list has not been set or is empty.
|
||||
Locale get locale {
|
||||
Locale/*?*/ get locale {
|
||||
if (_locales != null && _locales.isNotEmpty) {
|
||||
return _locales.first;
|
||||
}
|
||||
@ -789,8 +789,8 @@ class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this value changes.
|
||||
List<Locale> get locales => _locales;
|
||||
List<Locale> _locales;
|
||||
List<Locale/*!*/>/*?*/ get locales => _locales;
|
||||
List<Locale/*!*/>/*?*/ _locales;
|
||||
|
||||
/// The locale that the platform's native locale resolution system resolves to.
|
||||
///
|
||||
@ -802,8 +802,8 @@ class Window {
|
||||
/// in order to arrive at the most appropriate locale for the app.
|
||||
///
|
||||
/// See [locales], which is the list of locales the user/device prefers.
|
||||
Locale get platformResolvedLocale => _platformResolvedLocale;
|
||||
Locale _platformResolvedLocale;
|
||||
Locale/*?*/ get platformResolvedLocale => _platformResolvedLocale;
|
||||
Locale/*?*/ _platformResolvedLocale;
|
||||
|
||||
/// A callback that is invoked whenever [locale] changes value.
|
||||
///
|
||||
@ -814,9 +814,9 @@ class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this callback is invoked.
|
||||
VoidCallback get onLocaleChanged => _onLocaleChanged;
|
||||
VoidCallback _onLocaleChanged;
|
||||
Zone _onLocaleChangedZone;
|
||||
VoidCallback/*?*/ get onLocaleChanged => _onLocaleChanged;
|
||||
VoidCallback/*?*/ _onLocaleChanged;
|
||||
Zone/*!*/ _onLocaleChangedZone = Zone.root;
|
||||
set onLocaleChanged(VoidCallback callback) {
|
||||
_onLocaleChanged = callback;
|
||||
_onLocaleChangedZone = Zone.current;
|
||||
@ -828,15 +828,15 @@ class Window {
|
||||
///
|
||||
/// It is used to initialize [SchedulerBinding.lifecycleState] at startup
|
||||
/// with any buffered lifecycle state events.
|
||||
String get initialLifecycleState {
|
||||
String/*!*/ get initialLifecycleState {
|
||||
_initialLifecycleStateAccessed = true;
|
||||
return _initialLifecycleState;
|
||||
}
|
||||
String _initialLifecycleState;
|
||||
/*late*/ String/*!*/ _initialLifecycleState;
|
||||
/// Tracks if the initial state has been accessed. Once accessed, we
|
||||
/// will stop updating the [initialLifecycleState], as it is not the
|
||||
/// preferred way to access the state.
|
||||
bool _initialLifecycleStateAccessed = false;
|
||||
bool/*!*/ _initialLifecycleStateAccessed = false;
|
||||
|
||||
/// The system-reported text scale.
|
||||
///
|
||||
@ -850,15 +850,15 @@ class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this value changes.
|
||||
double get textScaleFactor => _textScaleFactor;
|
||||
double _textScaleFactor = 1.0;
|
||||
double/*!*/ get textScaleFactor => _textScaleFactor;
|
||||
double/*!*/ _textScaleFactor = 1.0;
|
||||
|
||||
/// The setting indicating whether time should always be shown in the 24-hour
|
||||
/// format.
|
||||
///
|
||||
/// This option is used by [showTimePicker].
|
||||
bool get alwaysUse24HourFormat => _alwaysUse24HourFormat;
|
||||
bool _alwaysUse24HourFormat = false;
|
||||
bool/*!*/ get alwaysUse24HourFormat => _alwaysUse24HourFormat;
|
||||
bool/*!*/ _alwaysUse24HourFormat = false;
|
||||
|
||||
/// A callback that is invoked whenever [textScaleFactor] changes value.
|
||||
///
|
||||
@ -869,18 +869,18 @@ class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this callback is invoked.
|
||||
VoidCallback get onTextScaleFactorChanged => _onTextScaleFactorChanged;
|
||||
VoidCallback _onTextScaleFactorChanged;
|
||||
Zone _onTextScaleFactorChangedZone;
|
||||
set onTextScaleFactorChanged(VoidCallback callback) {
|
||||
VoidCallback/*?*/ get onTextScaleFactorChanged => _onTextScaleFactorChanged;
|
||||
VoidCallback/*?*/ _onTextScaleFactorChanged;
|
||||
Zone/*!*/ _onTextScaleFactorChangedZone = Zone.root;
|
||||
set onTextScaleFactorChanged(VoidCallback/*?*/ callback) {
|
||||
_onTextScaleFactorChanged = callback;
|
||||
_onTextScaleFactorChangedZone = Zone.current;
|
||||
}
|
||||
|
||||
/// The setting indicating the current brightness mode of the host platform.
|
||||
/// If the platform has no preference, [platformBrightness] defaults to [Brightness.light].
|
||||
Brightness get platformBrightness => _platformBrightness;
|
||||
Brightness _platformBrightness = Brightness.light;
|
||||
Brightness/*!*/ get platformBrightness => _platformBrightness;
|
||||
Brightness/*!*/ _platformBrightness = Brightness.light;
|
||||
|
||||
/// A callback that is invoked whenever [platformBrightness] changes value.
|
||||
///
|
||||
@ -891,10 +891,10 @@ class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this callback is invoked.
|
||||
VoidCallback get onPlatformBrightnessChanged => _onPlatformBrightnessChanged;
|
||||
VoidCallback _onPlatformBrightnessChanged;
|
||||
Zone _onPlatformBrightnessChangedZone;
|
||||
set onPlatformBrightnessChanged(VoidCallback callback) {
|
||||
VoidCallback/*?*/ get onPlatformBrightnessChanged => _onPlatformBrightnessChanged;
|
||||
VoidCallback/*?*/ _onPlatformBrightnessChanged;
|
||||
Zone/*!*/ _onPlatformBrightnessChangedZone = Zone.root;
|
||||
set onPlatformBrightnessChanged(VoidCallback/*?*/ callback) {
|
||||
_onPlatformBrightnessChanged = callback;
|
||||
_onPlatformBrightnessChangedZone = Zone.current;
|
||||
}
|
||||
@ -918,10 +918,10 @@ class Window {
|
||||
/// scheduling of frames.
|
||||
/// * [RendererBinding], the Flutter framework class which manages layout and
|
||||
/// painting.
|
||||
FrameCallback get onBeginFrame => _onBeginFrame;
|
||||
FrameCallback _onBeginFrame;
|
||||
Zone _onBeginFrameZone;
|
||||
set onBeginFrame(FrameCallback callback) {
|
||||
FrameCallback/*?*/ get onBeginFrame => _onBeginFrame;
|
||||
FrameCallback/*?*/ _onBeginFrame;
|
||||
Zone/*!*/ _onBeginFrameZone = Zone.root;
|
||||
set onBeginFrame(FrameCallback/*?*/ callback) {
|
||||
_onBeginFrame = callback;
|
||||
_onBeginFrameZone = Zone.current;
|
||||
}
|
||||
@ -940,10 +940,10 @@ class Window {
|
||||
/// scheduling of frames.
|
||||
/// * [RendererBinding], the Flutter framework class which manages layout and
|
||||
/// painting.
|
||||
VoidCallback get onDrawFrame => _onDrawFrame;
|
||||
VoidCallback _onDrawFrame;
|
||||
Zone _onDrawFrameZone;
|
||||
set onDrawFrame(VoidCallback callback) {
|
||||
VoidCallback/*?*/ get onDrawFrame => _onDrawFrame;
|
||||
VoidCallback/*?*/ _onDrawFrame;
|
||||
Zone/*!*/ _onDrawFrameZone = Zone.root;
|
||||
set onDrawFrame(VoidCallback/*?*/ callback) {
|
||||
_onDrawFrame = callback;
|
||||
_onDrawFrameZone = Zone.current;
|
||||
}
|
||||
@ -969,10 +969,10 @@ class Window {
|
||||
/// Flutter spends less than 0.1ms every 1 second to report the timings
|
||||
/// (measured on iPhone6S). The 0.1ms is about 0.6% of 16ms (frame budget for
|
||||
/// 60fps), or 0.01% CPU usage per second.
|
||||
TimingsCallback get onReportTimings => _onReportTimings;
|
||||
TimingsCallback _onReportTimings;
|
||||
Zone _onReportTimingsZone;
|
||||
set onReportTimings(TimingsCallback callback) {
|
||||
TimingsCallback/*?*/ get onReportTimings => _onReportTimings;
|
||||
TimingsCallback/*?*/ _onReportTimings;
|
||||
Zone/*!*/ _onReportTimingsZone = Zone.root;
|
||||
set onReportTimings(TimingsCallback/*?*/ callback) {
|
||||
if ((callback == null) != (_onReportTimings == null)) {
|
||||
_setNeedsReportTimings(callback != null);
|
||||
}
|
||||
@ -980,7 +980,7 @@ class Window {
|
||||
_onReportTimingsZone = Zone.current;
|
||||
}
|
||||
|
||||
_SetNeedsReportTimingsFunc _setNeedsReportTimings;
|
||||
/*late*/ _SetNeedsReportTimingsFunc/*!*/ _setNeedsReportTimings;
|
||||
void _nativeSetNeedsReportTimings(bool/*!*/ value) native 'Window_setNeedsReportTimings';
|
||||
|
||||
/// A callback that is invoked when pointer data is available.
|
||||
@ -992,10 +992,10 @@ class Window {
|
||||
///
|
||||
/// * [GestureBinding], the Flutter framework class which manages pointer
|
||||
/// events.
|
||||
PointerDataPacketCallback get onPointerDataPacket => _onPointerDataPacket;
|
||||
PointerDataPacketCallback _onPointerDataPacket;
|
||||
Zone _onPointerDataPacketZone;
|
||||
set onPointerDataPacket(PointerDataPacketCallback callback) {
|
||||
PointerDataPacketCallback/*?*/ get onPointerDataPacket => _onPointerDataPacket;
|
||||
PointerDataPacketCallback/*?*/ _onPointerDataPacket;
|
||||
Zone/*!*/ _onPointerDataPacketZone = Zone.root;
|
||||
set onPointerDataPacket(PointerDataPacketCallback/*?*/ callback) {
|
||||
_onPointerDataPacket = callback;
|
||||
_onPointerDataPacketZone = Zone.current;
|
||||
}
|
||||
@ -1073,17 +1073,17 @@ class Window {
|
||||
///
|
||||
/// The [onSemanticsEnabledChanged] callback is called whenever this value
|
||||
/// changes.
|
||||
bool get semanticsEnabled => _semanticsEnabled;
|
||||
bool _semanticsEnabled = false;
|
||||
bool/*!*/ get semanticsEnabled => _semanticsEnabled;
|
||||
bool/*!*/ _semanticsEnabled = false;
|
||||
|
||||
/// A callback that is invoked when the value of [semanticsEnabled] changes.
|
||||
///
|
||||
/// The framework invokes this callback in the same zone in which the
|
||||
/// callback was set.
|
||||
VoidCallback get onSemanticsEnabledChanged => _onSemanticsEnabledChanged;
|
||||
VoidCallback _onSemanticsEnabledChanged;
|
||||
Zone _onSemanticsEnabledChangedZone;
|
||||
set onSemanticsEnabledChanged(VoidCallback callback) {
|
||||
VoidCallback/*?*/ get onSemanticsEnabledChanged => _onSemanticsEnabledChanged;
|
||||
VoidCallback/*?*/ _onSemanticsEnabledChanged;
|
||||
Zone/*!*/ _onSemanticsEnabledChangedZone = Zone.root;
|
||||
set onSemanticsEnabledChanged(VoidCallback/*?*/ callback) {
|
||||
_onSemanticsEnabledChanged = callback;
|
||||
_onSemanticsEnabledChangedZone = Zone.current;
|
||||
}
|
||||
@ -1096,26 +1096,27 @@ class Window {
|
||||
///
|
||||
/// The framework invokes this callback in the same zone in which the
|
||||
/// callback was set.
|
||||
SemanticsActionCallback get onSemanticsAction => _onSemanticsAction;
|
||||
SemanticsActionCallback _onSemanticsAction;
|
||||
Zone _onSemanticsActionZone;
|
||||
set onSemanticsAction(SemanticsActionCallback callback) {
|
||||
SemanticsActionCallback/*?*/ get onSemanticsAction => _onSemanticsAction;
|
||||
SemanticsActionCallback/*?*/ _onSemanticsAction;
|
||||
Zone/*!*/ _onSemanticsActionZone = Zone.root;
|
||||
set onSemanticsAction(SemanticsActionCallback/*?*/ callback) {
|
||||
_onSemanticsAction = callback;
|
||||
_onSemanticsActionZone = Zone.current;
|
||||
}
|
||||
|
||||
/// Additional accessibility features that may be enabled by the platform.
|
||||
AccessibilityFeatures get accessibilityFeatures => _accessibilityFeatures;
|
||||
AccessibilityFeatures _accessibilityFeatures;
|
||||
AccessibilityFeatures/*!*/ get accessibilityFeatures => _accessibilityFeatures;
|
||||
// The zero value matches the default value in `window_data.h`.
|
||||
AccessibilityFeatures/*!*/ _accessibilityFeatures = const AccessibilityFeatures._(0);
|
||||
|
||||
/// A callback that is invoked when the value of [accessibilityFeatures] changes.
|
||||
///
|
||||
/// The framework invokes this callback in the same zone in which the
|
||||
/// callback was set.
|
||||
VoidCallback get onAccessibilityFeaturesChanged => _onAccessibilityFeaturesChanged;
|
||||
VoidCallback _onAccessibilityFeaturesChanged;
|
||||
Zone _onAccessibilityFeaturesChangedZone;
|
||||
set onAccessibilityFeaturesChanged(VoidCallback callback) {
|
||||
VoidCallback/*?*/ get onAccessibilityFeaturesChanged => _onAccessibilityFeaturesChanged;
|
||||
VoidCallback/*?*/ _onAccessibilityFeaturesChanged;
|
||||
Zone/*!*/ _onAccessibilityFeaturesChangedZone = Zone.root;
|
||||
set onAccessibilityFeaturesChanged(VoidCallback/*?*/ callback) {
|
||||
_onAccessibilityFeaturesChanged = callback;
|
||||
_onAccessibilityFeaturesChangedZone = Zone.current;
|
||||
}
|
||||
@ -1173,10 +1174,10 @@ class Window {
|
||||
///
|
||||
/// The framework invokes this callback in the same zone in which the
|
||||
/// callback was set.
|
||||
PlatformMessageCallback get onPlatformMessage => _onPlatformMessage;
|
||||
PlatformMessageCallback _onPlatformMessage;
|
||||
Zone _onPlatformMessageZone;
|
||||
set onPlatformMessage(PlatformMessageCallback callback) {
|
||||
PlatformMessageCallback/*?*/ get onPlatformMessage => _onPlatformMessage;
|
||||
PlatformMessageCallback/*?*/ _onPlatformMessage;
|
||||
Zone/*!*/ _onPlatformMessageZone = Zone.root;
|
||||
set onPlatformMessage(PlatformMessageCallback/*?*/ callback) {
|
||||
_onPlatformMessage = callback;
|
||||
_onPlatformMessageZone = Zone.current;
|
||||
}
|
||||
@ -1231,38 +1232,38 @@ class AccessibilityFeatures {
|
||||
static const int _kHighContrastIndex = 1 << 5;
|
||||
|
||||
// A bitfield which represents each enabled feature.
|
||||
final int _index;
|
||||
final int/*!*/ _index;
|
||||
|
||||
/// Whether there is a running accessibility service which is changing the
|
||||
/// interaction model of the device.
|
||||
///
|
||||
/// For example, TalkBack on Android and VoiceOver on iOS enable this flag.
|
||||
bool get accessibleNavigation => _kAccessibleNavigation & _index != 0;
|
||||
bool/*!*/ get accessibleNavigation => _kAccessibleNavigation & _index != 0;
|
||||
|
||||
/// The platform is inverting the colors of the application.
|
||||
bool get invertColors => _kInvertColorsIndex & _index != 0;
|
||||
bool/*!*/ get invertColors => _kInvertColorsIndex & _index != 0;
|
||||
|
||||
/// The platform is requesting that animations be disabled or simplified.
|
||||
bool get disableAnimations => _kDisableAnimationsIndex & _index != 0;
|
||||
bool/*!*/ get disableAnimations => _kDisableAnimationsIndex & _index != 0;
|
||||
|
||||
/// The platform is requesting that text be rendered at a bold font weight.
|
||||
///
|
||||
/// Only supported on iOS.
|
||||
bool get boldText => _kBoldTextIndex & _index != 0;
|
||||
bool/*!*/ get boldText => _kBoldTextIndex & _index != 0;
|
||||
|
||||
/// The platform is requesting that certain animations be simplified and
|
||||
/// parallax effects removed.
|
||||
///
|
||||
/// Only supported on iOS.
|
||||
bool get reduceMotion => _kReduceMotionIndex & _index != 0;
|
||||
bool/*!*/ get reduceMotion => _kReduceMotionIndex & _index != 0;
|
||||
|
||||
/// The platform is requesting that UI be rendered with darker colors.
|
||||
///
|
||||
/// Only supported on iOS.
|
||||
bool get highContrast => _kHighContrastIndex & _index != 0;
|
||||
bool/*!*/ get highContrast => _kHighContrastIndex & _index != 0;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
String/*!*/ toString() {
|
||||
final List<String> features = <String>[];
|
||||
if (accessibleNavigation)
|
||||
features.add('accessibleNavigation');
|
||||
@ -1280,7 +1281,7 @@ class AccessibilityFeatures {
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
bool/*!*/ operator ==(dynamic other) {
|
||||
if (other.runtimeType != runtimeType)
|
||||
return false;
|
||||
return other is AccessibilityFeatures
|
||||
@ -1288,7 +1289,7 @@ class AccessibilityFeatures {
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => _index.hashCode;
|
||||
int/*!*/ get hashCode => _index.hashCode;
|
||||
}
|
||||
|
||||
/// Describes the contrast of a theme or color palette.
|
||||
@ -1321,4 +1322,4 @@ enum Brightness {
|
||||
/// The only place that `WidgetsBinding.instance.window` is inappropriate is if
|
||||
/// a `Window` is required before invoking `runApp()`. In that case, it is
|
||||
/// acceptable (though unfortunate) to use this object statically.
|
||||
final Window window = Window._();
|
||||
final Window/*!*/ window = Window._();
|
||||
|
||||
@ -184,7 +184,7 @@ void webOnlyInitializeEngine() {
|
||||
}
|
||||
|
||||
bool waitingForAnimation = false;
|
||||
ui.webOnlyScheduleFrameCallback = () {
|
||||
scheduleFrameCallback = () {
|
||||
// We're asked to schedule a frame and call `frameHandler` when the frame
|
||||
// fires.
|
||||
if (!waitingForAnimation) {
|
||||
|
||||
@ -8,6 +8,11 @@ part of engine;
|
||||
/// When set to true, all platform messages will be printed to the console.
|
||||
const bool _debugPrintPlatformMessages = false;
|
||||
|
||||
/// Requests that the browser schedule a frame.
|
||||
///
|
||||
/// This may be overridden in tests, for example, to pump fake frames.
|
||||
ui.VoidCallback scheduleFrameCallback;
|
||||
|
||||
/// The Web implementation of [ui.Window].
|
||||
class EngineWindow extends ui.Window {
|
||||
EngineWindow() {
|
||||
@ -156,6 +161,15 @@ class EngineWindow extends ui.Window {
|
||||
@override
|
||||
String/*!*/ get defaultRouteName => _defaultRouteName ??= _browserHistory.currentPath;
|
||||
|
||||
@override
|
||||
void scheduleFrame() {
|
||||
if (scheduleFrameCallback == null) {
|
||||
throw new Exception(
|
||||
'scheduleFrameCallback must be initialized first.');
|
||||
}
|
||||
scheduleFrameCallback();
|
||||
}
|
||||
|
||||
/// Change the strategy to use for handling browser history location.
|
||||
/// Setting this member will automatically update [_browserHistory].
|
||||
///
|
||||
@ -198,9 +212,9 @@ class EngineWindow extends ui.Window {
|
||||
}
|
||||
|
||||
@override
|
||||
ui.VoidCallback get onMetricsChanged => _onMetricsChanged;
|
||||
ui.VoidCallback _onMetricsChanged;
|
||||
Zone _onMetricsChangedZone;
|
||||
ui.VoidCallback/*?*/ get onMetricsChanged => _onMetricsChanged;
|
||||
ui.VoidCallback/*?*/ _onMetricsChanged;
|
||||
Zone/*!*/ _onMetricsChangedZone = Zone.root;
|
||||
@override
|
||||
set onMetricsChanged(ui.VoidCallback callback) {
|
||||
_onMetricsChanged = callback;
|
||||
@ -766,7 +780,7 @@ void _invoke3<A1, A2, A3>(
|
||||
/// `dart:ui` window delegates to this value. However, this value has a wider
|
||||
/// API surface, providing Web-specific functionality that the standard
|
||||
/// `dart:ui` version does not.
|
||||
final EngineWindow window = EngineWindow();
|
||||
final EngineWindow/*!*/ window = EngineWindow();
|
||||
|
||||
/// The Web implementation of [ui.WindowPadding].
|
||||
class WindowPadding implements ui.WindowPadding {
|
||||
|
||||
@ -40,7 +40,7 @@ Future<void> webOnlyInitializeTestDomRenderer({double devicePixelRatio = 3.0}) {
|
||||
engine.window.debugOverrideDevicePixelRatio(devicePixelRatio);
|
||||
engine.window.webOnlyDebugPhysicalSizeOverride =
|
||||
Size(800 * devicePixelRatio, 600 * devicePixelRatio);
|
||||
webOnlyScheduleFrameCallback = () {};
|
||||
engine.scheduleFrameCallback = () {};
|
||||
debugEmulateFlutterTesterEnvironment = true;
|
||||
|
||||
if (_platformInitializedFuture != null) {
|
||||
|
||||
@ -15,27 +15,27 @@ typedef VoidCallback = void Function();
|
||||
/// scheduler's epoch. Use timeStamp to determine how far to advance animation
|
||||
/// timelines so that all the animations in the system are synchronized to a
|
||||
/// common time base.
|
||||
typedef FrameCallback = void Function(Duration duration);
|
||||
typedef FrameCallback = void Function(Duration/*!*/ duration);
|
||||
|
||||
/// Signature for [Window.onReportTimings].
|
||||
typedef TimingsCallback = void Function(List<FrameTiming> timings);
|
||||
typedef TimingsCallback = void Function(List<FrameTiming/*!*/>/*!*/ timings);
|
||||
|
||||
/// Signature for [Window.onPointerDataPacket].
|
||||
typedef PointerDataPacketCallback = void Function(PointerDataPacket packet);
|
||||
typedef PointerDataPacketCallback = void Function(PointerDataPacket/*!*/ packet);
|
||||
|
||||
/// Signature for [Window.onSemanticsAction].
|
||||
typedef SemanticsActionCallback = void Function(
|
||||
int id, SemanticsAction action, ByteData args);
|
||||
int/*!*/ id, SemanticsAction/*!*/ action, ByteData/*?*/ args);
|
||||
|
||||
/// Signature for responses to platform messages.
|
||||
///
|
||||
/// Used as a parameter to [Window.sendPlatformMessage] and
|
||||
/// [Window.onPlatformMessage].
|
||||
typedef PlatformMessageResponseCallback = void Function(ByteData data);
|
||||
typedef PlatformMessageResponseCallback = void Function(ByteData/*?*/ data);
|
||||
|
||||
/// Signature for [Window.onPlatformMessage].
|
||||
typedef PlatformMessageCallback = void Function(
|
||||
String name, ByteData data, PlatformMessageResponseCallback callback);
|
||||
String/*!*/ name, ByteData/*?*/ data, PlatformMessageResponseCallback/*?*/ callback);
|
||||
|
||||
/// States that an application can be in.
|
||||
///
|
||||
@ -110,19 +110,19 @@ abstract class WindowPadding {
|
||||
|
||||
/// The distance from the left edge to the first unpadded pixel, in physical
|
||||
/// pixels.
|
||||
final double left;
|
||||
final double/*!*/ left;
|
||||
|
||||
/// The distance from the top edge to the first unpadded pixel, in physical
|
||||
/// pixels.
|
||||
final double top;
|
||||
final double/*!*/ top;
|
||||
|
||||
/// The distance from the right edge to the first unpadded pixel, in physical
|
||||
/// pixels.
|
||||
final double right;
|
||||
final double/*!*/ right;
|
||||
|
||||
/// The distance from the bottom edge to the first unpadded pixel, in physical
|
||||
/// pixels.
|
||||
final double bottom;
|
||||
final double/*!*/ bottom;
|
||||
|
||||
/// A window padding that has zeros for each edge.
|
||||
static const WindowPadding zero =
|
||||
@ -208,9 +208,9 @@ class Locale {
|
||||
/// Validity is not checked by default, but some methods may throw away
|
||||
/// invalid data.
|
||||
const Locale.fromSubtags({
|
||||
String languageCode = 'und',
|
||||
String/*!*/ languageCode = 'und',
|
||||
this.scriptCode,
|
||||
String countryCode,
|
||||
String/*?*/ countryCode,
|
||||
}) : assert(languageCode != null),
|
||||
assert(languageCode != ''),
|
||||
_languageCode = languageCode,
|
||||
@ -241,173 +241,91 @@ class Locale {
|
||||
///
|
||||
/// * [new Locale.fromSubtags], which describes the conventions for creating
|
||||
/// [Locale] objects.
|
||||
String get languageCode => _replaceDeprecatedLanguageSubtag(_languageCode);
|
||||
final String _languageCode;
|
||||
String/*!*/ get languageCode => _deprecatedLanguageSubtagMap[_languageCode] ?? _languageCode;
|
||||
final String/*!*/ _languageCode;
|
||||
|
||||
static String _replaceDeprecatedLanguageSubtag(String languageCode) {
|
||||
// This switch statement is generated by //flutter/tools/gen_locale.dart
|
||||
// Mappings generated for language subtag registry as of 2018-08-08.
|
||||
switch (languageCode) {
|
||||
case 'in':
|
||||
return 'id'; // Indonesian; deprecated 1989-01-01
|
||||
case 'iw':
|
||||
return 'he'; // Hebrew; deprecated 1989-01-01
|
||||
case 'ji':
|
||||
return 'yi'; // Yiddish; deprecated 1989-01-01
|
||||
case 'jw':
|
||||
return 'jv'; // Javanese; deprecated 2001-08-13
|
||||
case 'mo':
|
||||
return 'ro'; // Moldavian, Moldovan; deprecated 2008-11-22
|
||||
case 'aam':
|
||||
return 'aas'; // Aramanik; deprecated 2015-02-12
|
||||
case 'adp':
|
||||
return 'dz'; // Adap; deprecated 2015-02-12
|
||||
case 'aue':
|
||||
return 'ktz'; // =/Kx'au//'ein; deprecated 2015-02-12
|
||||
case 'ayx':
|
||||
return 'nun'; // Ayi (China); deprecated 2011-08-16
|
||||
case 'bgm':
|
||||
return 'bcg'; // Baga Mboteni; deprecated 2016-05-30
|
||||
case 'bjd':
|
||||
return 'drl'; // Bandjigali; deprecated 2012-08-12
|
||||
case 'ccq':
|
||||
return 'rki'; // Chaungtha; deprecated 2012-08-12
|
||||
case 'cjr':
|
||||
return 'mom'; // Chorotega; deprecated 2010-03-11
|
||||
case 'cka':
|
||||
return 'cmr'; // Khumi Awa Chin; deprecated 2012-08-12
|
||||
case 'cmk':
|
||||
return 'xch'; // Chimakum; deprecated 2010-03-11
|
||||
case 'coy':
|
||||
return 'pij'; // Coyaima; deprecated 2016-05-30
|
||||
case 'cqu':
|
||||
return 'quh'; // Chilean Quechua; deprecated 2016-05-30
|
||||
case 'drh':
|
||||
return 'khk'; // Darkhat; deprecated 2010-03-11
|
||||
case 'drw':
|
||||
return 'prs'; // Darwazi; deprecated 2010-03-11
|
||||
case 'gav':
|
||||
return 'dev'; // Gabutamon; deprecated 2010-03-11
|
||||
case 'gfx':
|
||||
return 'vaj'; // Mangetti Dune !Xung; deprecated 2015-02-12
|
||||
case 'ggn':
|
||||
return 'gvr'; // Eastern Gurung; deprecated 2016-05-30
|
||||
case 'gti':
|
||||
return 'nyc'; // Gbati-ri; deprecated 2015-02-12
|
||||
case 'guv':
|
||||
return 'duz'; // Gey; deprecated 2016-05-30
|
||||
case 'hrr':
|
||||
return 'jal'; // Horuru; deprecated 2012-08-12
|
||||
case 'ibi':
|
||||
return 'opa'; // Ibilo; deprecated 2012-08-12
|
||||
case 'ilw':
|
||||
return 'gal'; // Talur; deprecated 2013-09-10
|
||||
case 'jeg':
|
||||
return 'oyb'; // Jeng; deprecated 2017-02-23
|
||||
case 'kgc':
|
||||
return 'tdf'; // Kasseng; deprecated 2016-05-30
|
||||
case 'kgh':
|
||||
return 'kml'; // Upper Tanudan Kalinga; deprecated 2012-08-12
|
||||
case 'koj':
|
||||
return 'kwv'; // Sara Dunjo; deprecated 2015-02-12
|
||||
case 'krm':
|
||||
return 'bmf'; // Krim; deprecated 2017-02-23
|
||||
case 'ktr':
|
||||
return 'dtp'; // Kota Marudu Tinagas; deprecated 2016-05-30
|
||||
case 'kvs':
|
||||
return 'gdj'; // Kunggara; deprecated 2016-05-30
|
||||
case 'kwq':
|
||||
return 'yam'; // Kwak; deprecated 2015-02-12
|
||||
case 'kxe':
|
||||
return 'tvd'; // Kakihum; deprecated 2015-02-12
|
||||
case 'kzj':
|
||||
return 'dtp'; // Coastal Kadazan; deprecated 2016-05-30
|
||||
case 'kzt':
|
||||
return 'dtp'; // Tambunan Dusun; deprecated 2016-05-30
|
||||
case 'lii':
|
||||
return 'raq'; // Lingkhim; deprecated 2015-02-12
|
||||
case 'lmm':
|
||||
return 'rmx'; // Lamam; deprecated 2014-02-28
|
||||
case 'meg':
|
||||
return 'cir'; // Mea; deprecated 2013-09-10
|
||||
case 'mst':
|
||||
return 'mry'; // Cataelano Mandaya; deprecated 2010-03-11
|
||||
case 'mwj':
|
||||
return 'vaj'; // Maligo; deprecated 2015-02-12
|
||||
case 'myt':
|
||||
return 'mry'; // Sangab Mandaya; deprecated 2010-03-11
|
||||
case 'nad':
|
||||
return 'xny'; // Nijadali; deprecated 2016-05-30
|
||||
case 'ncp':
|
||||
return 'kdz'; // Ndaktup; deprecated 2018-03-08
|
||||
case 'nnx':
|
||||
return 'ngv'; // Ngong; deprecated 2015-02-12
|
||||
case 'nts':
|
||||
return 'pij'; // Natagaimas; deprecated 2016-05-30
|
||||
case 'oun':
|
||||
return 'vaj'; // !O!ung; deprecated 2015-02-12
|
||||
case 'pcr':
|
||||
return 'adx'; // Panang; deprecated 2013-09-10
|
||||
case 'pmc':
|
||||
return 'huw'; // Palumata; deprecated 2016-05-30
|
||||
case 'pmu':
|
||||
return 'phr'; // Mirpur Panjabi; deprecated 2015-02-12
|
||||
case 'ppa':
|
||||
return 'bfy'; // Pao; deprecated 2016-05-30
|
||||
case 'ppr':
|
||||
return 'lcq'; // Piru; deprecated 2013-09-10
|
||||
case 'pry':
|
||||
return 'prt'; // Pray 3; deprecated 2016-05-30
|
||||
case 'puz':
|
||||
return 'pub'; // Purum Naga; deprecated 2014-02-28
|
||||
case 'sca':
|
||||
return 'hle'; // Sansu; deprecated 2012-08-12
|
||||
case 'skk':
|
||||
return 'oyb'; // Sok; deprecated 2017-02-23
|
||||
case 'tdu':
|
||||
return 'dtp'; // Tempasuk Dusun; deprecated 2016-05-30
|
||||
case 'thc':
|
||||
return 'tpo'; // Tai Hang Tong; deprecated 2016-05-30
|
||||
case 'thx':
|
||||
return 'oyb'; // The; deprecated 2015-02-12
|
||||
case 'tie':
|
||||
return 'ras'; // Tingal; deprecated 2011-08-16
|
||||
case 'tkk':
|
||||
return 'twm'; // Takpa; deprecated 2011-08-16
|
||||
case 'tlw':
|
||||
return 'weo'; // South Wemale; deprecated 2012-08-12
|
||||
case 'tmp':
|
||||
return 'tyj'; // Tai Mène; deprecated 2016-05-30
|
||||
case 'tne':
|
||||
return 'kak'; // Tinoc Kallahan; deprecated 2016-05-30
|
||||
case 'tnf':
|
||||
return 'prs'; // Tangshewi; deprecated 2010-03-11
|
||||
case 'tsf':
|
||||
return 'taj'; // Southwestern Tamang; deprecated 2015-02-12
|
||||
case 'uok':
|
||||
return 'ema'; // Uokha; deprecated 2015-02-12
|
||||
case 'xba':
|
||||
return 'cax'; // Kamba (Brazil); deprecated 2016-05-30
|
||||
case 'xia':
|
||||
return 'acn'; // Xiandao; deprecated 2013-09-10
|
||||
case 'xkh':
|
||||
return 'waw'; // Karahawyana; deprecated 2016-05-30
|
||||
case 'xsj':
|
||||
return 'suj'; // Subi; deprecated 2015-02-12
|
||||
case 'ybd':
|
||||
return 'rki'; // Yangbye; deprecated 2012-08-12
|
||||
case 'yma':
|
||||
return 'lrr'; // Yamphe; deprecated 2012-08-12
|
||||
case 'ymt':
|
||||
return 'mtm'; // Mator-Taygi-Karagas; deprecated 2015-02-12
|
||||
case 'yos':
|
||||
return 'zom'; // Yos; deprecated 2013-09-10
|
||||
case 'yuu':
|
||||
return 'yug'; // Yugh; deprecated 2014-02-28
|
||||
default:
|
||||
return languageCode;
|
||||
}
|
||||
}
|
||||
// This map is generated by //flutter/tools/gen_locale.dart
|
||||
// Mappings generated for language subtag registry as of 2019-02-27.
|
||||
static const Map<String, String> _deprecatedLanguageSubtagMap = <String, String>{
|
||||
'in': 'id', // Indonesian; deprecated 1989-01-01
|
||||
'iw': 'he', // Hebrew; deprecated 1989-01-01
|
||||
'ji': 'yi', // Yiddish; deprecated 1989-01-01
|
||||
'jw': 'jv', // Javanese; deprecated 2001-08-13
|
||||
'mo': 'ro', // Moldavian, Moldovan; deprecated 2008-11-22
|
||||
'aam': 'aas', // Aramanik; deprecated 2015-02-12
|
||||
'adp': 'dz', // Adap; deprecated 2015-02-12
|
||||
'aue': 'ktz', // ǂKxʼauǁʼein; deprecated 2015-02-12
|
||||
'ayx': 'nun', // Ayi (China); deprecated 2011-08-16
|
||||
'bgm': 'bcg', // Baga Mboteni; deprecated 2016-05-30
|
||||
'bjd': 'drl', // Bandjigali; deprecated 2012-08-12
|
||||
'ccq': 'rki', // Chaungtha; deprecated 2012-08-12
|
||||
'cjr': 'mom', // Chorotega; deprecated 2010-03-11
|
||||
'cka': 'cmr', // Khumi Awa Chin; deprecated 2012-08-12
|
||||
'cmk': 'xch', // Chimakum; deprecated 2010-03-11
|
||||
'coy': 'pij', // Coyaima; deprecated 2016-05-30
|
||||
'cqu': 'quh', // Chilean Quechua; deprecated 2016-05-30
|
||||
'drh': 'khk', // Darkhat; deprecated 2010-03-11
|
||||
'drw': 'prs', // Darwazi; deprecated 2010-03-11
|
||||
'gav': 'dev', // Gabutamon; deprecated 2010-03-11
|
||||
'gfx': 'vaj', // Mangetti Dune ǃXung; deprecated 2015-02-12
|
||||
'ggn': 'gvr', // Eastern Gurung; deprecated 2016-05-30
|
||||
'gti': 'nyc', // Gbati-ri; deprecated 2015-02-12
|
||||
'guv': 'duz', // Gey; deprecated 2016-05-30
|
||||
'hrr': 'jal', // Horuru; deprecated 2012-08-12
|
||||
'ibi': 'opa', // Ibilo; deprecated 2012-08-12
|
||||
'ilw': 'gal', // Talur; deprecated 2013-09-10
|
||||
'jeg': 'oyb', // Jeng; deprecated 2017-02-23
|
||||
'kgc': 'tdf', // Kasseng; deprecated 2016-05-30
|
||||
'kgh': 'kml', // Upper Tanudan Kalinga; deprecated 2012-08-12
|
||||
'koj': 'kwv', // Sara Dunjo; deprecated 2015-02-12
|
||||
'krm': 'bmf', // Krim; deprecated 2017-02-23
|
||||
'ktr': 'dtp', // Kota Marudu Tinagas; deprecated 2016-05-30
|
||||
'kvs': 'gdj', // Kunggara; deprecated 2016-05-30
|
||||
'kwq': 'yam', // Kwak; deprecated 2015-02-12
|
||||
'kxe': 'tvd', // Kakihum; deprecated 2015-02-12
|
||||
'kzj': 'dtp', // Coastal Kadazan; deprecated 2016-05-30
|
||||
'kzt': 'dtp', // Tambunan Dusun; deprecated 2016-05-30
|
||||
'lii': 'raq', // Lingkhim; deprecated 2015-02-12
|
||||
'lmm': 'rmx', // Lamam; deprecated 2014-02-28
|
||||
'meg': 'cir', // Mea; deprecated 2013-09-10
|
||||
'mst': 'mry', // Cataelano Mandaya; deprecated 2010-03-11
|
||||
'mwj': 'vaj', // Maligo; deprecated 2015-02-12
|
||||
'myt': 'mry', // Sangab Mandaya; deprecated 2010-03-11
|
||||
'nad': 'xny', // Nijadali; deprecated 2016-05-30
|
||||
'ncp': 'kdz', // Ndaktup; deprecated 2018-03-08
|
||||
'nnx': 'ngv', // Ngong; deprecated 2015-02-12
|
||||
'nts': 'pij', // Natagaimas; deprecated 2016-05-30
|
||||
'oun': 'vaj', // ǃOǃung; deprecated 2015-02-12
|
||||
'pcr': 'adx', // Panang; deprecated 2013-09-10
|
||||
'pmc': 'huw', // Palumata; deprecated 2016-05-30
|
||||
'pmu': 'phr', // Mirpur Panjabi; deprecated 2015-02-12
|
||||
'ppa': 'bfy', // Pao; deprecated 2016-05-30
|
||||
'ppr': 'lcq', // Piru; deprecated 2013-09-10
|
||||
'pry': 'prt', // Pray 3; deprecated 2016-05-30
|
||||
'puz': 'pub', // Purum Naga; deprecated 2014-02-28
|
||||
'sca': 'hle', // Sansu; deprecated 2012-08-12
|
||||
'skk': 'oyb', // Sok; deprecated 2017-02-23
|
||||
'tdu': 'dtp', // Tempasuk Dusun; deprecated 2016-05-30
|
||||
'thc': 'tpo', // Tai Hang Tong; deprecated 2016-05-30
|
||||
'thx': 'oyb', // The; deprecated 2015-02-12
|
||||
'tie': 'ras', // Tingal; deprecated 2011-08-16
|
||||
'tkk': 'twm', // Takpa; deprecated 2011-08-16
|
||||
'tlw': 'weo', // South Wemale; deprecated 2012-08-12
|
||||
'tmp': 'tyj', // Tai Mène; deprecated 2016-05-30
|
||||
'tne': 'kak', // Tinoc Kallahan; deprecated 2016-05-30
|
||||
'tnf': 'prs', // Tangshewi; deprecated 2010-03-11
|
||||
'tsf': 'taj', // Southwestern Tamang; deprecated 2015-02-12
|
||||
'uok': 'ema', // Uokha; deprecated 2015-02-12
|
||||
'xba': 'cax', // Kamba (Brazil); deprecated 2016-05-30
|
||||
'xia': 'acn', // Xiandao; deprecated 2013-09-10
|
||||
'xkh': 'waw', // Karahawyana; deprecated 2016-05-30
|
||||
'xsj': 'suj', // Subi; deprecated 2015-02-12
|
||||
'ybd': 'rki', // Yangbye; deprecated 2012-08-12
|
||||
'yma': 'lrr', // Yamphe; deprecated 2012-08-12
|
||||
'ymt': 'mtm', // Mator-Taygi-Karagas; deprecated 2015-02-12
|
||||
'yos': 'zom', // Yos; deprecated 2013-09-10
|
||||
'yuu': 'yug', // Yugh; deprecated 2014-02-28
|
||||
};
|
||||
|
||||
/// The script subtag for the locale.
|
||||
///
|
||||
@ -421,7 +339,7 @@ class Locale {
|
||||
///
|
||||
/// * [new Locale.fromSubtags], which describes the conventions for creating
|
||||
/// [Locale] objects.
|
||||
final String scriptCode;
|
||||
final String/*?*/ scriptCode;
|
||||
|
||||
/// The region subtag for the locale.
|
||||
///
|
||||
@ -442,32 +360,22 @@ class Locale {
|
||||
///
|
||||
/// * [new Locale.fromSubtags], which describes the conventions for creating
|
||||
/// [Locale] objects.
|
||||
String get countryCode => _replaceDeprecatedRegionSubtag(_countryCode);
|
||||
final String _countryCode;
|
||||
String/*?*/ get countryCode => _deprecatedRegionSubtagMap[_countryCode] ?? _countryCode;
|
||||
final String/*?*/ _countryCode;
|
||||
|
||||
static String _replaceDeprecatedRegionSubtag(String regionCode) {
|
||||
// This switch statement is generated by //flutter/tools/gen_locale.dart
|
||||
// Mappings generated for language subtag registry as of 2018-08-08.
|
||||
switch (regionCode) {
|
||||
case 'BU':
|
||||
return 'MM'; // Burma; deprecated 1989-12-05
|
||||
case 'DD':
|
||||
return 'DE'; // German Democratic Republic; deprecated 1990-10-30
|
||||
case 'FX':
|
||||
return 'FR'; // Metropolitan France; deprecated 1997-07-14
|
||||
case 'TP':
|
||||
return 'TL'; // East Timor; deprecated 2002-05-20
|
||||
case 'YD':
|
||||
return 'YE'; // Democratic Yemen; deprecated 1990-08-14
|
||||
case 'ZR':
|
||||
return 'CD'; // Zaire; deprecated 1997-07-14
|
||||
default:
|
||||
return regionCode;
|
||||
}
|
||||
}
|
||||
// This map is generated by //flutter/tools/gen_locale.dart
|
||||
// Mappings generated for language subtag registry as of 2019-02-27.
|
||||
static const Map<String, String> _deprecatedRegionSubtagMap = <String, String>{
|
||||
'BU': 'MM', // Burma; deprecated 1989-12-05
|
||||
'DD': 'DE', // German Democratic Republic; deprecated 1990-10-30
|
||||
'FX': 'FR', // Metropolitan France; deprecated 1997-07-14
|
||||
'TP': 'TL', // East Timor; deprecated 2002-05-20
|
||||
'YD': 'YE', // Democratic Yemen; deprecated 1990-08-14
|
||||
'ZR': 'CD', // Zaire; deprecated 1997-07-14
|
||||
};
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
bool/*!*/ operator ==(dynamic other) {
|
||||
if (identical(this, other)) {
|
||||
return true;
|
||||
}
|
||||
@ -481,15 +389,15 @@ class Locale {
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => hashValues(languageCode, scriptCode, countryCode);
|
||||
int/*!*/ get hashCode => hashValues(languageCode, scriptCode, countryCode);
|
||||
|
||||
@override
|
||||
String toString() => _rawToString('_');
|
||||
String/*!*/ toString() => _rawToString('_');
|
||||
|
||||
// TODO(yjbanov): implement to match flutter native.
|
||||
String toLanguageTag() => _rawToString('-');
|
||||
|
||||
String _rawToString(String separator) {
|
||||
String/*!*/ _rawToString(String separator) {
|
||||
final StringBuffer out = StringBuffer(languageCode);
|
||||
if (scriptCode != null) {
|
||||
out.write('$separator$scriptCode');
|
||||
@ -529,7 +437,7 @@ abstract class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this value changes.
|
||||
double get devicePixelRatio;
|
||||
double/*!*/ get devicePixelRatio;
|
||||
|
||||
/// The dimensions of the rectangle into which the application will be drawn,
|
||||
/// in physical pixels.
|
||||
@ -548,7 +456,7 @@ abstract class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this value changes.
|
||||
Size get physicalSize;
|
||||
Size/*!*/ get physicalSize;
|
||||
|
||||
/// The physical depth is the maximum elevation that the Window allows.
|
||||
///
|
||||
@ -561,7 +469,7 @@ abstract class Window {
|
||||
/// The default value is [double.maxFinite], which is used for platforms that
|
||||
/// do not specify a maximum elevation. This property is currently on expected
|
||||
/// to be set to a non-default value on Fuchsia.
|
||||
double get physicalDepth;
|
||||
double/*!*/ get physicalDepth;
|
||||
|
||||
/// The number of physical pixels on each side of the display rectangle into
|
||||
/// which the application can render, but over which the operating system
|
||||
@ -577,11 +485,11 @@ abstract class Window {
|
||||
/// * [MediaQuery.of], a simpler mechanism for the same.
|
||||
/// * [Scaffold], which automatically applies the view insets in material
|
||||
/// design applications.
|
||||
WindowPadding get viewInsets => WindowPadding.zero;
|
||||
WindowPadding/*!*/ get viewInsets => WindowPadding.zero;
|
||||
|
||||
WindowPadding get viewPadding => WindowPadding.zero;
|
||||
WindowPadding/*!*/ get viewPadding => WindowPadding.zero;
|
||||
|
||||
WindowPadding get systemGestureInsets => WindowPadding.zero;
|
||||
WindowPadding/*!*/ get systemGestureInsets => WindowPadding.zero;
|
||||
|
||||
/// The number of physical pixels on each side of the display rectangle into
|
||||
/// which the application can render, but which may be partially obscured by
|
||||
@ -598,7 +506,7 @@ abstract class Window {
|
||||
/// * [MediaQuery.of], a simpler mechanism for the same.
|
||||
/// * [Scaffold], which automatically applies the padding in material design
|
||||
/// applications.
|
||||
WindowPadding get padding => WindowPadding.zero;
|
||||
WindowPadding/*!*/ get padding => WindowPadding.zero;
|
||||
|
||||
/// The system-reported text scale.
|
||||
///
|
||||
@ -612,15 +520,15 @@ abstract class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this value changes.
|
||||
double get textScaleFactor => _textScaleFactor;
|
||||
double _textScaleFactor = 1.0;
|
||||
double/*!*/ get textScaleFactor => _textScaleFactor;
|
||||
double/*!*/ _textScaleFactor = 1.0;
|
||||
|
||||
/// The setting indicating whether time should always be shown in the 24-hour
|
||||
/// format.
|
||||
///
|
||||
/// This option is used by [showTimePicker].
|
||||
bool get alwaysUse24HourFormat => _alwaysUse24HourFormat;
|
||||
bool _alwaysUse24HourFormat = false;
|
||||
bool/*!*/ get alwaysUse24HourFormat => _alwaysUse24HourFormat;
|
||||
bool/*!*/ _alwaysUse24HourFormat = false;
|
||||
|
||||
/// A callback that is invoked whenever [textScaleFactor] changes value.
|
||||
///
|
||||
@ -631,11 +539,11 @@ abstract class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this callback is invoked.
|
||||
VoidCallback get onTextScaleFactorChanged;
|
||||
set onTextScaleFactorChanged(VoidCallback callback);
|
||||
VoidCallback/*?*/ get onTextScaleFactorChanged;
|
||||
set onTextScaleFactorChanged(VoidCallback/*?*/ callback);
|
||||
|
||||
/// The setting indicating the current brightness mode of the host platform.
|
||||
Brightness get platformBrightness;
|
||||
Brightness/*!*/ get platformBrightness;
|
||||
|
||||
/// A callback that is invoked whenever [platformBrightness] changes value.
|
||||
///
|
||||
@ -646,8 +554,8 @@ abstract class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this callback is invoked.
|
||||
VoidCallback get onPlatformBrightnessChanged;
|
||||
set onPlatformBrightnessChanged(VoidCallback callback);
|
||||
VoidCallback/*?*/ get onPlatformBrightnessChanged;
|
||||
set onPlatformBrightnessChanged(VoidCallback/*?*/ callback);
|
||||
|
||||
/// A callback that is invoked whenever the [devicePixelRatio],
|
||||
/// [physicalSize], [padding], or [viewInsets] values change, for example
|
||||
@ -665,8 +573,8 @@ abstract class Window {
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// register for notifications when this is called.
|
||||
/// * [MediaQuery.of], a simpler mechanism for the same.
|
||||
VoidCallback get onMetricsChanged;
|
||||
set onMetricsChanged(VoidCallback callback);
|
||||
VoidCallback/*?*/ get onMetricsChanged;
|
||||
set onMetricsChanged(VoidCallback/*?*/ callback);
|
||||
|
||||
/// The system-reported default locale of the device.
|
||||
///
|
||||
@ -678,7 +586,7 @@ abstract class Window {
|
||||
///
|
||||
/// This is equivalent to `locales.first` and will provide an empty non-null locale
|
||||
/// if the [locales] list has not been set or is empty.
|
||||
Locale get locale;
|
||||
Locale/*?*/ get locale;
|
||||
|
||||
/// The full system-reported supported locales of the device.
|
||||
///
|
||||
@ -694,7 +602,7 @@ abstract class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this value changes.
|
||||
List<Locale> get locales;
|
||||
List<Locale/*!*/>/*?*/ get locales;
|
||||
|
||||
/// The locale that the platform's native locale resolution system resolves to.
|
||||
///
|
||||
@ -706,7 +614,7 @@ abstract class Window {
|
||||
/// in order to arrive at the most appropriate locale for the app.
|
||||
///
|
||||
/// See [locales], which is the list of locales the user/device prefers.
|
||||
Locale get platformResolvedLocale;
|
||||
Locale/*?*/ get platformResolvedLocale;
|
||||
|
||||
/// A callback that is invoked whenever [locale] changes value.
|
||||
///
|
||||
@ -717,8 +625,8 @@ abstract class Window {
|
||||
///
|
||||
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
|
||||
/// observe when this callback is invoked.
|
||||
VoidCallback get onLocaleChanged;
|
||||
set onLocaleChanged(VoidCallback callback);
|
||||
VoidCallback/*?*/ get onLocaleChanged;
|
||||
set onLocaleChanged(VoidCallback/*?*/ callback);
|
||||
|
||||
/// Requests that, at the next appropriate opportunity, the [onBeginFrame]
|
||||
/// and [onDrawFrame] callbacks be invoked.
|
||||
@ -727,13 +635,7 @@ abstract class Window {
|
||||
///
|
||||
/// * [SchedulerBinding], the Flutter framework class which manages the
|
||||
/// scheduling of frames.
|
||||
void scheduleFrame() {
|
||||
if (webOnlyScheduleFrameCallback == null) {
|
||||
throw new Exception(
|
||||
'webOnlyScheduleFrameCallback must be initialized first.');
|
||||
}
|
||||
webOnlyScheduleFrameCallback();
|
||||
}
|
||||
void scheduleFrame();
|
||||
|
||||
/// A callback that is invoked to notify the application that it is an
|
||||
/// appropriate time to provide a scene using the [SceneBuilder] API and the
|
||||
@ -754,8 +656,8 @@ abstract class Window {
|
||||
/// scheduling of frames.
|
||||
/// * [RendererBinding], the Flutter framework class which manages layout and
|
||||
/// painting.
|
||||
FrameCallback get onBeginFrame;
|
||||
set onBeginFrame(FrameCallback callback);
|
||||
FrameCallback/*?*/ get onBeginFrame;
|
||||
set onBeginFrame(FrameCallback/*?*/ callback);
|
||||
|
||||
/// A callback that is invoked to report the [FrameTiming] of recently
|
||||
/// rasterized frames.
|
||||
@ -773,8 +675,8 @@ abstract class Window {
|
||||
/// decrease the overhead (as this is available in the release mode). The
|
||||
/// timing of any frame will be sent within about 1 second even if there are
|
||||
/// no later frames to batch.
|
||||
TimingsCallback get onReportTimings;
|
||||
set onReportTimings(TimingsCallback callback);
|
||||
TimingsCallback/*?*/ get onReportTimings;
|
||||
set onReportTimings(TimingsCallback/*?*/ callback);
|
||||
|
||||
/// A callback that is invoked for each frame after [onBeginFrame] has
|
||||
/// completed and after the microtask queue has been drained. This can be
|
||||
@ -790,8 +692,8 @@ abstract class Window {
|
||||
/// scheduling of frames.
|
||||
/// * [RendererBinding], the Flutter framework class which manages layout and
|
||||
/// painting.
|
||||
VoidCallback get onDrawFrame;
|
||||
set onDrawFrame(VoidCallback callback);
|
||||
VoidCallback/*?*/ get onDrawFrame;
|
||||
set onDrawFrame(VoidCallback/*?*/ callback);
|
||||
|
||||
/// A callback that is invoked when pointer data is available.
|
||||
///
|
||||
@ -802,8 +704,8 @@ abstract class Window {
|
||||
///
|
||||
/// * [GestureBinding], the Flutter framework class which manages pointer
|
||||
/// events.
|
||||
PointerDataPacketCallback get onPointerDataPacket;
|
||||
set onPointerDataPacket(PointerDataPacketCallback callback);
|
||||
PointerDataPacketCallback/*?*/ get onPointerDataPacket;
|
||||
set onPointerDataPacket(PointerDataPacketCallback/*?*/ callback);
|
||||
|
||||
/// The route or path that the embedder requested when the application was
|
||||
/// launched.
|
||||
@ -845,15 +747,15 @@ abstract class Window {
|
||||
///
|
||||
/// This defaults to `true` on the Web because we may never receive a signal
|
||||
/// that an assistive technology is turned on.
|
||||
bool get semanticsEnabled =>
|
||||
bool/*!*/ get semanticsEnabled =>
|
||||
engine.EngineSemanticsOwner.instance.semanticsEnabled;
|
||||
|
||||
/// A callback that is invoked when the value of [semanticsEnabled] changes.
|
||||
///
|
||||
/// The framework invokes this callback in the same zone in which the
|
||||
/// callback was set.
|
||||
VoidCallback get onSemanticsEnabledChanged;
|
||||
set onSemanticsEnabledChanged(VoidCallback callback);
|
||||
VoidCallback/*?*/ get onSemanticsEnabledChanged;
|
||||
set onSemanticsEnabledChanged(VoidCallback/*?*/ callback);
|
||||
|
||||
/// A callback that is invoked whenever the user requests an action to be
|
||||
/// performed.
|
||||
@ -863,15 +765,15 @@ abstract class Window {
|
||||
///
|
||||
/// The framework invokes this callback in the same zone in which the
|
||||
/// callback was set.
|
||||
SemanticsActionCallback get onSemanticsAction;
|
||||
set onSemanticsAction(SemanticsActionCallback callback);
|
||||
SemanticsActionCallback/*?*/ get onSemanticsAction;
|
||||
set onSemanticsAction(SemanticsActionCallback/*?*/ callback);
|
||||
|
||||
/// A callback that is invoked when the value of [accessibilityFlags] changes.
|
||||
///
|
||||
/// The framework invokes this callback in the same zone in which the
|
||||
/// callback was set.
|
||||
VoidCallback get onAccessibilityFeaturesChanged;
|
||||
set onAccessibilityFeaturesChanged(VoidCallback callback);
|
||||
VoidCallback/*?*/ get onAccessibilityFeaturesChanged;
|
||||
set onAccessibilityFeaturesChanged(VoidCallback/*?*/ callback);
|
||||
|
||||
/// Called whenever this window receives a message from a platform-specific
|
||||
/// plugin.
|
||||
@ -886,8 +788,8 @@ abstract class Window {
|
||||
///
|
||||
/// The framework invokes this callback in the same zone in which the
|
||||
/// callback was set.
|
||||
PlatformMessageCallback get onPlatformMessage;
|
||||
set onPlatformMessage(PlatformMessageCallback callback);
|
||||
PlatformMessageCallback/*?*/ get onPlatformMessage;
|
||||
set onPlatformMessage(PlatformMessageCallback/*?*/ callback);
|
||||
|
||||
/// Change the retained semantics data about this window.
|
||||
///
|
||||
@ -916,8 +818,8 @@ abstract class Window {
|
||||
);
|
||||
|
||||
/// Additional accessibility features that may be enabled by the platform.
|
||||
AccessibilityFeatures get accessibilityFeatures => _accessibilityFeatures;
|
||||
AccessibilityFeatures _accessibilityFeatures = AccessibilityFeatures._(0);
|
||||
AccessibilityFeatures/*!*/ get accessibilityFeatures => _accessibilityFeatures;
|
||||
AccessibilityFeatures/*!*/ _accessibilityFeatures = AccessibilityFeatures._(0);
|
||||
|
||||
/// Updates the application's rendering on the GPU with the newly provided
|
||||
/// [Scene]. This function must be called within the scope of the
|
||||
@ -945,17 +847,13 @@ abstract class Window {
|
||||
/// painting.
|
||||
void render(Scene/*!*/ scene);
|
||||
|
||||
String get initialLifecycleState => _initialLifecycleState;
|
||||
|
||||
String _initialLifecycleState;
|
||||
String/*!*/ get initialLifecycleState => 'AppLifecycleState.resumed';
|
||||
|
||||
void setIsolateDebugName(String/*!*/ name) {}
|
||||
|
||||
ByteData/*?*/ getPersistentIsolateData() => null;
|
||||
}
|
||||
|
||||
VoidCallback webOnlyScheduleFrameCallback;
|
||||
|
||||
/// Additional accessibility features that may be enabled by the platform.
|
||||
///
|
||||
/// It is not possible to enable these settings from Flutter, instead they are
|
||||
@ -972,38 +870,38 @@ class AccessibilityFeatures {
|
||||
static const int _kHighContrastIndex = 1 << 5;
|
||||
|
||||
// A bitfield which represents each enabled feature.
|
||||
final int _index;
|
||||
final int/*!*/ _index;
|
||||
|
||||
/// Whether there is a running accessibility service which is changing the
|
||||
/// interaction model of the device.
|
||||
///
|
||||
/// For example, TalkBack on Android and VoiceOver on iOS enable this flag.
|
||||
bool get accessibleNavigation => _kAccessibleNavigation & _index != 0;
|
||||
bool/*!*/ get accessibleNavigation => _kAccessibleNavigation & _index != 0;
|
||||
|
||||
/// The platform is inverting the colors of the application.
|
||||
bool get invertColors => _kInvertColorsIndex & _index != 0;
|
||||
bool/*!*/ get invertColors => _kInvertColorsIndex & _index != 0;
|
||||
|
||||
/// The platform is requesting that animations be disabled or simplified.
|
||||
bool get disableAnimations => _kDisableAnimationsIndex & _index != 0;
|
||||
bool/*!*/ get disableAnimations => _kDisableAnimationsIndex & _index != 0;
|
||||
|
||||
/// The platform is requesting that text be rendered at a bold font weight.
|
||||
///
|
||||
/// Only supported on iOS.
|
||||
bool get boldText => _kBoldTextIndex & _index != 0;
|
||||
bool/*!*/ get boldText => _kBoldTextIndex & _index != 0;
|
||||
|
||||
/// The platform is requesting that certain animations be simplified and
|
||||
/// parallax effects removed.
|
||||
///
|
||||
/// Only supported on iOS.
|
||||
bool get reduceMotion => _kReduceMotionIndex & _index != 0;
|
||||
bool/*!*/ get reduceMotion => _kReduceMotionIndex & _index != 0;
|
||||
|
||||
/// The platform is requesting that UI be rendered with darker colors.
|
||||
///
|
||||
/// Only supported on iOS.
|
||||
bool get highContrast => _kHighContrastIndex & _index != 0;
|
||||
bool/*!*/ get highContrast => _kHighContrastIndex & _index != 0;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
String/*!*/ toString() {
|
||||
final List<String> features = <String>[];
|
||||
if (accessibleNavigation) {
|
||||
features.add('accessibleNavigation');
|
||||
@ -1027,7 +925,7 @@ class AccessibilityFeatures {
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
bool/*!*/ operator ==(dynamic other) {
|
||||
if (other.runtimeType != runtimeType) {
|
||||
return false;
|
||||
}
|
||||
@ -1036,7 +934,7 @@ class AccessibilityFeatures {
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => _index.hashCode;
|
||||
int/*!*/ get hashCode => _index.hashCode;
|
||||
}
|
||||
|
||||
/// Describes the contrast of a theme or color palette.
|
||||
@ -1065,10 +963,10 @@ class CallbackHandle {
|
||||
int/*!*/ toRawHandle() => _handle;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other);
|
||||
bool/*!*/ operator ==(Object other) => identical(this, other);
|
||||
|
||||
@override
|
||||
int get hashCode => super.hashCode;
|
||||
int/*!*/ get hashCode => super.hashCode;
|
||||
}
|
||||
|
||||
// TODO(flutter_web): see https://github.com/flutter/flutter/issues/33615.
|
||||
@ -1150,15 +1048,15 @@ class FrameTiming {
|
||||
///
|
||||
/// This constructor is usually only called by the Flutter engine, or a test.
|
||||
/// To get the [FrameTiming] of your app, see [Window.onReportTimings].
|
||||
FrameTiming(List<int> timestamps)
|
||||
FrameTiming(List<int/*!*/>/*!*/ timestamps)
|
||||
: assert(timestamps.length == FramePhase.values.length),
|
||||
_timestamps = timestamps;
|
||||
|
||||
/// This is a raw timestamp in microseconds from some epoch. The epoch in all
|
||||
/// [FrameTiming] is the same, but it may not match [DateTime]'s epoch.
|
||||
int timestampInMicroseconds(FramePhase phase) => _timestamps[phase.index];
|
||||
int/*!*/ timestampInMicroseconds(FramePhase phase) => _timestamps[phase.index];
|
||||
|
||||
Duration _rawDuration(FramePhase phase) =>
|
||||
Duration/*!*/ _rawDuration(FramePhase phase) =>
|
||||
Duration(microseconds: _timestamps[phase.index]);
|
||||
|
||||
/// The duration to build the frame on the UI thread.
|
||||
@ -1176,7 +1074,7 @@ class FrameTiming {
|
||||
/// {@template dart.ui.FrameTiming.fps_milliseconds}
|
||||
/// That's about 16ms for 60fps, and 8ms for 120fps.
|
||||
/// {@endtemplate}
|
||||
Duration get buildDuration =>
|
||||
Duration/*!*/ get buildDuration =>
|
||||
_rawDuration(FramePhase.buildFinish) -
|
||||
_rawDuration(FramePhase.buildStart);
|
||||
|
||||
@ -1184,7 +1082,7 @@ class FrameTiming {
|
||||
///
|
||||
/// {@macro dart.ui.FrameTiming.fps_smoothness_milliseconds}
|
||||
/// {@macro dart.ui.FrameTiming.fps_milliseconds}
|
||||
Duration get rasterDuration =>
|
||||
Duration/*!*/ get rasterDuration =>
|
||||
_rawDuration(FramePhase.rasterFinish) -
|
||||
_rawDuration(FramePhase.rasterStart);
|
||||
|
||||
@ -1195,11 +1093,11 @@ class FrameTiming {
|
||||
/// {@macro dart.ui.FrameTiming.fps_milliseconds}
|
||||
///
|
||||
/// See also [buildDuration] and [rasterDuration].
|
||||
Duration get totalSpan =>
|
||||
Duration/*!*/ get totalSpan =>
|
||||
_rawDuration(FramePhase.rasterFinish) -
|
||||
_rawDuration(FramePhase.buildStart);
|
||||
|
||||
final List<int> _timestamps; // in microseconds
|
||||
final List<int/*!*/>/*!*/ _timestamps; // in microseconds
|
||||
|
||||
String _formatMS(Duration duration) => '${duration.inMicroseconds * 0.001}ms';
|
||||
|
||||
@ -1212,4 +1110,4 @@ class FrameTiming {
|
||||
/// The [Window] singleton. This object exposes the size of the display, the
|
||||
/// core scheduler API, the input event callback, the graphics drawing API, and
|
||||
/// other such core services.
|
||||
Window get window => engine.window;
|
||||
Window/*!*/ get window => engine.window;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user