X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2FBookmarksActivity.java;h=15264c691ba152eab71adc63f8e214029a69fd68;hb=7d632afdd10cad5b4d62fce37707eaceebe260cb;hp=834889cbb8fa22743cd3d137b7b071e0a6a16a28;hpb=88279fa8a750a4ff24b093649159dc833cbce1fd;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 834889cb..15264c69 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); 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,12 +550,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma } @Override - public void onCancelCreateBookmark(DialogFragment dialogFragment) { - // Do nothing because the user selected `Cancel`. - } - - @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(); @@ -559,12 +575,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma } @Override - public void onCancelCreateBookmarkFolder(DialogFragment dialogFragment) { - // Do nothing because the user selected `Cancel`. - } - - @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(); @@ -578,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`. @@ -610,12 +621,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma } @Override - public void onCancelEditBookmark(DialogFragment dialogFragment) { - // Do nothing because the user selected `Cancel`. - } - - @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]; @@ -649,12 +655,7 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma } @Override - public void onCancelEditBookmarkFolder(DialogFragment dialogFragment) { - // Do nothing because the user selected `Cancel`. - } - - @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(); @@ -716,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(); @@ -793,9 +789,8 @@ 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. - bookmarkNameTextView.setTypeface(null, Typeface.BOLD); - } else { // Reset the font to default. + bookmarkNameTextView.setTypeface(Typeface.DEFAULT_BOLD); + } else { // Reset the font to default for normal bookmarks. bookmarkNameTextView.setTypeface(Typeface.DEFAULT); } } @@ -844,7 +839,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);