package com.stoutner.privacybrowser;
-import android.app.Activity;
+import android.annotation.SuppressLint;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
+import android.support.annotation.NonNull;
// If we don't use `android.support.v7.app.AlertDialog` instead of `android.app.AlertDialog` then the dialog will be covered by the keyboard.
-import android.support.design.widget.Snackbar;
import android.support.v4.content.ContextCompat;
+// We have to use `AppCompatDialogFragment` instead of `DialogFragment` or an error is produced on API <=22.
import android.support.v7.app.AlertDialog;
+import android.support.v7.app.AppCompatDialogFragment;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CursorAdapter;
import java.io.ByteArrayOutputStream;
-public class MoveToFolder extends DialogFragment {
+public class MoveToFolder extends AppCompatDialogFragment {
// The public interface is used to send information back to the parent activity.
public interface MoveToFolderListener {
- void onCancelMoveToFolder(DialogFragment dialogFragment);
-
- void onMoveToFolder(DialogFragment dialogFragment);
+ void onMoveToFolder(AppCompatDialogFragment dialogFragment);
}
// `moveToFolderListener` is used in `onAttach()` and `onCreateDialog`.
private MoveToFolderListener moveToFolderListener;
- public void onAttach(Activity parentActivity) {
- super.onAttach(parentActivity);
+ public void onAttach(Context context) {
+ super.onAttach(context);
// Get a handle for `MoveToFolderListener` from `parentActivity`.
try {
- moveToFolderListener = (MoveToFolderListener) parentActivity;
+ moveToFolderListener = (MoveToFolderListener) context;
} catch(ClassCastException exception) {
- throw new ClassCastException(parentActivity.toString() + " must implement EditBookmarkFolderListener.");
+ throw new ClassCastException(context.toString() + " must implement EditBookmarkFolderListener.");
}
}
// `exceptFolders` is used in `onCreateDialog()` and `addSubfoldersToExceptFolders()`.
private String exceptFolders;
+ // `@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) {
// Use `AlertDialog.Builder` to create the `AlertDialog`. The style formats the color of the button text.
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.LightAlertDialog);
dialogBuilder.setNegativeButton(R.string.cancel, new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- // Return the `DialogFragment` to the parent activity on cancel.
- moveToFolderListener.onCancelMoveToFolder(MoveToFolder.this);
+ // Do nothing. The `AlertDialog` will close automatically.
}
});
exceptFolders = "";
// If a folder is selected, add it and all children to the list of folders not to display.
- long[] selectedBookmarksLongArray = BookmarksActivity.bookmarksListView.getCheckedItemIds();
+ long[] selectedBookmarksLongArray = BookmarksActivity.checkedItemIds;
for (long databaseIdLong : selectedBookmarksLongArray) {
// Get `databaseIdInt` for each selected bookmark.
int databaseIdInt = (int) databaseIdLong;
exceptFolders = DatabaseUtils.sqlEscapeString(BookmarksActivity.currentFolder);
// If a folder is selected, add it and all children to the list of folders not to display.
- long[] selectedBookmarksLongArray = BookmarksActivity.bookmarksListView.getCheckedItemIds();
+ long[] selectedBookmarksLongArray = BookmarksActivity.checkedItemIds;
for (long databaseIdLong : selectedBookmarksLongArray) {
// Get `databaseIdInt` for each selected bookmark.
int databaseIdInt = (int) databaseIdLong;
return alertDialog;
}
- public void addSubfoldersToExceptFolders(String folderName) {
+ private void addSubfoldersToExceptFolders(String folderName) {
// Get a `Cursor` will all the immediate subfolders.
Cursor subfoldersCursor = BookmarksActivity.bookmarksDatabaseHandler.getSubfoldersCursor(folderName);