Auto-downloading of VM image
For test-automation purpose.
Bug: 375051310
Test: N/A
Change-Id: Ib7163e357a7cccc829cb8c85738b335c99e78580
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java
index 428fd91..c8f5bab 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java
@@ -23,6 +23,7 @@
import android.content.ServiceConnection;
import android.os.Build;
import android.os.Bundle;
+import android.os.ConditionVariable;
import android.os.FileUtils;
import android.os.IBinder;
import android.os.RemoteException;
@@ -39,6 +40,7 @@
private static final String TAG = "LinuxInstaller";
private static final long ESTIMATED_IMG_SIZE_BYTES = FileUtils.parseSize("350MB");
+ static final String EXTRA_AUTO_DOWNLOAD = "auto_download";
private ExecutorService mExecutorService;
private CheckBox mWaitForWifiCheckbox;
@@ -48,6 +50,7 @@
private ServiceConnection mInstallerServiceConnection;
private InstallProgressListener mInstallProgressListener;
private boolean mInstallRequested;
+ private ConditionVariable mInstallCompleted = new ConditionVariable();
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -72,11 +75,17 @@
requestInstall();
});
+ if (getIntent().getBooleanExtra(EXTRA_AUTO_DOWNLOAD, false)) {
+ Log.i(TAG, "Auto downloading");
+ requestInstall();
+ }
+
Intent intent = new Intent(this, InstallerService.class);
mInstallerServiceConnection = new InstallerServiceConnection(this);
if (!bindService(intent, mInstallerServiceConnection, Context.BIND_AUTO_CREATE)) {
handleCriticalError(new Exception("Failed to connect to installer service"));
}
+
}
@Override
@@ -89,6 +98,10 @@
super.onDestroy();
}
+ public boolean waitForInstallCompleted(long timeoutMillis) {
+ return mInstallCompleted.block(timeoutMillis);
+ }
+
public void handleCriticalError(Exception e) {
if (Build.isDebuggable()) {
Toast.makeText(
@@ -102,6 +115,9 @@
}
private void finishWithResult(int resultCode) {
+ if (resultCode == RESULT_OK) {
+ mInstallCompleted.open();
+ }
setResult(resultCode);
finish();
}