From c45c0fa64109c47bdc35328d0e31a65c685bdc22 Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Fri, 15 Jul 2022 16:40:46 -0700 Subject: [PATCH] Persist the current bookmarks folder on restart. https://redmine.stoutner.com/issues/806 --- .../activities/BookmarksActivity.java | 18 ++++++++++-------- .../activities/MainWebViewActivity.java | 8 +++----- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java index 932f01d3..905a98d0 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java @@ -71,15 +71,13 @@ import java.util.ArrayList; public class BookmarksActivity extends AppCompatActivity implements CreateBookmarkDialog.CreateBookmarkListener, CreateBookmarkFolderDialog.CreateBookmarkFolderListener, EditBookmarkDialog.EditBookmarkListener, EditBookmarkFolderDialog.EditBookmarkFolderListener, MoveToFolderDialog.MoveToFolderListener { - // `currentFolder` is public static so it can be accessed from `BookmarksDatabaseViewActivity`. + // Declare the public static variables, which are accessed from the bookmarks database view activity. public static String currentFolder; - - // `restartFromBookmarksDatabaseViewActivity` is public static so it can be accessed from `BookmarksDatabaseViewActivity`. It is also used in `onRestart()`. public static boolean restartFromBookmarksDatabaseViewActivity; - // Define the saved instance state constants. private final String CHECKED_BOOKMARKS_ARRAY_LIST = "checked_bookmarks_array_list"; + private final String CURRENT_FOLDER = "current_folder"; // Define the class menu items. private MenuItem moveBookmarkUpMenuItem; @@ -189,9 +187,6 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma // Initialize the database helper. bookmarksDatabaseHelper = new BookmarksDatabaseHelper(this); - // Load the home folder. - loadFolder(); - // Set a listener so that tapping a list item loads the URL or folder. bookmarksListView.setOnItemClickListener((parent, view, position, id) -> { // Convert the id from long to int to match the format of the bookmarks database. @@ -614,6 +609,9 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma // Restore the state if the app has been restarted. if (savedInstanceState != null) { + // Restore the current folder. + currentFolder = savedInstanceState.getString(CURRENT_FOLDER); + // Update the bookmarks list view after it has loaded. bookmarksListView.post(() -> { // Get the checked bookmarks array list. @@ -627,6 +625,9 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma } }); } + + // Load the home folder. + loadFolder(); } @Override @@ -664,7 +665,8 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma } } - // Store the checked items array list in the saved instance state. + // Store the variables in the saved instance state. + savedInstanceState.putString(CURRENT_FOLDER, currentFolder); savedInstanceState.putIntegerArrayList(CHECKED_BOOKMARKS_ARRAY_LIST, checkedBookmarksArrayList); } diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java index e54b0687..c2d169b4 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java @@ -197,7 +197,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook public static String proxyMode = ProxyHelper.NONE; // Declare the public static variables. - public static String currentBookmarksFolder; + public static String currentBookmarksFolder = ""; public static boolean restartFromBookmarksActivity; public static WebViewPagerAdapter webViewPagerAdapter; @@ -3379,12 +3379,10 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook drawerLayout.setDrawerTitle(GravityCompat.START, getString(R.string.navigation_drawer)); drawerLayout.setDrawerTitle(GravityCompat.END, getString(R.string.bookmarks)); - // Initialize `currentBookmarksFolder`. `""` is the home folder in the database. - currentBookmarksFolder = ""; - - // Load the home folder, which is `""` in the database. + // Load the bookmarks folder. loadBookmarksFolder(); + // Handle clicks on bookmarks. bookmarksListView.setOnItemClickListener((parent, view, position, id) -> { // Convert the id from long to int to match the format of the bookmarks database. int databaseId = (int) id; -- 2.45.2