delay looking for android devices
diff --git a/packages/flutter_tools/lib/src/install.dart b/packages/flutter_tools/lib/src/install.dart
index f8f4523..f7ee8fc 100644
--- a/packages/flutter_tools/lib/src/install.dart
+++ b/packages/flutter_tools/lib/src/install.dart
@@ -14,15 +14,17 @@
class InstallCommand extends Command {
final name = 'install';
final description = 'Install your Flutter app on attached devices.';
+
AndroidDevice android = null;
- InstallCommand([this.android]) {
- if (android == null) {
- android = new AndroidDevice();
- }
- }
+
+ InstallCommand([this.android]);
@override
Future<int> run() async {
+ if (android == null) {
+ android = new AndroidDevice();
+ }
+
if (install()) {
return 0;
} else {
diff --git a/packages/flutter_tools/lib/src/listen.dart b/packages/flutter_tools/lib/src/listen.dart
index 47a3897..31b00cf 100644
--- a/packages/flutter_tools/lib/src/listen.dart
+++ b/packages/flutter_tools/lib/src/listen.dart
@@ -34,14 +34,14 @@
defaultsTo: '.',
abbr: 't',
help: 'Target app path or filename to start.');
-
- if (android == null) {
- android = new AndroidDevice();
- }
}
@override
Future<int> run() async {
+ if (android == null) {
+ android = new AndroidDevice();
+ }
+
if (argResults.rest.length > 0) {
watchCommand = _initWatchCommand(argResults.rest);
} else {
diff --git a/packages/flutter_tools/lib/src/logs.dart b/packages/flutter_tools/lib/src/logs.dart
index 841681f..d3f9081 100644
--- a/packages/flutter_tools/lib/src/logs.dart
+++ b/packages/flutter_tools/lib/src/logs.dart
@@ -21,13 +21,14 @@
argParser.addFlag('clear',
negatable: false,
help: 'Clear log history before reading from logs (Android only).');
- if (android == null) {
- android = new AndroidDevice();
- }
}
@override
Future<int> run() async {
+ if (android == null) {
+ android = new AndroidDevice();
+ }
+
Future<int> androidLogProcess = null;
if (android.isConnected()) {
androidLogProcess = android.logs(clear: argResults['clear']);
diff --git a/packages/flutter_tools/lib/src/start.dart b/packages/flutter_tools/lib/src/start.dart
index acca258..dcc381e 100644
--- a/packages/flutter_tools/lib/src/start.dart
+++ b/packages/flutter_tools/lib/src/start.dart
@@ -33,13 +33,14 @@
defaultsTo: '.',
abbr: 't',
help: 'Target app path or filename to start.');
- if (android == null) {
- android = new AndroidDevice();
- }
}
@override
Future<int> run() async {
+ if (android == null) {
+ android = new AndroidDevice();
+ }
+
bool startedSomewhere = false;
bool poke = argResults['poke'];
if (!poke) {
diff --git a/packages/flutter_tools/lib/src/stop.dart b/packages/flutter_tools/lib/src/stop.dart
index e2f288c..c3edaf6 100644
--- a/packages/flutter_tools/lib/src/stop.dart
+++ b/packages/flutter_tools/lib/src/stop.dart
@@ -18,14 +18,14 @@
final description = 'Stop your Flutter app on all attached devices.';
AndroidDevice android = null;
- StopCommand([this.android]) {
- if (android == null) {
- android = new AndroidDevice();
- }
- }
+ StopCommand([this.android]);
@override
Future<int> run() async {
+ if (android == null) {
+ android = new AndroidDevice();
+ }
+
if (stop()) {
return 0;
} else {
diff --git a/packages/flutter_tools/lib/src/trace.dart b/packages/flutter_tools/lib/src/trace.dart
index 4fbe1a2..8304851 100644
--- a/packages/flutter_tools/lib/src/trace.dart
+++ b/packages/flutter_tools/lib/src/trace.dart
@@ -27,13 +27,14 @@
argParser.addFlag('stop', negatable: false, help: 'Stop tracing.');
argParser.addOption('duration',
defaultsTo: '10', abbr: 'd', help: 'Duration in seconds to trace.');
- if (android == null) {
- android = new AndroidDevice();
- }
}
@override
Future<int> run() async {
+ if (android == null) {
+ android = new AndroidDevice();
+ }
+
if (!android.isConnected()) {
_logging.warning('No device connected, so no trace was completed.');
return 1;