X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Fdialogs%2FMoveToFolderDialog.java;h=8ced87d3871c03771e0cccdcd6ddcd0dc68bd1e9;hb=42c6627eecfbe6145ab1167d32b1c9ebf71bc9ce;hp=bf86344498977e6c98d59d53f59d3f941eadbf63;hpb=61a76e491469916f2f30aebb47b98cda7cceb557;p=PrivacyBrowserAndroid.git diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/MoveToFolderDialog.java b/app/src/main/java/com/stoutner/privacybrowser/dialogs/MoveToFolderDialog.java index bf863444..8ced87d3 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/MoveToFolderDialog.java +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/MoveToFolderDialog.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2017 Soren Stoutner . + * Copyright © 2016-2017 Soren Stoutner . * * This file is part of Privacy Browser . * @@ -35,10 +35,12 @@ import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.content.ContextCompat; -// We have to use `AppCompatDialogFragment` instead of `DialogFragment` or an error is produced on API <=22. +// `AppCompatDialogFragment` must be used instead of `DialogFragment` or an error is produced on API <=22. import android.support.v7.app.AppCompatDialogFragment; import android.view.View; import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.Button; import android.widget.CursorAdapter; import android.widget.ImageView; import android.widget.ListView; @@ -46,6 +48,7 @@ import android.widget.TextView; import com.stoutner.privacybrowser.R; import com.stoutner.privacybrowser.activities.BookmarksActivity; +import com.stoutner.privacybrowser.activities.MainWebViewActivity; import com.stoutner.privacybrowser.helpers.BookmarksDatabaseHelper; import java.io.ByteArrayOutputStream; @@ -78,10 +81,20 @@ public class MoveToFolderDialog extends AppCompatDialogFragment { @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); + // Use `AlertDialog.Builder` to create the `AlertDialog`. + AlertDialog.Builder dialogBuilder; + + // Set the style according to the theme. + if (MainWebViewActivity.darkTheme) { + dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark); + } else { + dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight); + } + + // Set the title. dialogBuilder.setTitle(R.string.move_to_folder); - // The parent view is `null` because it will be assigned by `AlertDialog`. + + // Set the view. The parent view is `null` because it will be assigned by `AlertDialog`. dialogBuilder.setView(getActivity().getLayoutInflater().inflate(R.layout.move_to_folder_dialog, null)); // Set an `onClick()` listener for the negative button. @@ -104,9 +117,15 @@ public class MoveToFolderDialog extends AppCompatDialogFragment { // Create an `AlertDialog` from the `AlertDialog.Builder`. final AlertDialog alertDialog = dialogBuilder.create(); - // We need to show the `AlertDialog` before we can modify items in the layout. + // Show the `AlertDialog` so the items in the layout can be modified. alertDialog.show(); + // Get a handle for the positive button. + final Button moveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE); + + // Initially disable the positive button. + moveButton.setEnabled(false); + // Initialize the `Cursor` and `CursorAdapter` variables. Cursor foldersCursor; CursorAdapter foldersCursorAdapter; @@ -159,7 +178,6 @@ public class MoveToFolderDialog extends AppCompatDialogFragment { Bitmap folderIconBitmap = BitmapFactory.decodeByteArray(folderIconByteArray, 0, folderIconByteArray.length); // Display `folderIconBitmap` in `move_to_folder_icon`. ImageView folderIconImageView = (ImageView) view.findViewById(R.id.move_to_folder_icon); - assert folderIconImageView != null; // Remove the warning below that `currentIconImageView` might be null; folderIconImageView.setImageBitmap(folderIconBitmap); // Get the folder name from `cursor` and display it in `move_to_folder_name_textview`. @@ -227,7 +245,6 @@ public class MoveToFolderDialog extends AppCompatDialogFragment { Bitmap folderIconBitmap = BitmapFactory.decodeByteArray(folderIconByteArray, 0, folderIconByteArray.length); // Display `folderIconBitmap` in `move_to_folder_icon`. ImageView folderIconImageView = (ImageView) view.findViewById(R.id.move_to_folder_icon); - assert folderIconImageView != null; // Remove the warning below that `currentIconImageView` might be null; folderIconImageView.setImageBitmap(folderIconBitmap); // Get the folder name from `cursor` and display it in `move_to_folder_name_textview`. @@ -240,9 +257,17 @@ public class MoveToFolderDialog extends AppCompatDialogFragment { // Display the ListView ListView foldersListView = (ListView) alertDialog.findViewById(R.id.move_to_folder_listview); - assert foldersListView != null; // Remove the warning below that `foldersListView` might be null. foldersListView.setAdapter(foldersCursorAdapter); + // Enable the move button when a folder is selected. + foldersListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + // Enable the move button. + moveButton.setEnabled(true); + } + }); + // `onCreateDialog` requires the return of an `AlertDialog`. return alertDialog; }