X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2FBookmarksActivity.java;h=3941e634acaf030f3999423669c948e251227c20;hb=1bd5ba3b9f91e69517fa8a39665256f0badc408b;hp=f39dae6ea2cdd1ffaa761f54b27687e2b175a1d8;hpb=a45494e763affaa93f42927ee58f45803e1ee9db;p=PrivacyBrowserAndroid.git diff --git a/app/src/main/java/com/stoutner/privacybrowser/BookmarksActivity.java b/app/src/main/java/com/stoutner/privacybrowser/BookmarksActivity.java index f39dae6e..3941e634 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/BookmarksActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/BookmarksActivity.java @@ -20,7 +20,6 @@ package com.stoutner.privacybrowser; import android.app.Activity; -import android.app.DialogFragment; import android.content.Context; import android.content.Intent; import android.database.Cursor; @@ -35,6 +34,7 @@ import android.support.design.widget.Snackbar; import android.support.v4.app.NavUtils; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; +import android.support.v7.app.AppCompatDialogFragment; import android.support.v7.widget.Toolbar; import android.util.SparseBooleanArray; import android.view.ActionMode; @@ -56,22 +56,27 @@ import java.io.ByteArrayOutputStream; public class BookmarksActivity extends AppCompatActivity implements CreateBookmark.CreateBookmarkListener, CreateBookmarkFolder.CreateBookmarkFolderListener, EditBookmark.EditBookmarkListener, EditBookmarkFolder.EditBookmarkFolderListener, MoveToFolder.MoveToFolderListener { + // `bookmarksDatabaseHandler` is public static so it can be accessed from `EditBookmark` and `MoveToFolder`. It is also used in `onCreate()`, // `onCreateBookmarkCreate()`, `updateBookmarksListView()`, and `updateBookmarksListViewExcept()`. public static BookmarksDatabaseHandler bookmarksDatabaseHandler; - // `bookmarksListView` is public static so it can be accessed from `EditBookmark`. - // It is also used in `onCreate()`, `updateBookmarksListView()`, and `updateBookmarksListViewExcept()`. - public static ListView bookmarksListView; - // `currentFolder` is public static so it can be accessed from `MoveToFolder`. // It is used in `onCreate`, `onOptionsItemSelected()`, `onCreateBookmarkCreate`, `onCreateBookmarkFolderCreate`, and `onEditBookmarkSave`. public static String currentFolder; + // `checkedItemIds` is public static so it can be accessed from `EditBookmark`, `EditBookmarkFolder`, and `MoveToFolder`. + // It is also used in `onActionItemClicked`. + public static long[] checkedItemIds; + + + // `bookmarksListView` is used in `onCreate()`, `updateBookmarksListView()`, and `updateBookmarksListViewExcept()`. + private ListView bookmarksListView; + // `contextualActionMode` is used in `onCreate()` and `onEditBookmarkSave()`. private ActionMode contextualActionMode; - // `selectedBookmarkPosition` is used in `onCreate()` and `onEditBookarkSave()`. + // `selectedBookmarkPosition` is used in `onCreate()` and `onEditBookmarkSave()`. private int selectedBookmarkPosition; // `appBar` is used in `onCreate()` and `updateBookmarksListView()`. @@ -131,11 +136,9 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma // Reload the ListView with `currentFolder`. updateBookmarksListView(currentFolder); } else { // Load the URL into `mainWebView`. - // Get the bookmark URL and assign it to formattedUrlString. + // Get the bookmark URL and assign it to formattedUrlString. `mainWebView` will automatically reload when `BookmarksActivity` closes. MainWebViewActivity.formattedUrlString = bookmarkCursor.getString(bookmarkCursor.getColumnIndex(BookmarksDatabaseHandler.BOOKMARK_URL)); - // Load formattedUrlString and return to the main activity. - MainWebViewActivity.mainWebView.loadUrl(MainWebViewActivity.formattedUrlString, MainWebViewActivity.customHeaders); NavUtils.navigateUpFromSameTask(bookmarksActivity); } @@ -338,9 +341,12 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma break; case R.id.move_to_folder: + // Store `checkedItemIds` for use by the `AlertDialog`. + checkedItemIds = bookmarksListView.getCheckedItemIds(); + // Show the `MoveToFolder` `AlertDialog` and name the instance `@string/move_to_folder - DialogFragment moveToFolderDialog = new MoveToFolder(); - moveToFolderDialog.show(getFragmentManager(), getResources().getString(R.string.move_to_folder)); + AppCompatDialogFragment moveToFolderDialog = new MoveToFolder(); + moveToFolderDialog.show(getSupportFragmentManager(), getResources().getString(R.string.move_to_folder)); break; case R.id.edit_bookmark: @@ -356,17 +362,20 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma bookmarksCursor.moveToPosition(selectedBookmarkPosition); boolean isFolder = (bookmarksCursor.getInt(bookmarksCursor.getColumnIndex(BookmarksDatabaseHandler.IS_FOLDER)) == 1); + // Store `checkedItemIds` for use by the `AlertDialog`. + checkedItemIds = bookmarksListView.getCheckedItemIds(); + if (isFolder) { // Save the current folder name. oldFolderNameString = bookmarksCursor.getString(bookmarksCursor.getColumnIndex(BookmarksDatabaseHandler.BOOKMARK_NAME)); // Show the `EditBookmarkFolder` `AlertDialog` and name the instance `@string/edit_folder`. - DialogFragment editFolderDialog = new EditBookmarkFolder(); - editFolderDialog.show(getFragmentManager(), getResources().getString(R.string.edit_folder)); + AppCompatDialogFragment editFolderDialog = new EditBookmarkFolder(); + editFolderDialog.show(getSupportFragmentManager(), getResources().getString(R.string.edit_folder)); } else { // Show the `EditBookmark` `AlertDialog` and name the instance `@string/edit_bookmark`. - DialogFragment editBookmarkDialog = new EditBookmark(); - editBookmarkDialog.show(getFragmentManager(), getResources().getString(R.string.edit_bookmark)); + AppCompatDialogFragment editBookmarkDialog = new EditBookmark(); + editBookmarkDialog.show(getSupportFragmentManager(), getResources().getString(R.string.edit_bookmark)); } break; @@ -407,6 +416,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma .setCallback(new Snackbar.Callback() { @Override public void onDismissed(Snackbar snackbar, int event) { + // Android Studio wants to see entries for every possible `Snackbar.Callback` even if they aren't used. switch (event) { // The user pushed the "Undo" button. case Snackbar.Callback.DISMISS_EVENT_ACTION: @@ -418,6 +428,18 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma break; + case Snackbar.Callback.DISMISS_EVENT_CONSECUTIVE: + // Do nothing and let the default behavior run. + + case Snackbar.Callback.DISMISS_EVENT_MANUAL: + // Do nothing and let the default behavior run. + + case Snackbar.Callback.DISMISS_EVENT_SWIPE: + // Do nothing and let the default behavior run. + + case Snackbar.Callback.DISMISS_EVENT_TIMEOUT: + // Do nothing and let the default behavior run. + // The Snackbar was dismissed without the "Undo" button being pushed. default: // Delete each selected row. @@ -462,13 +484,12 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma // Set a FloatingActionButton for creating new bookmarks. FloatingActionButton createBookmarkFAB = (FloatingActionButton) findViewById(R.id.create_bookmark_fab); - assert createBookmarkFAB != null; createBookmarkFAB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Show the `CreateBookmark` `AlertDialog` and name the instance `@string/create_bookmark`. - DialogFragment createBookmarkDialog = new CreateBookmark(); - createBookmarkDialog.show(getFragmentManager(), getResources().getString(R.string.create_bookmark)); + AppCompatDialogFragment createBookmarkDialog = new CreateBookmark(); + createBookmarkDialog.show(getSupportFragmentManager(), getResources().getString(R.string.create_bookmark)); } }); } @@ -507,8 +528,8 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma case R.id.create_folder: // Show the `CreateBookmarkFolder` `AlertDialog` and name the instance `@string/create_folder`. - DialogFragment createBookmarkFolderDialog = new CreateBookmarkFolder(); - createBookmarkFolderDialog.show(getFragmentManager(), getResources().getString(R.string.create_folder)); + AppCompatDialogFragment createBookmarkFolderDialog = new CreateBookmarkFolder(); + createBookmarkFolderDialog.show(getSupportFragmentManager(), getResources().getString(R.string.create_folder)); break; case R.id.options_menu_select_all_bookmarks: @@ -529,7 +550,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma } @Override - public void onCreateBookmark(DialogFragment dialogFragment) { + public void onCreateBookmark(AppCompatDialogFragment dialogFragment) { // Get the `EditText`s from the `createBookmarkDialogFragment` and extract the strings. EditText createBookmarkNameEditText = (EditText) dialogFragment.getDialog().findViewById(R.id.create_bookmark_name_edittext); String bookmarkNameString = createBookmarkNameEditText.getText().toString(); @@ -554,7 +575,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma } @Override - public void onCreateBookmarkFolder(DialogFragment dialogFragment) { + public void onCreateBookmarkFolder(AppCompatDialogFragment dialogFragment) { // Get `create_folder_name_edit_text` and extract the string. EditText createFolderNameEditText = (EditText) dialogFragment.getDialog().findViewById(R.id.create_folder_name_edittext); String folderNameString = createFolderNameEditText.getText().toString(); @@ -568,7 +589,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma Snackbar.make(findViewById(R.id.bookmarks_coordinatorlayout), cannotCreateFolder, Snackbar.LENGTH_INDEFINITE).show(); } else { // Create the folder. // Get the new folder icon `Bitmap`. - RadioButton defaultFolderIconRadioButton = (RadioButton) dialogFragment.getDialog().findViewById(R.id.create_folder_default_icon_radiobuttion); + RadioButton defaultFolderIconRadioButton = (RadioButton) dialogFragment.getDialog().findViewById(R.id.create_folder_default_icon_radiobutton); Bitmap folderIconBitmap; if (defaultFolderIconRadioButton.isChecked()) { // Get the default folder icon `ImageView` from the `Dialog` and convert it to a `Bitmap`. @@ -600,7 +621,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma } @Override - public void onSaveEditBookmark(DialogFragment dialogFragment) { + public void onSaveEditBookmark(AppCompatDialogFragment dialogFragment) { // Get a long array with the the databaseId of the selected bookmark and convert it to an `int`. long[] selectedBookmarksLongArray = bookmarksListView.getCheckedItemIds(); int selectedBookmarkDatabaseId = (int) selectedBookmarksLongArray[0]; @@ -634,7 +655,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma } @Override - public void onSaveEditBookmarkFolder(DialogFragment dialogFragment) { + public void onSaveEditBookmarkFolder(AppCompatDialogFragment dialogFragment) { // Get the new folder name. EditText editFolderNameEditText = (EditText) dialogFragment.getDialog().findViewById(R.id.edit_folder_name_edittext); String newFolderNameString = editFolderNameEditText.getText().toString(); @@ -696,12 +717,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma } @Override - public void onCancelMoveToFolder(DialogFragment dialogFragment) { - // Do nothing because the user selected `Cancel`. - } - - @Override - public void onMoveToFolder(DialogFragment dialogFragment) { + public void onMoveToFolder(AppCompatDialogFragment dialogFragment) { // Get the new folder database id. ListView folderListView = (ListView) dialogFragment.getDialog().findViewById(R.id.move_to_folder_listview); long[] newFolderLongArray = folderListView.getCheckedItemIds(); @@ -773,7 +789,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma // Make the font bold for folders. if (cursor.getInt(cursor.getColumnIndex(BookmarksDatabaseHandler.IS_FOLDER)) == 1) { - // The first argument is `null` because we don't want to chage the font. + // The first argument is `null` because we don't want to change the font. bookmarkNameTextView.setTypeface(null, Typeface.BOLD); } else { // Reset the font to default. bookmarkNameTextView.setTypeface(Typeface.DEFAULT); @@ -824,7 +840,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma // Make the font bold for folders. if (cursor.getInt(cursor.getColumnIndex(BookmarksDatabaseHandler.IS_FOLDER)) == 1) { - // The first argument is `null` because we don't want to chage the font. + // The first argument is `null` because we don't want to change the font. bookmarkNameTextView.setTypeface(null, Typeface.BOLD); } else { // Reset the font to default. bookmarkNameTextView.setTypeface(Typeface.DEFAULT);