From aea1ea0cbfa260f8bfa48ab24a9989a31c19aa34 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Sun, 1 Oct 2023 18:51:06 +0530 Subject: [PATCH] Migrate to from OnBackPressed to OnBackPressedDispatcher Closes: https://github.com/CatimaLoyalty/Android/issues/1498 Signed-off-by: Aayush Gupta --- app/src/main/AndroidManifest.xml | 1 + .../card_locker/LoyaltyCardEditActivity.java | 13 ++++++---- .../card_locker/LoyaltyCardViewActivity.java | 22 +++++++++-------- .../protect/card_locker/MainActivity.java | 24 ++++++++++--------- .../card_locker/ManageGroupActivity.java | 15 +++++++----- .../card_locker/ManageGroupsActivity.java | 7 +----- .../preferences/SettingsActivity.java | 13 ++++++---- 7 files changed, 52 insertions(+), 43 deletions(-) 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();