From: Soren Stoutner Date: Tue, 13 Oct 2020 02:13:49 +0000 (-0700) Subject: Make a single tap in the bookmarks activity edit the bookmark. https://redmine.stout... X-Git-Tag: v3.6~10 X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff_plain;h=d2c46729a14917017e48d88abc870909ba805700 Make a single tap in the bookmarks activity edit the bookmark. https://redmine.stoutner.com/issues/580 --- 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 e6a4cf48..3cf6e692 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java @@ -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; 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 cbf7c1e8..b54b3d05 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java @@ -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); + }); } }