diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f4b44180f..353b1a1d1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,6 +24,7 @@ onMainImageTap()); + + getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + if (isFullscreen) { + setFullscreen(false); + } else { + finish(); + } + } + }); } private SpannableStringBuilder padSpannableString(SpannableStringBuilder spannableStringBuilder) { @@ -704,16 +716,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements imageButton.setColorFilter(BlendModeColorFilterCompat.createBlendModeColorFilterCompat(backgroundNeedsDarkIcons ? Color.BLACK : Color.WHITE, BlendModeCompat.SRC_ATOP)); } - @Override - public void onBackPressed() { - if (isFullscreen) { - setFullscreen(false); - return; - } - - super.onBackPressed(); - } - @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.card_view_menu, menu); diff --git a/app/src/main/java/protect/card_locker/MainActivity.java b/app/src/main/java/protect/card_locker/MainActivity.java index d3cd1ccb1..2b355e69c 100644 --- a/app/src/main/java/protect/card_locker/MainActivity.java +++ b/app/src/main/java/protect/card_locker/MainActivity.java @@ -22,6 +22,7 @@ import android.view.View; import android.widget.CheckBox; import android.widget.Toast; +import androidx.activity.OnBackPressedCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.appcompat.app.AlertDialog; @@ -337,6 +338,17 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard } } }); + + getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + if (mSearchView != null && !mSearchView.isIconified()) { + mSearchView.setIconified(true); + } else { + finish(); + } + } + }); } @Override @@ -411,16 +423,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard addButton.bringToFront(); } - @Override - public void onBackPressed() { - if (mSearchView != null && !mSearchView.isIconified()) { - mSearchView.setIconified(true); - return; - } - - super.onBackPressed(); - } - private void displayCardSetupOptions(Menu menu, boolean shouldShow) { for (int id : new int[]{R.id.action_search, R.id.action_display_options, R.id.action_sort}) { menu.findItem(id).setVisible(shouldShow); @@ -611,7 +613,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard int id = inputItem.getItemId(); if (id == android.R.id.home) { - onBackPressed(); + getOnBackPressedDispatcher().onBackPressed(); } if (id == R.id.action_display_options) { diff --git a/app/src/main/java/protect/card_locker/ManageGroupActivity.java b/app/src/main/java/protect/card_locker/ManageGroupActivity.java index 365fca58d..1cd1effbe 100644 --- a/app/src/main/java/protect/card_locker/ManageGroupActivity.java +++ b/app/src/main/java/protect/card_locker/ManageGroupActivity.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.Toolbar; @@ -133,6 +134,13 @@ public class ManageGroupActivity extends CatimaAppCompatActivity implements Mana // this setText is here because content_main.xml is reused from main activity noGroupCardsText.setText(getResources().getText(R.string.noGiftCardsGroup)); updateLoyaltyCardList(); + + getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + leaveWithoutSaving(); + } + }); } private ArrayList adapterStateToIntegerArray(HashMap adapterState) { @@ -210,14 +218,9 @@ public class ManageGroupActivity extends CatimaAppCompatActivity implements Mana } } - @Override - public void onBackPressed() { - leaveWithoutSaving(); - } - @Override public boolean onSupportNavigateUp() { - onBackPressed(); + getOnBackPressedDispatcher().onBackPressed(); return true; } diff --git a/app/src/main/java/protect/card_locker/ManageGroupsActivity.java b/app/src/main/java/protect/card_locker/ManageGroupsActivity.java index 1bbdf57da..5b5468ba3 100644 --- a/app/src/main/java/protect/card_locker/ManageGroupsActivity.java +++ b/app/src/main/java/protect/card_locker/ManageGroupsActivity.java @@ -71,11 +71,6 @@ public class ManageGroupsActivity extends CatimaAppCompatActivity implements Gro updateGroupList(); } - @Override - public void onBackPressed() { - super.onBackPressed(); - } - private void updateGroupList() { mAdapter.swapCursor(DBHelper.getGroupCursor(mDatabase)); @@ -248,4 +243,4 @@ public class ManageGroupsActivity extends CatimaAppCompatActivity implements Gro AlertDialog dialog = builder.create(); dialog.show(); } -} \ No newline at end of file +} diff --git a/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java b/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java index 41a9035da..9df6b5b2f 100644 --- a/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java +++ b/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java @@ -7,6 +7,7 @@ import android.os.Build; import android.os.Bundle; import android.view.MenuItem; +import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.widget.Toolbar; @@ -56,6 +57,13 @@ public class SettingsActivity extends CatimaAppCompatActivity { if (savedInstanceState != null) { fragment.mReloadMain = savedInstanceState.getBoolean(RELOAD_MAIN_STATE); } + + getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + finishSettingsActivity(); + } + }); } @Override @@ -76,11 +84,6 @@ public class SettingsActivity extends CatimaAppCompatActivity { return super.onOptionsItemSelected(item); } - @Override - public void onBackPressed() { - finishSettingsActivity(); - } - private void finishSettingsActivity() { if (fragment.mReloadMain) { Intent intent = new Intent();