mirror of
https://github.com/flutter/flutter
synced 2024-10-03 15:04:18 +00:00
Migrate android_console to null safety (#78923)
This commit is contained in:
parent
7148cc61f3
commit
ce31d4ff7e
|
@ -2,9 +2,8 @@
|
|||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// @dart = 2.8
|
||||
|
||||
import 'package:async/async.dart';
|
||||
|
||||
import '../base/io.dart';
|
||||
import '../convert.dart';
|
||||
|
||||
|
@ -28,20 +27,20 @@ typedef AndroidConsoleSocketFactory = Future<Socket> Function(String host, int p
|
|||
class AndroidConsole {
|
||||
AndroidConsole(this._socket);
|
||||
|
||||
Socket _socket;
|
||||
StreamQueue<String> _queue;
|
||||
Socket? _socket;
|
||||
StreamQueue<String>? _queue;
|
||||
|
||||
Future<void> connect() async {
|
||||
assert(_socket != null);
|
||||
assert(_queue == null);
|
||||
|
||||
_queue = StreamQueue<String>(_socket.asyncMap(ascii.decode));
|
||||
_queue = StreamQueue<String>(_socket!.asyncMap(ascii.decode));
|
||||
|
||||
// Discard any initial connection text.
|
||||
await _readResponse();
|
||||
}
|
||||
|
||||
Future<String> getAvdName() async {
|
||||
Future<String?> getAvdName() async {
|
||||
if (_queue == null) {
|
||||
return null;
|
||||
}
|
||||
|
@ -55,17 +54,17 @@ class AndroidConsole {
|
|||
_queue = null;
|
||||
}
|
||||
|
||||
Future<String> _readResponse() async {
|
||||
Future<String?> _readResponse() async {
|
||||
if (_queue == null) {
|
||||
return null;
|
||||
}
|
||||
final StringBuffer output = StringBuffer();
|
||||
while (true) {
|
||||
if (!await _queue.hasNext) {
|
||||
if (!await _queue!.hasNext) {
|
||||
destroy();
|
||||
return null;
|
||||
}
|
||||
final String text = await _queue.next;
|
||||
final String text = await _queue!.next;
|
||||
final String trimmedText = text.trim();
|
||||
if (trimmedText == 'OK') {
|
||||
break;
|
||||
|
|
|
@ -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.8
|
||||
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
import 'file_system.dart';
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:math' as math;
|
||||
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// @dart = 2.8
|
||||
|
||||
import 'package:meta/meta.dart';
|
||||
import 'package:process/process.dart';
|
||||
|
||||
import '../base/io.dart';
|
||||
|
@ -16,10 +13,10 @@ import '../base/process.dart';
|
|||
/// See https://github.com/libimobiledevice/libusbmuxd.
|
||||
class IProxy {
|
||||
IProxy({
|
||||
@required String iproxyPath,
|
||||
@required Logger logger,
|
||||
@required ProcessManager processManager,
|
||||
@required MapEntry<String, String> dyLdLibEntry,
|
||||
required String iproxyPath,
|
||||
required Logger logger,
|
||||
required ProcessManager processManager,
|
||||
required MapEntry<String, String> dyLdLibEntry,
|
||||
}) : _dyLdLibEntry = dyLdLibEntry,
|
||||
_processUtils = ProcessUtils(processManager: processManager, logger: logger),
|
||||
_iproxyPath = iproxyPath;
|
||||
|
@ -29,8 +26,8 @@ class IProxy {
|
|||
/// This specifies the path to iproxy as 'iproxy` and the dyLdLibEntry as
|
||||
/// 'DYLD_LIBRARY_PATH: /path/to/libs'.
|
||||
factory IProxy.test({
|
||||
@required Logger logger,
|
||||
@required ProcessManager processManager,
|
||||
required Logger logger,
|
||||
required ProcessManager processManager,
|
||||
}) {
|
||||
return IProxy(
|
||||
iproxyPath: 'iproxy',
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// @dart = 2.8
|
||||
|
||||
import 'package:meta/meta.dart';
|
||||
import 'package:process/process.dart';
|
||||
|
||||
import '../base/file_system.dart';
|
||||
|
@ -16,9 +13,9 @@ import '../convert.dart';
|
|||
|
||||
class PlistParser {
|
||||
PlistParser({
|
||||
@required FileSystem fileSystem,
|
||||
@required Logger logger,
|
||||
@required ProcessManager processManager,
|
||||
required FileSystem fileSystem,
|
||||
required Logger logger,
|
||||
required ProcessManager processManager,
|
||||
}) : _fileSystem = fileSystem,
|
||||
_logger = logger,
|
||||
_processUtils = ProcessUtils(logger: logger, processManager: processManager);
|
||||
|
@ -58,7 +55,7 @@ class PlistParser {
|
|||
args,
|
||||
throwOnError: true,
|
||||
).stdout.trim();
|
||||
return castStringKeyedMap(json.decode(jsonContent));
|
||||
return castStringKeyedMap(json.decode(jsonContent)) ?? const <String, dynamic>{};
|
||||
} on ProcessException catch (error) {
|
||||
_logger.printTrace('$error');
|
||||
return const <String, dynamic>{};
|
||||
|
@ -74,7 +71,7 @@ class PlistParser {
|
|||
/// If [key] is not found in the property list, this will return null.
|
||||
///
|
||||
/// The [plistFilePath] and [key] arguments must not be null.
|
||||
String getValueFromFile(String plistFilePath, String key) {
|
||||
String? getValueFromFile(String plistFilePath, String key) {
|
||||
assert(key != null);
|
||||
final Map<String, dynamic> parsed = parseFile(plistFilePath);
|
||||
return parsed[key] as String;
|
||||
|
|
|
@ -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.8
|
||||
|
||||
import 'dart:io' as io show IOOverrides, Directory, File, Link;
|
||||
|
||||
import 'package:flutter_tools/src/base/file_system.dart';
|
||||
|
@ -19,17 +17,17 @@ import 'package:flutter_tools/src/base/file_system.dart';
|
|||
/// The only safe delegate types are those that do not call out to `dart:io`,
|
||||
/// like the [MemoryFileSystem].
|
||||
class FlutterIOOverrides extends io.IOOverrides {
|
||||
FlutterIOOverrides({ FileSystem fileSystem })
|
||||
FlutterIOOverrides({ FileSystem? fileSystem })
|
||||
: _fileSystemDelegate = fileSystem;
|
||||
|
||||
final FileSystem _fileSystemDelegate;
|
||||
final FileSystem? _fileSystemDelegate;
|
||||
|
||||
@override
|
||||
io.Directory createDirectory(String path) {
|
||||
if (_fileSystemDelegate == null) {
|
||||
return super.createDirectory(path);
|
||||
}
|
||||
return _fileSystemDelegate.directory(path);
|
||||
return _fileSystemDelegate!.directory(path);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -37,7 +35,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.createFile(path);
|
||||
}
|
||||
return _fileSystemDelegate.file(path);
|
||||
return _fileSystemDelegate!.file(path);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -45,7 +43,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.createLink(path);
|
||||
}
|
||||
return _fileSystemDelegate.link(path);
|
||||
return _fileSystemDelegate!.link(path);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -53,7 +51,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.fsWatch(path, events, recursive);
|
||||
}
|
||||
return _fileSystemDelegate.file(path).watch(events: events, recursive: recursive);
|
||||
return _fileSystemDelegate!.file(path).watch(events: events, recursive: recursive);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -61,7 +59,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.fsWatchIsSupported();
|
||||
}
|
||||
return _fileSystemDelegate.isWatchSupported;
|
||||
return _fileSystemDelegate!.isWatchSupported;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -69,7 +67,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.fseGetType(path, followLinks);
|
||||
}
|
||||
return _fileSystemDelegate.type(path, followLinks: followLinks ?? true);
|
||||
return _fileSystemDelegate!.type(path, followLinks: followLinks);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -77,7 +75,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.fseGetTypeSync(path, followLinks);
|
||||
}
|
||||
return _fileSystemDelegate.typeSync(path, followLinks: followLinks ?? true);
|
||||
return _fileSystemDelegate!.typeSync(path, followLinks: followLinks);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -85,7 +83,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.fseIdentical(path1, path2);
|
||||
}
|
||||
return _fileSystemDelegate.identical(path1, path2);
|
||||
return _fileSystemDelegate!.identical(path1, path2);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -93,7 +91,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.fseIdenticalSync(path1, path2);
|
||||
}
|
||||
return _fileSystemDelegate.identicalSync(path1, path2);
|
||||
return _fileSystemDelegate!.identicalSync(path1, path2);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -101,7 +99,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.getCurrentDirectory();
|
||||
}
|
||||
return _fileSystemDelegate.currentDirectory;
|
||||
return _fileSystemDelegate!.currentDirectory;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -109,7 +107,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.getSystemTempDirectory();
|
||||
}
|
||||
return _fileSystemDelegate.systemTempDirectory;
|
||||
return _fileSystemDelegate!.systemTempDirectory;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -117,7 +115,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.setCurrentDirectory(path);
|
||||
}
|
||||
_fileSystemDelegate.currentDirectory = path;
|
||||
_fileSystemDelegate!.currentDirectory = path;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -125,7 +123,7 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.stat(path);
|
||||
}
|
||||
return _fileSystemDelegate.stat(path);
|
||||
return _fileSystemDelegate!.stat(path);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -133,6 +131,6 @@ class FlutterIOOverrides extends io.IOOverrides {
|
|||
if (_fileSystemDelegate == null) {
|
||||
return super.statSync(path);
|
||||
}
|
||||
return _fileSystemDelegate.statSync(path);
|
||||
return _fileSystemDelegate!.statSync(path);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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.8
|
||||
|
||||
import 'package:test/test.dart' hide isInstanceOf;
|
||||
|
||||
export 'package:test/test.dart' hide isInstanceOf;
|
||||
|
|
Loading…
Reference in a new issue