Merge changes I45fcbed9,I8796e1b9,I737c0c63 into main
* changes:
VmTerminalApp: Show install error
VmTerminalApp: Prevent snackbar from hiding UX
VmTerminalApp: Use full hyphenation
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java
index a49403c..45da73c 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java
@@ -40,14 +40,12 @@
import com.google.android.material.snackbar.Snackbar;
import java.lang.ref.WeakReference;
-import java.util.concurrent.ExecutorService;
public class InstallerActivity extends BaseActivity {
private static final String TAG = "LinuxInstaller";
private static final long ESTIMATED_IMG_SIZE_BYTES = FileUtils.parseSize("550MB");
- private ExecutorService mExecutorService;
private CheckBox mWaitForWifiCheckbox;
private TextView mInstallButton;
@@ -83,7 +81,7 @@
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"));
+ handleInternalError(new Exception("Failed to connect to installer service"));
}
}
@@ -92,11 +90,7 @@
super.onResume();
if (Build.isDebuggable() && InstallUtils.payloadFromExternalStorageExists()) {
- Snackbar.make(
- findViewById(android.R.id.content),
- "Auto installing",
- Snackbar.LENGTH_LONG)
- .show();
+ showSnackbar("Auto installing", Snackbar.LENGTH_LONG);
requestInstall();
}
}
@@ -125,13 +119,17 @@
return mInstallCompleted.block(timeoutMillis);
}
- public void handleCriticalError(Exception e) {
+ private void showSnackbar(String message, int length) {
+ Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), message, length);
+ snackbar.setAnchorView(mWaitForWifiCheckbox);
+ snackbar.show();
+ }
+
+ public void handleInternalError(Exception e) {
if (Build.isDebuggable()) {
- Snackbar.make(
- findViewById(android.R.id.content),
- e.getMessage() + ". File a bugreport to go/ferrochrome-bug",
- Snackbar.LENGTH_INDEFINITE)
- .show();
+ showSnackbar(
+ e.getMessage() + ". File a bugreport to go/ferrochrome-bug",
+ Snackbar.LENGTH_INDEFINITE);
}
Log.e(TAG, "Internal error", e);
finishWithResult(RESULT_CANCELED);
@@ -170,7 +168,7 @@
try {
mService.requestInstall(mWaitForWifiCheckbox.isChecked());
} catch (RemoteException e) {
- handleCriticalError(e);
+ handleInternalError(e);
}
} else {
Log.d(TAG, "requestInstall() is called, but not yet connected");
@@ -195,21 +193,18 @@
setInstallEnabled(false);
}
} catch (RemoteException e) {
- handleCriticalError(e);
+ handleInternalError(e);
}
}
@MainThread
public void handleInstallerServiceDisconnected() {
- handleCriticalError(new Exception("InstallerService is destroyed while in use"));
+ handleInternalError(new Exception("InstallerService is destroyed while in use"));
}
@MainThread
- private void handleError(String displayText) {
- if (Build.isDebuggable()) {
- Snackbar.make(findViewById(android.R.id.content), displayText, Snackbar.LENGTH_LONG)
- .show();
- }
+ private void handleInstallError(String displayText) {
+ showSnackbar(displayText, Snackbar.LENGTH_LONG);
setInstallEnabled(true);
}
@@ -249,7 +244,7 @@
return;
}
- activity.handleError(displayText);
+ activity.handleInstallError(displayText);
});
}
}
@@ -270,7 +265,7 @@
return;
}
if (service == null) {
- activity.handleCriticalError(new Exception("service shouldn't be null"));
+ activity.handleInternalError(new Exception("service shouldn't be null"));
}
activity.mService = IInstallerService.Stub.asInterface(service);
diff --git a/android/TerminalApp/res/layout/activity_error.xml b/android/TerminalApp/res/layout/activity_error.xml
index 1b5026e..054478f 100644
--- a/android/TerminalApp/res/layout/activity_error.xml
+++ b/android/TerminalApp/res/layout/activity_error.xml
@@ -29,7 +29,7 @@
android:layout_marginVertical="24dp"
android:layout_marginHorizontal="24dp"
android:layout_alignParentTop="true"
- android:hyphenationFrequency="normal"
+ android:hyphenationFrequency="full"
android:textSize="48sp" />
<TextView
diff --git a/android/TerminalApp/res/layout/settings_disk_resize.xml b/android/TerminalApp/res/layout/settings_disk_resize.xml
index 21ff070..7b8b9fc 100644
--- a/android/TerminalApp/res/layout/settings_disk_resize.xml
+++ b/android/TerminalApp/res/layout/settings_disk_resize.xml
@@ -29,7 +29,7 @@
android:layout_width="wrap_content"
android:text="@string/settings_disk_resize_title"
android:textSize="48sp"
- android:hyphenationFrequency="normal"
+ android:hyphenationFrequency="full"
android:layout_marginBottom="24dp"/>
<androidx.constraintlayout.widget.ConstraintLayout
@@ -71,7 +71,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="150sp"
- android:hyphenationFrequency="normal"
+ android:hyphenationFrequency="full"
android:text="@string/settings_disk_resize_resize_cancel"
android:visibility="invisible"
android:layout_marginTop="48dp"
@@ -85,7 +85,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="150sp"
- android:hyphenationFrequency="normal"
+ android:hyphenationFrequency="full"
android:text="@string/settings_disk_resize_resize_restart_vm_to_apply"
android:visibility="invisible"
android:layout_marginTop="48dp"
diff --git a/android/TerminalApp/res/layout/settings_port_forwarding.xml b/android/TerminalApp/res/layout/settings_port_forwarding.xml
index 98ba02c..2d21962 100644
--- a/android/TerminalApp/res/layout/settings_port_forwarding.xml
+++ b/android/TerminalApp/res/layout/settings_port_forwarding.xml
@@ -28,7 +28,7 @@
android:layout_width="wrap_content"
android:text="@string/settings_port_forwarding_title"
android:textSize="48sp"
- android:hyphenationFrequency="normal"
+ android:hyphenationFrequency="full"
android:layout_marginBottom="24dp"/>
<androidx.recyclerview.widget.RecyclerView
diff --git a/android/TerminalApp/res/layout/settings_recovery.xml b/android/TerminalApp/res/layout/settings_recovery.xml
index c72447f..d33f9a3 100644
--- a/android/TerminalApp/res/layout/settings_recovery.xml
+++ b/android/TerminalApp/res/layout/settings_recovery.xml
@@ -28,7 +28,7 @@
android:layout_width="wrap_content"
android:text="@string/settings_recovery_title"
android:textSize="48sp"
- android:hyphenationFrequency="normal"
+ android:hyphenationFrequency="full"
android:layout_marginStart="24dp"
android:layout_marginBottom="24dp"/>
<FrameLayout