From a7e1a88dc850200b99819e539f119761c2d5db28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Sch=C3=A4ttgen?= Date: Fri, 6 Sep 2019 21:41:55 +0200 Subject: [PATCH] Add temporary backpress fix --- .../com/beemdevelopment/aegis/CancelAction.java | 7 +++++++ .../com/beemdevelopment/aegis/ui/AuthActivity.java | 13 ++++++++++++- .../com/beemdevelopment/aegis/ui/MainActivity.java | 7 ++----- .../aegis/ui/PreferencesFragment.java | 2 ++ 4 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/com/beemdevelopment/aegis/CancelAction.java diff --git a/app/src/main/java/com/beemdevelopment/aegis/CancelAction.java b/app/src/main/java/com/beemdevelopment/aegis/CancelAction.java new file mode 100644 index 00000000..aa006922 --- /dev/null +++ b/app/src/main/java/com/beemdevelopment/aegis/CancelAction.java @@ -0,0 +1,7 @@ +package com.beemdevelopment.aegis; + +public enum CancelAction { + KILL, + CLOSE +} + diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java index defc1bc9..a6cb5f1e 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java @@ -17,6 +17,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.beemdevelopment.aegis.R; +import com.beemdevelopment.aegis.CancelAction; import com.beemdevelopment.aegis.crypto.KeyStoreHandle; import com.beemdevelopment.aegis.crypto.KeyStoreHandleException; import com.beemdevelopment.aegis.db.DatabaseFileCredentials; @@ -39,6 +40,7 @@ import androidx.appcompat.app.AlertDialog; public class AuthActivity extends AegisActivity implements FingerprintUiHelper.Callback, SlotListTask.Callback { private EditText _textPassword; + private CancelAction _cancelAction; private SlotList _slots; private FingerprintUiHelper _fingerHelper; private FingerprintManager.CryptoObject _fingerCryptoObj; @@ -69,6 +71,7 @@ public class AuthActivity extends AegisActivity implements FingerprintUiHelper.C Intent intent = getIntent(); _slots = (SlotList) intent.getSerializableExtra("slots"); + _cancelAction = (CancelAction) intent.getSerializableExtra("cancelAction"); // only show the fingerprint controls if the api version is new enough, permission is granted, a scanner is found and a fingerprint slot is found FingerprintManager manager = FingerprintHelper.getManager(this); @@ -144,7 +147,15 @@ public class AuthActivity extends AegisActivity implements FingerprintUiHelper.C @Override public void onBackPressed() { - // ignore back button presses + switch (_cancelAction) { + case KILL: + finishAffinity(); + + case CLOSE: + Intent intent = new Intent(); + setResult(RESULT_CANCELED, intent); + finish(); + } } @Override diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java index 477e3066..48cecc99 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java @@ -1,7 +1,6 @@ package com.beemdevelopment.aegis.ui; import android.Manifest; -import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; @@ -16,17 +15,15 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.MotionEvent; import android.view.SubMenu; -import android.widget.LinearLayout; import android.widget.SearchView; import android.widget.Toast; -import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.view.ActionMode; -import androidx.core.view.MenuItemCompat; import com.beemdevelopment.aegis.AegisApplication; import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.SortCategory; +import com.beemdevelopment.aegis.CancelAction; import com.beemdevelopment.aegis.ViewMode; import com.beemdevelopment.aegis.db.DatabaseEntry; import com.beemdevelopment.aegis.db.DatabaseFileCredentials; @@ -38,7 +35,6 @@ import com.beemdevelopment.aegis.otp.GoogleAuthInfo; import com.beemdevelopment.aegis.otp.GoogleAuthInfoException; import com.beemdevelopment.aegis.ui.views.EntryListView; import com.getbase.floatingactionbutton.FloatingActionsMenu; -import com.google.android.material.bottomsheet.BottomSheetDialog; import com.google.zxing.BinaryBitmap; import com.google.zxing.ChecksumException; import com.google.zxing.FormatException; @@ -636,6 +632,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene Intent intent = new Intent(this, AuthActivity.class); intent.putExtra("slots", _db.getFileHeader().getSlots()); intent.putExtra("requiresUnlock", false); + intent.putExtra("cancelAction", CancelAction.KILL); startActivityForResult(intent, CODE_DECRYPT); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java index 07a3d293..8fdd40d8 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java @@ -14,6 +14,7 @@ import android.widget.Toast; import com.beemdevelopment.aegis.AegisApplication; import com.beemdevelopment.aegis.BuildConfig; +import com.beemdevelopment.aegis.CancelAction; import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.Theme; import com.beemdevelopment.aegis.ViewMode; @@ -468,6 +469,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat { Intent intent = new Intent(getActivity(), AuthActivity.class); intent.putExtra("slots", ((AegisImporter.EncryptedState) state).getSlots()); + intent.putExtra("cancelAction", CancelAction.CLOSE); startActivityForResult(intent, CODE_IMPORT_DECRYPT); } else { state.decrypt(getActivity(), new DatabaseImporter.DecryptListener() {