未验证 提交 462d2452 编写于 作者: D Dan Field 提交者: GitHub

NNBD migration for scenario_app (#27362)

上级 c74f25f4
......@@ -50,6 +50,7 @@ template("dart_snapshot") {
"--depfile=$abs_depfile",
"--depfile_output_filename=$rebased_output",
"--disable-dart-dev",
"--sound-null-safety",
]
args = [
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:convert';
import 'dart:developer' as developer;
import 'dart:io';
......@@ -27,7 +27,7 @@ void main() {
}
void _handleDriverMessage(Map<String, dynamic> call) {
final String methodName = call['method'] as String;
final String? methodName = call['method'] as String?;
switch (methodName) {
case 'set_scenario':
assert(call['args'] != null);
......@@ -39,7 +39,7 @@ void _handleDriverMessage(Map<String, dynamic> call) {
}
Future<void> _handlePlatformMessage(
String name, ByteData data, PlatformMessageResponseCallback callback) async {
String name, ByteData? data, PlatformMessageResponseCallback? callback) async {
if (data != null) {
print('$name = ${utf8.decode(data.buffer.asUint8List())}');
} else {
......@@ -48,11 +48,11 @@ Future<void> _handlePlatformMessage(
switch (name) {
case 'driver':
_handleDriverMessage(json.decode(utf8.decode(data.buffer.asUint8List())) as Map<String, dynamic>);
_handleDriverMessage(json.decode(utf8.decode(data!.buffer.asUint8List())) as Map<String, dynamic>);
break;
case 'write_timeline':
final String timelineData = await _getTimelineData();
callback(Uint8List.fromList(utf8.encode(timelineData)).buffer.asByteData());
callback!(Uint8List.fromList(utf8.encode(timelineData)).buffer.asByteData());
break;
default:
currentScenario?.onPlatformMessage(name, data, callback);
......@@ -61,7 +61,7 @@ Future<void> _handlePlatformMessage(
Future<String> _getTimelineData() async {
final developer.ServiceProtocolInfo info = await developer.Service.getInfo();
final Uri vmServiceTimelineUri = info.serverUri.resolve('getVMTimeline');
final Uri vmServiceTimelineUri = info.serverUri!.resolve('getVMTimeline');
final Map<String, dynamic> vmServiceTimelineJson = await _getJson(vmServiceTimelineUri);
final Map<String, dynamic> vmServiceResult = vmServiceTimelineJson['result'] as Map<String, dynamic>;
return json.encode(<String, dynamic>{
......
......@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:math' as math;
import 'dart:ui';
......@@ -89,7 +88,7 @@ class _NumberSwinger<T extends num> {
/// The current value of the swinger.
T get current => _current;
T _current;
late T _current;
bool _up;
......
......@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:ui';
import 'channel_util.dart';
......
......@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:convert';
import 'dart:ui';
......@@ -12,11 +10,11 @@ import 'package:meta/meta.dart';
/// Util method to replicate the behavior of a `MethodChannel` in the Flutter
/// framework.
void sendJsonMethodCall({
@required PlatformDispatcher dispatcher,
@required String channel,
@required String method,
required PlatformDispatcher dispatcher,
required String channel,
required String method,
dynamic arguments,
PlatformMessageResponseCallback callback,
PlatformMessageResponseCallback? callback,
}) {
sendJsonMessage(
dispatcher: dispatcher,
......@@ -30,10 +28,10 @@ void sendJsonMethodCall({
/// Send a JSON message over a channel.
void sendJsonMessage({
@required PlatformDispatcher dispatcher,
@required String channel,
@required Map<String, dynamic> json,
PlatformMessageResponseCallback callback,
required PlatformDispatcher dispatcher,
required String channel,
required Map<String, dynamic> json,
PlatformMessageResponseCallback? callback,
}) {
dispatcher.sendPlatformMessage(
channel,
......
......@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:ui';
import 'channel_util.dart';
......
......@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:typed_data';
import 'dart:ui';
......
......@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:typed_data';
import 'dart:ui';
......@@ -13,8 +12,8 @@ mixin PlatformEchoMixin on Scenario {
@override
void onPlatformMessage(
String name,
ByteData data,
PlatformMessageResponseCallback callback,
ByteData? data,
PlatformMessageResponseCallback? callback,
) {
window.sendPlatformMessage(name, data, null);
}
......
......@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
......@@ -33,7 +32,7 @@ class PlatformViewScenario extends Scenario with _BasePlatformViewScenarioMixin
/// Creates the PlatformView scenario.
///
/// The [dispatcher] parameter must not be null.
PlatformViewScenario(PlatformDispatcher dispatcher, String text, { this.id })
PlatformViewScenario(PlatformDispatcher dispatcher, String text, { required this.id })
: assert(dispatcher != null),
super(dispatcher) {
createPlatformView(dispatcher, text, id);
......@@ -58,7 +57,7 @@ class NonFullScreenFlutterViewPlatformViewScenario extends Scenario
/// The [dispatcher] parameter must not be null.
NonFullScreenFlutterViewPlatformViewScenario(
PlatformDispatcher dispatcher, String text,
{this.id})
{required this.id})
: assert(dispatcher != null),
super(dispatcher) {
createPlatformView(dispatcher, text, id);
......@@ -80,7 +79,7 @@ class PlatformViewNoOverlayIntersectionScenario extends Scenario with _BasePlatf
/// Creates the PlatformView scenario.
///
/// The [dispatcher] parameter must not be null.
PlatformViewNoOverlayIntersectionScenario(PlatformDispatcher dispatcher, String text, { this.id })
PlatformViewNoOverlayIntersectionScenario(PlatformDispatcher dispatcher, String text, { required this.id })
: assert(dispatcher != null),
super(dispatcher) {
createPlatformView(dispatcher, text, id);
......@@ -106,7 +105,7 @@ class PlatformViewPartialIntersectionScenario extends Scenario with _BasePlatfor
/// Creates the PlatformView scenario.
///
/// The [dispatcher] parameter must not be null.
PlatformViewPartialIntersectionScenario(PlatformDispatcher dispatcher, String text, { this.id })
PlatformViewPartialIntersectionScenario(PlatformDispatcher dispatcher, String text, { required this.id })
: assert(dispatcher != null),
super(dispatcher) {
createPlatformView(dispatcher, text, id);
......@@ -132,7 +131,7 @@ class PlatformViewTwoIntersectingOverlaysScenario extends Scenario with _BasePla
/// Creates the PlatformView scenario.
///
/// The [dispatcher] parameter must not be null.
PlatformViewTwoIntersectingOverlaysScenario(PlatformDispatcher dispatcher, String text, { this.id })
PlatformViewTwoIntersectingOverlaysScenario(PlatformDispatcher dispatcher, String text, { required this.id })
: assert(dispatcher != null),
super(dispatcher) {
createPlatformView(dispatcher, text, id);
......@@ -171,7 +170,7 @@ class PlatformViewOneOverlayTwoIntersectingOverlaysScenario extends Scenario wit
/// Creates the PlatformView scenario.
///
/// The [dispatcher] parameter must not be null.
PlatformViewOneOverlayTwoIntersectingOverlaysScenario(PlatformDispatcher dispatcher, String text, { this.id })
PlatformViewOneOverlayTwoIntersectingOverlaysScenario(PlatformDispatcher dispatcher, String text, { required this.id })
: assert(dispatcher != null),
super(dispatcher) {
createPlatformView(dispatcher, text, id);
......@@ -215,7 +214,7 @@ class MultiPlatformViewWithoutOverlaysScenario extends Scenario with _BasePlatfo
/// Creates the PlatformView scenario.
///
/// The [dispatcher] parameter must not be null.
MultiPlatformViewWithoutOverlaysScenario(PlatformDispatcher dispatcher, String text, { this.firstId, this.secondId })
MultiPlatformViewWithoutOverlaysScenario(PlatformDispatcher dispatcher, String text, { required this.firstId, required this.secondId })
: assert(dispatcher != null),
super(dispatcher) {
createPlatformView(dispatcher, text, firstId);
......@@ -259,7 +258,7 @@ class PlatformViewMaxOverlaysScenario extends Scenario with _BasePlatformViewSce
/// Creates the PlatformView scenario.
///
/// The [dispatcher] parameter must not be null.
PlatformViewMaxOverlaysScenario(PlatformDispatcher dispatcher, String text, { this.id })
PlatformViewMaxOverlaysScenario(PlatformDispatcher dispatcher, String text, { required this.id })
: assert(dispatcher != null),
super(dispatcher) {
createPlatformView(dispatcher, text, id);
......@@ -308,7 +307,7 @@ class MultiPlatformViewScenario extends Scenario with _BasePlatformViewScenarioM
/// Creates the PlatformView scenario.
///
/// The [dispatcher] parameter must not be null.
MultiPlatformViewScenario(PlatformDispatcher dispatcher, {this.firstId, this.secondId})
MultiPlatformViewScenario(PlatformDispatcher dispatcher, {required this.firstId, required this.secondId})
: assert(dispatcher != null),
super(dispatcher) {
createPlatformView(dispatcher, 'platform view 1', firstId);
......@@ -342,7 +341,7 @@ class MultiPlatformViewBackgroundForegroundScenario extends Scenario with _BaseP
/// Creates the PlatformView scenario.
///
/// The [dispatcher] parameter must not be null.
MultiPlatformViewBackgroundForegroundScenario(PlatformDispatcher dispatcher, {this.firstId, this.secondId})
MultiPlatformViewBackgroundForegroundScenario(PlatformDispatcher dispatcher, {required this.firstId, required this.secondId})
: assert(dispatcher != null),
super(dispatcher) {
_nextFrame = _firstFrame;
......@@ -361,7 +360,7 @@ class MultiPlatformViewBackgroundForegroundScenario extends Scenario with _BaseP
_nextFrame();
}
VoidCallback _nextFrame;
late VoidCallback _nextFrame;
void _firstFrame() {
final SceneBuilder builder = SceneBuilder();
......@@ -407,13 +406,13 @@ class MultiPlatformViewBackgroundForegroundScenario extends Scenario with _BaseP
@override
void onPlatformMessage(
String name,
ByteData data,
PlatformMessageResponseCallback callback,
ByteData? data,
PlatformMessageResponseCallback? callback,
) {
if (name != 'flutter/lifecycle') {
return;
}
final String message = utf8.decode(data.buffer.asUint8List());
final String message = utf8.decode(data!.buffer.asUint8List());
if (_lastLifecycleState == 'AppLifecycleState.inactive' && message == 'AppLifecycleState.resumed') {
_nextFrame = _secondFrame;
window.scheduleFrame();
......@@ -426,7 +425,7 @@ class MultiPlatformViewBackgroundForegroundScenario extends Scenario with _BaseP
/// Platform view with clip rect.
class PlatformViewClipRectScenario extends Scenario with _BasePlatformViewScenarioMixin {
/// Constructs a platform view with clip rect scenario.
PlatformViewClipRectScenario(PlatformDispatcher dispatcher, String text, { this.id })
PlatformViewClipRectScenario(PlatformDispatcher dispatcher, String text, { required this.id })
: assert(dispatcher != null),
super(dispatcher) {
createPlatformView(dispatcher, text, id);
......@@ -524,15 +523,10 @@ class PlatformViewOpacityScenario extends PlatformViewScenario {
/// A simple platform view for testing touch events from iOS.
class PlatformViewForTouchIOSScenario extends Scenario
with _BasePlatformViewScenarioMixin {
int _viewId;
bool _accept;
VoidCallback _nextFrame;
/// Creates the PlatformView scenario.
///
/// The [dispatcher] parameter must not be null.
PlatformViewForTouchIOSScenario(PlatformDispatcher dispatcher, String text, {int id = 0, bool accept, bool rejectUntilTouchesEnded = false})
PlatformViewForTouchIOSScenario(PlatformDispatcher dispatcher, String text, {int id = 0, required bool accept, bool rejectUntilTouchesEnded = false})
: assert(dispatcher != null),
_accept = accept,
_viewId = id,
......@@ -545,6 +539,10 @@ class PlatformViewForTouchIOSScenario extends Scenario
_nextFrame = _firstFrame;
}
int _viewId;
bool _accept;
late VoidCallback _nextFrame;
@override
void onBeginFrame(Duration duration) {
_nextFrame();
......@@ -587,7 +585,7 @@ class PlatformViewForTouchIOSScenario extends Scenario
window.sendPlatformMessage(
'flutter/platform_views',
message.buffer.asByteData(),
(ByteData response) {},
(ByteData? response) {},
);
}
......@@ -622,10 +620,10 @@ class PlatformViewWithContinuousTexture extends PlatformViewScenario {
}
mixin _BasePlatformViewScenarioMixin on Scenario {
int _textureId;
int? _textureId;
bool get usesAndroidHybridComposition {
return (scenarioParams['use_android_view'] as bool) == true;
return (scenarioParams['use_android_view'] as bool?) == true;
}
/// Construct the platform view related scenario
......@@ -702,7 +700,7 @@ mixin _BasePlatformViewScenarioMixin on Scenario {
dispatcher.sendPlatformMessage(
'flutter/platform_views',
message.buffer.asByteData(),
(ByteData response) {
(ByteData? response) {
if (response != null && Platform.isAndroid && !usesAndroidHybridComposition) {
// Envelope.
_textureId = response.getUint8(0);
......@@ -723,7 +721,7 @@ mixin _BasePlatformViewScenarioMixin on Scenario {
if (usesAndroidHybridComposition) {
sceneBuilder.addPlatformView(viewId, width: width, height: height);
} else if (_textureId != null) {
sceneBuilder.addTexture(_textureId, width: width, height: height);
sceneBuilder.addTexture(_textureId!, width: width, height: height);
}
} else {
throw UnsupportedError('Platform ${Platform.operatingSystem} is not supported');
......@@ -734,7 +732,7 @@ mixin _BasePlatformViewScenarioMixin on Scenario {
void finishBuilderByAddingPlatformViewAndPicture(
SceneBuilder sceneBuilder,
int viewId, {
Offset overlayOffset,
Offset? overlayOffset,
}) {
overlayOffset ??= const Offset(50, 50);
_addPlatformViewToScene(
......
......@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:ui';
import 'package:scenario_app/src/channel_util.dart';
......@@ -20,7 +19,7 @@ class PoppableScreenScenario extends Scenario with PlatformEchoMixin {
super(dispatcher);
// Rect for the pop button. Only defined once onMetricsChanged is called.
Rect _buttonRect;
Rect? _buttonRect;
@override
void onBeginFrame(Duration duration) {
......@@ -32,7 +31,7 @@ class PoppableScreenScenario extends Scenario with PlatformEchoMixin {
if (_buttonRect != null) {
canvas.drawRect(
_buttonRect,
_buttonRect!,
Paint()..color = const Color.fromARGB(255, 255, 0, 0),
);
}
......
......@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:typed_data';
import 'dart:ui';
......@@ -59,7 +58,7 @@ abstract class Scenario {
/// See [PlatformDispatcher.onPlatformMessage].
void onPlatformMessage(
String name,
ByteData data,
PlatformMessageResponseCallback callback,
ByteData? data,
PlatformMessageResponseCallback? callback,
) {}
}
......@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:ui';
import 'animated_color_square.dart';
......@@ -53,7 +52,7 @@ Map<String, ScenarioFactory> _scenarios = <String, ScenarioFactory>{
Map<String, dynamic> _currentScenarioParams = <String, dynamic>{};
Scenario _currentScenarioInstance;
Scenario? _currentScenarioInstance;
/// Loads an scenario.
/// The map must contain a `name` entry, which equals to the name of the scenario.
......@@ -63,16 +62,16 @@ void loadScenario(Map<String, dynamic> scenario) {
_currentScenarioParams = scenario;
if (_currentScenarioInstance != null) {
_currentScenarioInstance.unmount();
_currentScenarioInstance!.unmount();
}
_currentScenarioInstance = _scenarios[scenario['name']]();
_currentScenarioInstance = _scenarios[scenario['name']]!();
window.scheduleFrame();
print('Loading scenario $scenarioName');
}
/// Gets the loaded [Scenario].
Scenario get currentScenario {
Scenario? get currentScenario {
return _currentScenarioInstance;
}
......
......@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:typed_data';
import 'dart:ui';
......
......@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.6
import 'dart:ui';
import 'channel_util.dart';
......
......@@ -5,7 +5,7 @@
name: scenario_app
publish_to: none
environment:
sdk: '>=2.12.0-0 <3.0.0'
sdk: '>=2.12.0 <3.0.0'
# Do not add any dependencies that require more than what is provided in
# //third_party/dart/pkg, //third_party/dart/third_party/pkg, or
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册