Unverified Commit 013dc3dd authored by Abhishek Ghaskata's avatar Abhishek Ghaskata Committed by GitHub

Migrate ios_add2app_life_cycle to nullsafety (#80617)

parent fdda777e
...@@ -8,14 +8,14 @@ import 'package:flutter/rendering.dart'; ...@@ -8,14 +8,14 @@ import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
VoidCallback originalSemanticsListener; VoidCallback? originalSemanticsListener;
void main() { void main() {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
// Disconnects semantics listener for testing purposes. // Disconnects semantics listener for testing purposes.
originalSemanticsListener = ui.window.onSemanticsEnabledChanged; originalSemanticsListener = ui.window.onSemanticsEnabledChanged;
ui.window.onSemanticsEnabledChanged = null; ui.window.onSemanticsEnabledChanged = null;
RendererBinding.instance.setSemanticsEnabled(false); RendererBinding.instance?.setSemanticsEnabled(false);
// If the test passes, LifeCycleSpy will rewire the semantics listener back. // If the test passes, LifeCycleSpy will rewire the semantics listener back.
runApp(const LifeCycleSpy()); runApp(const LifeCycleSpy());
} }
...@@ -28,7 +28,7 @@ void main() { ...@@ -28,7 +28,7 @@ void main() {
/// ///
/// Rewiring semantics is a signal to native IOS test that the test has passed. /// Rewiring semantics is a signal to native IOS test that the test has passed.
class LifeCycleSpy extends StatefulWidget { class LifeCycleSpy extends StatefulWidget {
const LifeCycleSpy({Key key}) : super(key: key); const LifeCycleSpy({Key? key}) : super(key: key);
@override @override
_LifeCycleSpyState createState() => _LifeCycleSpyState(); _LifeCycleSpyState createState() => _LifeCycleSpyState();
...@@ -40,36 +40,36 @@ class _LifeCycleSpyState extends State<LifeCycleSpy> with WidgetsBindingObserver ...@@ -40,36 +40,36 @@ class _LifeCycleSpyState extends State<LifeCycleSpy> with WidgetsBindingObserver
AppLifecycleState.inactive, AppLifecycleState.inactive,
AppLifecycleState.resumed, AppLifecycleState.resumed,
]; ];
List<AppLifecycleState> _actualLifeCycleSequence; List<AppLifecycleState?>? _actualLifeCycleSequence;
@override @override
void initState(){ void initState(){
super.initState(); super.initState();
WidgetsBinding.instance.addObserver(this); WidgetsBinding.instance?.addObserver(this);
_actualLifeCycleSequence = <AppLifecycleState>[ _actualLifeCycleSequence = <AppLifecycleState?>[
ServicesBinding.instance.lifecycleState ServicesBinding.instance?.lifecycleState
]; ];
} }
@override @override
void dispose() { void dispose() {
WidgetsBinding.instance.removeObserver(this); WidgetsBinding.instance?.removeObserver(this);
super.dispose(); super.dispose();
} }
@override @override
void didChangeAppLifecycleState(AppLifecycleState state) { void didChangeAppLifecycleState(AppLifecycleState state) {
setState(() { setState(() {
_actualLifeCycleSequence = List<AppLifecycleState>.from(_actualLifeCycleSequence); _actualLifeCycleSequence = List<AppLifecycleState>.from(_actualLifeCycleSequence!);
_actualLifeCycleSequence.add(state); _actualLifeCycleSequence?.add(state);
}); });
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (const ListEquality<AppLifecycleState>().equals(_actualLifeCycleSequence, _expectedLifeCycleSequence)) { if (const ListEquality<AppLifecycleState?>().equals(_actualLifeCycleSequence, _expectedLifeCycleSequence)) {
// Rewires the semantics harness if test passes. // Rewires the semantics harness if test passes.
RendererBinding.instance.setSemanticsEnabled(true); RendererBinding.instance?.setSemanticsEnabled(true);
ui.window.onSemanticsEnabledChanged = originalSemanticsListener; ui.window.onSemanticsEnabledChanged = originalSemanticsListener;
} }
return const MaterialApp( return const MaterialApp(
......
...@@ -14,7 +14,7 @@ description: A new flutter module project. ...@@ -14,7 +14,7 @@ description: A new flutter module project.
version: 1.0.0+1 version: 1.0.0+1
environment: environment:
sdk: ">=2.0.0-dev.68.0 <3.0.0" sdk: ">=2.12.0 <3.0.0"
dependencies: dependencies:
flutter: flutter:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment