Make a single tap in the bookmarks activity edit the bookmark. https://redmine.stout...
authorSoren Stoutner <soren@stoutner.com>
Tue, 13 Oct 2020 02:13:49 +0000 (19:13 -0700)
committerSoren Stoutner <soren@stoutner.com>
Tue, 13 Oct 2020 02:13:49 +0000 (19:13 -0700)
app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java
app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java

index e6a4cf48e3257d4f54e149e32dd9cc4c58005124..3cf6e6929d13610310389b7de3a54cae8d71d9b2 100644 (file)
@@ -20,7 +20,6 @@
 package com.stoutner.privacybrowser.activities;
 
 import android.annotation.SuppressLint;
-import android.app.Activity;
 import android.app.Dialog;
 import android.content.Context;
 import android.content.Intent;
@@ -53,7 +52,6 @@ import androidx.annotation.NonNull;
 import androidx.appcompat.app.ActionBar;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.appcompat.widget.Toolbar;
-import androidx.core.app.NavUtils;
 import androidx.fragment.app.DialogFragment;
 
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
@@ -175,8 +173,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma
         final Toolbar toolbar = findViewById(R.id.bookmarks_toolbar);
         setSupportActionBar(toolbar);
 
-        // Get a handle for the activity, the app bar, and the ListView.
-        final Activity bookmarksActivity = this;
+        // Get handles for the views.
         appBar = getSupportActionBar();
         bookmarksListView = findViewById(R.id.bookmarks_listview);
 
@@ -196,10 +193,12 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma
         // 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.
-            int databaseID = (int) id;
+            int databaseId = (int) id;
 
-            // Get the bookmark cursor for this ID and move it to the first row.
-            Cursor bookmarkCursor = bookmarksDatabaseHelper.getBookmark(databaseID);
+            // Get the bookmark cursor for this ID.
+            Cursor bookmarkCursor = bookmarksDatabaseHelper.getBookmark(databaseId);
+
+            // Move the cursor to the first entry.
             bookmarkCursor.moveToFirst();
 
             // Act upon the bookmark according to the type.
@@ -210,23 +209,14 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma
                 // Load the new folder.
                 loadFolder();
             } else {  // The selected bookmark is not a folder.
-                // Get the bookmark URL and assign it to `formattedUrlString`.
-                MainWebViewActivity.urlToLoadOnRestart = bookmarkCursor.getString(bookmarkCursor.getColumnIndex(BookmarksDatabaseHelper.BOOKMARK_URL));
-
-                // Set `MainWebViewActivity` to load the new URL on restart.
-                MainWebViewActivity.loadUrlOnRestart = true;
-
-                // Update the bookmarks folder for the bookmarks drawer in `MainWebViewActivity`.
-                MainWebViewActivity.currentBookmarksFolder = currentFolder;
-
-                // Close the bookmarks drawer and reload the bookmarks `ListView` when returning to `MainWebViewActivity`.
-                MainWebViewActivity.restartFromBookmarksActivity = true;
+                // Instantiate the edit bookmark dialog.
+                DialogFragment editBookmarkDialog = EditBookmarkDialog.bookmarkDatabaseId(databaseId, favoriteIconBitmap);
 
-                // Return to `MainWebViewActivity`.
-                NavUtils.navigateUpFromSameTask(bookmarksActivity);
+                // Make it so.
+                editBookmarkDialog.show(getSupportFragmentManager(), getResources().getString(R.string.edit_bookmark));
             }
 
-            // Close the `Cursor`.
+            // Close the cursor.
             bookmarkCursor.close();
         });
 
@@ -456,8 +446,10 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma
                             }
                         }
 
-                        // Move the `Cursor` to the selected position and find out if it is a folder.
+                        // Move the cursor to the selected position.
                         bookmarksCursor.moveToPosition(selectedBookmarkPosition);
+
+                        // Find out if this bookmark is a folder.
                         boolean isFolder = (bookmarksCursor.getInt(bookmarksCursor.getColumnIndex(BookmarksDatabaseHelper.IS_FOLDER)) == 1);
 
                         // Get the selected bookmark database ID.
@@ -468,12 +460,16 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma
                             // Save the current folder name, which is used in `onSaveBookmarkFolder()`.
                             oldFolderNameString = bookmarksCursor.getString(bookmarksCursor.getColumnIndex(BookmarksDatabaseHelper.BOOKMARK_NAME));
 
-                            // Show the edit bookmark folder dialog.
+                            // Instantiate the edit bookmark folder dialog.
                             DialogFragment editFolderDialog = EditBookmarkFolderDialog.folderDatabaseId(databaseId, favoriteIconBitmap);
+
+                            // Make it so.
                             editFolderDialog.show(getSupportFragmentManager(), getResources().getString(R.string.edit_folder));
                         } else {
-                            // Show the edit bookmark dialog.
+                            // Instantiate the edit bookmark dialog.
                             DialogFragment editBookmarkDialog = EditBookmarkDialog.bookmarkDatabaseId(databaseId, favoriteIconBitmap);
+
+                            // Make it so.
                             editBookmarkDialog.show(getSupportFragmentManager(), getResources().getString(R.string.edit_bookmark));
                         }
                         break;
index cbf7c1e82e4720370c1fd09dba52242aa9648103..b54b3d05805e4edea9cf035699eb50cd7e8eba25 100644 (file)
@@ -189,10 +189,6 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
     // The WebView pager adapter is accessed from `HttpAuthenticationDialog`, `PinnedMismatchDialog`, and `SslCertificateErrorDialog`.  It is also used in `onCreate()`, `onResume()`, and `addTab()`.
     public static WebViewPagerAdapter webViewPagerAdapter;
 
-    // The load URL on restart variables are public static so they can be accessed from `BookmarksActivity`.  They are used in `onRestart()`.
-    public static boolean loadUrlOnRestart;
-    public static String urlToLoadOnRestart;
-
     // `restartFromBookmarksActivity` is public static so it can be accessed from `BookmarksActivity`.  It is also used in `onRestart()`.
     public static boolean restartFromBookmarksActivity;
 
@@ -556,15 +552,6 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
             }
         }
 
-        // Load the URL on restart (used when loading a bookmark).
-        if (loadUrlOnRestart) {
-            // Load the specified URL.
-            loadUrl(currentWebView, urlToLoadOnRestart);
-
-            // Reset the load on restart tracker.
-            loadUrlOnRestart = false;
-        }
-
         // Update the bookmarks drawer if returning from the Bookmarks activity.
         if (restartFromBookmarksActivity) {
             // Close the bookmarks drawer.
@@ -3346,11 +3333,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
 
                 // Select the corresponding tab if it does not match the currently selected page.  This will happen if the page was scrolled by creating a new tab.
                 if (tabLayout.getSelectedTabPosition() != position) {
-                    // Create a handler to select the tab.
-                    Handler selectTabHandler = new Handler();
-
-                    // Create a runnable to select the tab.
-                    Runnable selectTabRunnable = () -> {
+                    // Wait until the new tab has been created.
+                    tabLayout.post(() -> {
                         // Get a handle for the tab.
                         TabLayout.Tab tab = tabLayout.getTabAt(position);
 
@@ -3359,10 +3343,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
 
                         // Select the tab.
                         tab.select();
-                    };
-
-                    // Select the tab layout after 150 milliseconds, which leaves enough time for a new tab to be inflated.  TODO.
-                    selectTabHandler.postDelayed(selectTabRunnable, 150);
+                    });
                 }
             }