diff --git a/app/src/main/java/com/termux/app/TermuxInstaller.java b/app/src/main/java/com/termux/app/TermuxInstaller.java
index a600e534..0bcff56f 100644
--- a/app/src/main/java/com/termux/app/TermuxInstaller.java
+++ b/app/src/main/java/com/termux/app/TermuxInstaller.java
@@ -12,6 +12,7 @@ import android.view.WindowManager;
import com.termux.R;
import com.termux.shared.file.FileUtils;
+import com.termux.shared.interact.DialogUtils;
import com.termux.shared.logger.Logger;
import com.termux.shared.termux.TermuxConstants;
@@ -57,8 +58,9 @@ final class TermuxInstaller {
if (!isPrimaryUser) {
String bootstrapErrorMessage = activity.getString(R.string.bootstrap_error_not_primary_user_message, TermuxConstants.TERMUX_PREFIX_DIR_PATH);
Logger.logError(LOG_TAG, bootstrapErrorMessage);
- new AlertDialog.Builder(activity).setTitle(R.string.bootstrap_error_title).setMessage(bootstrapErrorMessage)
- .setOnDismissListener(dialog -> System.exit(0)).setPositiveButton(android.R.string.ok, null).show();
+ DialogUtils.exitAppWithErrorMessage(activity,
+ activity.getString(R.string.bootstrap_error_title),
+ bootstrapErrorMessage);
return;
}
diff --git a/termux-shared/build.gradle b/termux-shared/build.gradle
index cc49fb91..06238e98 100644
--- a/termux-shared/build.gradle
+++ b/termux-shared/build.gradle
@@ -5,6 +5,7 @@ android {
compileSdkVersion project.properties.compileSdkVersion.toInteger()
dependencies {
+ implementation 'androidx.appcompat:appcompat:1.2.0'
implementation "androidx.annotation:annotation:1.2.0"
implementation "androidx.core:core:1.5.0-rc01"
implementation "com.google.guava:guava:24.1-jre"
diff --git a/termux-shared/src/main/java/com/termux/shared/interact/DialogUtils.java b/termux-shared/src/main/java/com/termux/shared/interact/DialogUtils.java
index 1a5fa834..d6e81741 100644
--- a/termux-shared/src/main/java/com/termux/shared/interact/DialogUtils.java
+++ b/termux-shared/src/main/java/com/termux/shared/interact/DialogUtils.java
@@ -2,13 +2,19 @@ package com.termux.shared.interact;
import android.app.Activity;
import android.app.AlertDialog;
+import android.content.Context;
import android.content.DialogInterface;
import android.text.Selection;
import android.util.TypedValue;
import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.EditText;
import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.termux.shared.R;
public final class DialogUtils {
@@ -61,11 +67,41 @@ public final class DialogUtils {
builder.setNegativeButton(negativeButtonText, (dialog, which) -> onNegative.onTextSet(input.getText().toString()));
}
- if (onDismiss != null) builder.setOnDismissListener(onDismiss);
+ if (onDismiss != null)
+ builder.setOnDismissListener(onDismiss);
dialogHolder[0] = builder.create();
dialogHolder[0].setCanceledOnTouchOutside(false);
dialogHolder[0].show();
}
+ public static void showMessage(Context context, String titleText, String messageText, final DialogInterface.OnDismissListener onDismiss) {
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.Theme_AppCompat_Light_Dialog)
+ .setPositiveButton(android.R.string.ok, null);
+
+ LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
+ View view = inflater.inflate(R.layout.dialog_show_message, null);
+ if (view != null) {
+ builder.setView(view);
+
+ TextView titleView = view.findViewById(R.id.dialog_title);
+ if (titleView != null)
+ titleView.setText(titleText);
+
+ TextView messageView = view.findViewById(R.id.dialog_message);
+ if (messageView != null)
+ messageView.setText(messageText);
+ }
+
+ if (onDismiss != null)
+ builder.setOnDismissListener(onDismiss);
+
+ builder.show();
+ }
+
+ public static void exitAppWithErrorMessage(Context context, String titleText, String messageText) {
+ showMessage(context, titleText, messageText, dialog -> System.exit(0));
+ }
+
}
diff --git a/termux-shared/src/main/res/layout/dialog_show_message.xml b/termux-shared/src/main/res/layout/dialog_show_message.xml
new file mode 100644
index 00000000..f074d08c
--- /dev/null
+++ b/termux-shared/src/main/res/layout/dialog_show_message.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/termux-shared/src/main/res/values/colors.xml b/termux-shared/src/main/res/values/colors.xml
index cc83b56d..1b54c295 100644
--- a/termux-shared/src/main/res/values/colors.xml
+++ b/termux-shared/src/main/res/values/colors.xml
@@ -2,4 +2,5 @@
#1F000000
#0F000000
+ #FF0000