X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Fdialogs%2FEditBookmarkFolderDialog.java;h=e854a065808eeb8241715bf0aa7a324c43f9ddd6;hp=ab3e690d01346f929743be59cc50c348686da59a;hb=572449f6c66adfc1a3d88e761cb87581a7961df3;hpb=9f551f25b53a30cca7b19b6e6bfc2d2520d9aa1b diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDialog.java b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDialog.java index ab3e690d..e854a065 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDialog.java +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDialog.java @@ -1,5 +1,5 @@ /* - * Copyright © 2016-2017 Soren Stoutner . + * Copyright © 2016-2019 Soren Stoutner . * * This file is part of Privacy Browser . * @@ -47,25 +47,20 @@ import com.stoutner.privacybrowser.activities.MainWebViewActivity; import com.stoutner.privacybrowser.helpers.BookmarksDatabaseHelper; public class EditBookmarkFolderDialog extends AppCompatDialogFragment { + // Instantiate the class variable. + private EditBookmarkFolderListener editBookmarkFolderListener; + // The public interface is used to send information back to the parent activity. public interface EditBookmarkFolderListener { void onSaveBookmarkFolder(AppCompatDialogFragment dialogFragment, int selectedFolderDatabaseId); } - // Instantiate the class variables. - private EditBookmarkFolderListener editBookmarkFolderListener; - private int selectedFolderDatabaseId; - public void onAttach(Context context) { // Run the default commands. super.onAttach(context); - // Get a handle for `EditFolderListener` from `parentActivity`. - try { - editBookmarkFolderListener = (EditBookmarkFolderListener) context; - } catch(ClassCastException exception) { - throw new ClassCastException(context.toString() + " must implement EditBookmarkFolderListener."); - } + // Get a handle for `EditFolderListener` from the launching context. + editBookmarkFolderListener = (EditBookmarkFolderListener) context; } // Store the database ID in the arguments bundle. @@ -84,28 +79,25 @@ public class EditBookmarkFolderDialog extends AppCompatDialogFragment { return editBookmarkFolderDialog; } - @Override - public void onCreate(Bundle savedInstanceState) { - // Run the default commands. - super.onCreate(savedInstanceState); - - // Store the folder database ID in the class variable. - selectedFolderDatabaseId = getArguments().getInt("Database ID"); - } - // `@SuppressLing("InflateParams")` removes the warning about using `null` as the parent view group when inflating the `AlertDialog`. @SuppressLint("InflateParams") @Override @NonNull public Dialog onCreateDialog(Bundle savedInstanceState) { + // Remove the incorrect lint warning that `getInt()` might be null. + assert getArguments() != null; + + // Store the folder database ID in the class variable. + int selectedFolderDatabaseId = getArguments().getInt("Database ID"); + // Initialize the database helper. The two `nulls` do not specify the database name or a `CursorFactory`. The `0` specifies a database version, but that is ignored and set instead using a constant in `BookmarksDatabaseHelper`. final BookmarksDatabaseHelper bookmarksDatabaseHelper = new BookmarksDatabaseHelper(getContext(), null, null, 0); // Get a `Cursor` with the selected folder and move it to the first position. - Cursor folderCursor = bookmarksDatabaseHelper.getBookmarkCursor(selectedFolderDatabaseId); + Cursor folderCursor = bookmarksDatabaseHelper.getBookmark(selectedFolderDatabaseId); folderCursor.moveToFirst(); - // Use `AlertDialog.Builder` to create the `AlertDialog`. + // Use an alert dialog builder to create the alert dialog. AlertDialog.Builder dialogBuilder; // Set the style according to the theme. @@ -118,30 +110,38 @@ public class EditBookmarkFolderDialog extends AppCompatDialogFragment { // Set the title. dialogBuilder.setTitle(R.string.edit_folder); + // Remove the incorrect lint warning that `getActivity()` might be null. + assert getActivity() != null; + // Set the view. The parent view is `null` because it will be assigned by `AlertDialog`. dialogBuilder.setView(getActivity().getLayoutInflater().inflate(R.layout.edit_bookmark_folder_dialog, null)); - // Set an `onClick()` listener for the negative button. + // Set the listener for the negative button. dialogBuilder.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> { // Do nothing. The `AlertDialog` will close automatically. }); - // Set the `onClick()` listener fo the positive button. + // Set the listener fo the positive button. dialogBuilder.setPositiveButton(R.string.save, (DialogInterface dialog, int which) -> { // Return the `DialogFragment` to the parent activity on save. editBookmarkFolderListener.onSaveBookmarkFolder(EditBookmarkFolderDialog.this, selectedFolderDatabaseId); }); - // Create an `AlertDialog` from the `AlertDialog.Builder`. + // Create an alert dialog from the alert dialog builder. final AlertDialog alertDialog = dialogBuilder.create(); - // Remove the warning below that `setSoftInputMode` might produce `java.lang.NullPointerException`. + // Remove the warning below that `getWindow()` might be null. assert alertDialog.getWindow() != null; - // Show the keyboard when the `Dialog` is displayed on the screen. + // Disable screenshots if not allowed. + if (!MainWebViewActivity.allowScreenshots) { + alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); + } + + // Show the keyboard when the dialog is displayed on the screen. alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); - // The `AlertDialog` must be shown before items in the layout can be modified. + // The alert dialog must be shown before items in the layout can be modified. alertDialog.show(); // Get handles for layout items in the `AlertDialog`. @@ -189,7 +189,7 @@ public class EditBookmarkFolderDialog extends AppCompatDialogFragment { String newFolderName = s.toString(); // Get a cursor for the new folder name if it exists. - Cursor folderExistsCursor = bookmarksDatabaseHelper.getFolderCursor(newFolderName); + Cursor folderExistsCursor = bookmarksDatabaseHelper.getFolder(newFolderName); // Is the new folder name empty? boolean folderNameNotEmpty = !newFolderName.isEmpty(); @@ -214,7 +214,7 @@ public class EditBookmarkFolderDialog extends AppCompatDialogFragment { String newFolderName = folderNameEditText.getText().toString(); // Get a cursor for the new folder name if it exists. - Cursor folderExistsCursor = bookmarksDatabaseHelper.getFolderCursor(newFolderName); + Cursor folderExistsCursor = bookmarksDatabaseHelper.getFolder(newFolderName); // Is the new folder name empty? boolean folderNameEmpty = newFolderName.isEmpty();