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 f60a0511..d5e57b8f 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java @@ -18,6 +18,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; @@ -40,6 +41,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; @@ -71,6 +73,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 if (_slots.has(FingerprintSlot.class) && FingerprintHelper.isSupported() && FingerprintHelper.isAvailable(this)) { @@ -147,7 +150,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 1bdf4d61..f4856f35 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; @@ -470,6 +471,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() {