X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Factivities%2FBookmarksDatabaseViewActivity.java;h=0560c017a0a78deb65ceba3e9bc952103b1bc7f5;hb=44a7a1d29d8e4722e2ea522075878a13b89bcb52;hp=7452b0bc4b53a1e6e70dd9fa6003a9a407c7e5ae;hpb=85a7c67b4bb47c01bce4c42038bf20a3dc90e4aa;p=PrivacyBrowserAndroid.git diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksDatabaseViewActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksDatabaseViewActivity.java index 7452b0bc..0560c017 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksDatabaseViewActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksDatabaseViewActivity.java @@ -1,5 +1,5 @@ /* - * Copyright © 2016-2022 Soren Stoutner . + * Copyright 2016-2022 Soren Stoutner . * * This file is part of Privacy Browser Android . * @@ -34,7 +34,6 @@ import android.graphics.Typeface; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.preference.PreferenceManager; import android.util.SparseBooleanArray; import android.view.ActionMode; import android.view.Menu; @@ -53,6 +52,7 @@ import android.widget.ResourceCursorAdapter; import android.widget.Spinner; import android.widget.TextView; +import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; @@ -60,6 +60,7 @@ import androidx.appcompat.widget.Toolbar; // The AndroidX toolbar must be used import androidx.core.content.ContextCompat; import androidx.cursoradapter.widget.CursorAdapter; import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment must be used or an error is produced on API <=22. +import androidx.preference.PreferenceManager; import com.google.android.material.snackbar.Snackbar; @@ -150,6 +151,18 @@ public class BookmarksDatabaseViewActivity extends AppCompatActivity implements actionBar.setCustomView(R.layout.spinner); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_HOME_AS_UP); + // Control what the system back command does. + OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + // Prepare to finish the activity. + prepareFinish(); + } + }; + + // Register the on back pressed callback. + getOnBackPressedDispatcher().addCallback(this, onBackPressedCallback); + // Initialize the database handler. bookmarksDatabaseHelper = new BookmarksDatabaseHelper(this); @@ -585,7 +598,7 @@ public class BookmarksDatabaseViewActivity extends AppCompatActivity implements // Close the activity if back has been pressed. if (closeActivityAfterDismissingSnackbar) { - onBackPressed(); + finish(); } } }); @@ -629,8 +642,8 @@ public class BookmarksDatabaseViewActivity extends AppCompatActivity implements // Run the command that corresponds to the selected menu item. if (menuItemId == android.R.id.home) { // Go Home. The home arrow is identified as `android.R.id.home`, not just `R.id.home`. - // Exit the activity. - onBackPressed(); + // Prepare to finish the activity. + prepareFinish(); } else if (menuItemId == R.id.sort) { // Toggle the sort mode. // Update the sort by display order tracker. sortByDisplayOrder = !sortByDisplayOrder; @@ -672,8 +685,7 @@ public class BookmarksDatabaseViewActivity extends AppCompatActivity implements savedInstanceState.putBoolean(SORT_BY_DISPLAY_ORDER, sortByDisplayOrder); } - @Override - public void onBackPressed() { + private void prepareFinish() { // Check to see if a snackbar is currently displayed. If so, it must be closed before existing so that a pending delete is completed before reloading the list view in the bookmarks activity. if ((bookmarksDeletedSnackbar != null) && bookmarksDeletedSnackbar.isShown()) { // Close the bookmarks deleted snackbar before going home. // Set the close flag. @@ -695,7 +707,7 @@ public class BookmarksDatabaseViewActivity extends AppCompatActivity implements BookmarksActivity.restartFromBookmarksDatabaseViewActivity = true; // Exit the bookmarks database view activity. - super.onBackPressed(); + finish(); } } @@ -915,4 +927,4 @@ public class BookmarksDatabaseViewActivity extends AppCompatActivity implements // Run the default commands. super.onDestroy(); } -} \ No newline at end of file +}