Add waitForBootCompleted to the Terminal's MainActivity

This is in preparation for the instrumentation test. The method waits
until the boot is completed (ttyd is connected and the page is loaded).

Bug: 375051350
Test: N/A
Change-Id: I71181f8654c08998a5abd756367b6079159977e4
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
index 3cadb8a..bdc2276 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
@@ -29,6 +29,7 @@
 import android.net.Uri;
 import android.net.http.SslError;
 import android.os.Bundle;
+import android.os.ConditionVariable;
 import android.os.Environment;
 import android.provider.Settings;
 import android.system.ErrnoException;
@@ -88,6 +89,7 @@
     private PrivateKey mPrivateKey;
     private WebView mWebView;
     private AccessibilityManager mAccessibilityManager;
+    private ConditionVariable mBootCompleted = new ConditionVariable();
     private static final int POST_NOTIFICATIONS_PERMISSION_REQUEST_CODE = 101;
     private ActivityResultLauncher<Intent> manageExternalStorageActivityResultLauncher;
 
@@ -255,6 +257,7 @@
                                             findViewById(R.id.boot_progress)
                                                     .setVisibility(View.GONE);
                                             view.setVisibility(View.VISIBLE);
+                                            mBootCompleted.open();
                                         }
                                     }
                                 });
@@ -523,6 +526,10 @@
         VmLauncherServices.startVmLauncherService(this, this, notification);
     }
 
+    public boolean waitForBootCompleted(long timeoutMillis) {
+        return mBootCompleted.block(timeoutMillis);
+    }
+
     private long roundUpDiskSize(long diskSize) {
         // Round up every disk_size_round_up_step_size_in_mb MB
         int disk_size_step = getResources().getInteger(