From fafb1ae8d0addfc7572a62a22d876ba04c3dee22 Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Thu, 15 Nov 2018 22:20:31 +0100 Subject: [PATCH] Set FLAG_SECURE on all dialogs Fixes #2 --- .../java/me/impy/aegis/ui/AuthActivity.java | 12 +++---- .../impy/aegis/ui/{dialogs => }/Dialogs.java | 32 +++++++++++++------ .../me/impy/aegis/ui/EditEntryActivity.java | 5 ++- .../java/me/impy/aegis/ui/MainActivity.java | 1 - .../me/impy/aegis/ui/PreferencesFragment.java | 11 +++---- .../me/impy/aegis/ui/SlotManagerActivity.java | 5 ++- .../aegis/ui/tasks/ProgressDialogTask.java | 2 ++ 7 files changed, 39 insertions(+), 29 deletions(-) rename app/src/main/java/me/impy/aegis/ui/{dialogs => }/Dialogs.java (87%) diff --git a/app/src/main/java/me/impy/aegis/ui/AuthActivity.java b/app/src/main/java/me/impy/aegis/ui/AuthActivity.java index 78944f1e..de05bef2 100644 --- a/app/src/main/java/me/impy/aegis/ui/AuthActivity.java +++ b/app/src/main/java/me/impy/aegis/ui/AuthActivity.java @@ -113,12 +113,12 @@ public class AuthActivity extends AegisActivity implements FingerprintUiHelper.C } private void showError() { - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(getString(R.string.unlock_vault_error)); - builder.setMessage(getString(R.string.unlock_vault_error_description)); - builder.setCancelable(false); - builder.setPositiveButton(android.R.string.ok, null); - builder.create().show(); + Dialogs.showSecureDialog(new AlertDialog.Builder(this) + .setTitle(getString(R.string.unlock_vault_error)) + .setMessage(getString(R.string.unlock_vault_error_description)) + .setCancelable(false) + .setPositiveButton(android.R.string.ok, null) + .create()); } private void trySlots(Class type, Object obj) { diff --git a/app/src/main/java/me/impy/aegis/ui/dialogs/Dialogs.java b/app/src/main/java/me/impy/aegis/ui/Dialogs.java similarity index 87% rename from app/src/main/java/me/impy/aegis/ui/dialogs/Dialogs.java rename to app/src/main/java/me/impy/aegis/ui/Dialogs.java index d6f7c94f..408bf00d 100644 --- a/app/src/main/java/me/impy/aegis/ui/dialogs/Dialogs.java +++ b/app/src/main/java/me/impy/aegis/ui/Dialogs.java @@ -1,11 +1,13 @@ -package me.impy.aegis.ui.dialogs; +package me.impy.aegis.ui; import android.app.Activity; +import android.app.Dialog; import android.content.DialogInterface; import android.hardware.fingerprint.FingerprintManager; import android.text.Editable; import android.text.TextWatcher; import android.view.View; +import android.view.WindowManager; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; @@ -36,22 +38,31 @@ public class Dialogs { } + public static void secureDialog(Dialog dialog) { + dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE); + } + + public static void showSecureDialog(Dialog dialog) { + secureDialog(dialog); + dialog.show(); + } + public static void showDeleteEntryDialog(Activity activity, DialogInterface.OnClickListener onDelete) { - new AlertDialog.Builder(activity) + showSecureDialog(new AlertDialog.Builder(activity) .setTitle(activity.getString(R.string.delete_entry)) .setMessage(activity.getString(R.string.delete_entry_description)) .setPositiveButton(android.R.string.yes, onDelete) .setNegativeButton(android.R.string.no, null) - .show(); + .create()); } public static void showDiscardDialog(Activity activity, DialogInterface.OnClickListener onSave, DialogInterface.OnClickListener onDiscard) { - new AlertDialog.Builder(activity) + showSecureDialog(new AlertDialog.Builder(activity) .setTitle(activity.getString(R.string.discard_changes)) .setMessage(activity.getString(R.string.discard_changes_description)) .setPositiveButton(R.string.save, onSave) .setNegativeButton(R.string.discard, onDiscard) - .show(); + .create()); } public static void showSetPasswordDialog(Activity activity, Dialogs.SlotListener listener) { @@ -59,7 +70,7 @@ public class Dialogs { EditText textPassword = view.findViewById(R.id.text_password); EditText textPasswordConfirm = view.findViewById(R.id.text_password_confirm); - AlertDialog alert = new AlertDialog.Builder(activity) + AlertDialog dialog = new AlertDialog.Builder(activity) .setTitle(R.string.set_password) .setView(view) .setPositiveButton(android.R.string.ok, null) @@ -67,8 +78,8 @@ public class Dialogs { .create(); final AtomicReference