From f7c91839ba1a70baf003a7c92ccd4d00b2ae2864 Mon Sep 17 00:00:00 2001 From: Aidan Follestad Date: Thu, 16 Apr 2015 20:49:09 -0500 Subject: [PATCH] Cleanup titles and content of more dialogs, also removed unnecessary empty dialog callbacks (you don't need to manually dismiss dialogs with auto dismiss on by default) More dialog cleanup The queue dialog will scroll to the queue position everytime it opens Updates FAB ripple color is set Re-added accidentally removed method --- .../gramophone/dialogs/AboutDialog.java | 9 +-- .../dialogs/CreatePlaylistDialog.java | 2 +- .../dialogs/DeletePlaylistDialog.java | 6 -- .../gramophone/dialogs/DeleteSongsDialog.java | 66 +++++++++++++++++++ .../dialogs/PlayingQueueDialog.java | 9 ++- .../gramophone/dialogs/SongDetailDialog.java | 6 -- .../helper/DeleteSongsDialogHelper.java | 47 ------------- .../helper/MenuItemClickHelper.java | 3 +- .../ui/activities/base/AbsFabActivity.java | 10 +-- .../ui/widget/PlayPauseDrawable.java | 4 -- .../main/res/layout/activity_album_detail.xml | 4 +- app/src/main/res/values/strings.xml | 11 +++- 12 files changed, 96 insertions(+), 81 deletions(-) create mode 100644 app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java delete mode 100644 app/src/main/java/com/kabouzeid/gramophone/helper/DeleteSongsDialogHelper.java diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/AboutDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/AboutDialog.java index 0cb1c79b..1a2aa70d 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/AboutDialog.java +++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/AboutDialog.java @@ -27,14 +27,7 @@ public class AboutDialog extends DialogFragment { getActivity().getResources().getText(R.string.credits_3), getActivity().getResources().getText(R.string.credits_4)) ) - .positiveText(getActivity().getResources().getString(android.R.string.ok)) - .callback(new MaterialDialog.ButtonCallback() { - @Override - public void onPositive(MaterialDialog dialog) { - super.onPositive(dialog); - dialog.dismiss(); - } - }) + .positiveText(android.R.string.ok) .build(); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/CreatePlaylistDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/CreatePlaylistDialog.java index ca3f8b5a..f1b47b81 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/CreatePlaylistDialog.java +++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/CreatePlaylistDialog.java @@ -52,7 +52,7 @@ public class CreatePlaylistDialog extends DialogFragment { public void onInput(MaterialDialog materialDialog, CharSequence charSequence) { if (getActivity() == null) return; - if (!charSequence.toString().trim().equals("")) { + if (!charSequence.toString().trim().isEmpty()) { final int playlistId = PlaylistsUtil.createPlaylist(getActivity(), charSequence.toString()); if (playlistId != -1 && getActivity() != null) { //noinspection unchecked diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeletePlaylistDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeletePlaylistDialog.java index 8bb05421..a448924f 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeletePlaylistDialog.java +++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeletePlaylistDialog.java @@ -42,12 +42,6 @@ public class DeletePlaylistDialog extends DialogFragment { long playlistId = getArguments().getLong("playlist_id"); PlaylistsUtil.deletePlaylist(getActivity(), playlistId); } - - @Override - public void onNegative(MaterialDialog dialog) { - super.onNegative(dialog); - dialog.dismiss(); - } }).build(); } } \ No newline at end of file diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java new file mode 100644 index 00000000..582c346c --- /dev/null +++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java @@ -0,0 +1,66 @@ +package com.kabouzeid.gramophone.dialogs; + +import android.app.Dialog; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v4.app.DialogFragment; +import android.text.Html; + +import com.afollestad.materialdialogs.MaterialDialog; +import com.kabouzeid.gramophone.R; +import com.kabouzeid.gramophone.model.Song; +import com.kabouzeid.gramophone.util.MusicUtil; + +import java.util.ArrayList; + +/** + * @author Karim Abou Zeid (kabouzeid), Aidan Follestad (afollestad) + */ +public class DeleteSongsDialog extends DialogFragment { + + public static DeleteSongsDialog create(Song song) { + ArrayList list = new ArrayList<>(); + list.add(song); + return create(list); + } + + public static DeleteSongsDialog create(ArrayList songs) { + DeleteSongsDialog dialog = new DeleteSongsDialog(); + Bundle args = new Bundle(); + args.putSerializable("songs", songs); + dialog.setArguments(args); + return dialog; + } + + @NonNull + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + //noinspection unchecked + ArrayList songs = (ArrayList) getArguments().getSerializable("songs"); + int title; + CharSequence content; + if (songs.size() > 1) { + title = R.string.delete_songs_title; + content = Html.fromHtml(getString(R.string.delete_x_songs, songs.size())); + } else { + title = R.string.delete_song_title; + content = Html.fromHtml(getString(R.string.delete_song_x, songs.get(0).getTitle())); + } + return new MaterialDialog.Builder(getActivity()) + .title(title) + .content(content) + .positiveText(R.string.delete_action) + .negativeText(android.R.string.cancel) + .callback(new MaterialDialog.ButtonCallback() { + @Override + public void onPositive(MaterialDialog dialog) { + super.onPositive(dialog); + if (getActivity() == null) + return; + //noinspection unchecked + ArrayList songs = (ArrayList) getArguments().getSerializable("songs"); + MusicUtil.deleteTracks(getActivity(), songs); + } + }).build(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/PlayingQueueDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/PlayingQueueDialog.java index cc3364d0..bda4a265 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/PlayingQueueDialog.java +++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/PlayingQueueDialog.java @@ -39,7 +39,7 @@ public class PlayingQueueDialog extends DialogFragment { MaterialDialog dialog = new MaterialDialog.Builder(getActivity()) .title(getActivity().getResources().getString(R.string.label_current_playing_queue)) .customView(R.layout.dialog_playlist, false) - .positiveText(getActivity().getResources().getString(R.string.save_as_playlist)) + .positiveText(R.string.save_as_playlist) .callback(new MaterialDialog.ButtonCallback() { @Override public void onPositive(MaterialDialog dialog) { @@ -73,6 +73,13 @@ public class PlayingQueueDialog extends DialogFragment { playingQueueAdapter.notifyDataSetChanged(); } }); + dragSortListView.post(new Runnable() { + @Override + public void run() { + dragSortListView.requestFocus(); + dragSortListView.setSelection(MusicPlayerRemote.getPosition()); + } + }); return dialog; } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/SongDetailDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/SongDetailDialog.java index de7dd4e3..ec3770cf 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/SongDetailDialog.java +++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/SongDetailDialog.java @@ -53,12 +53,6 @@ public class SongDetailDialog extends DialogFragment { .customView(R.layout.dialog_file_details, true) .title(context.getResources().getString(R.string.label_details)) .positiveText(android.R.string.ok) - .callback(new MaterialDialog.ButtonCallback() { - @Override - public void onPositive(MaterialDialog dialog) { - dialog.dismiss(); - } - }) .build(); View dialogView = dialog.getCustomView(); diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/DeleteSongsDialogHelper.java b/app/src/main/java/com/kabouzeid/gramophone/helper/DeleteSongsDialogHelper.java deleted file mode 100644 index f5a9fbfe..00000000 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/DeleteSongsDialogHelper.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.kabouzeid.gramophone.helper; - -import android.content.Context; - -import com.afollestad.materialdialogs.MaterialDialog; -import com.kabouzeid.gramophone.R; -import com.kabouzeid.gramophone.model.Song; -import com.kabouzeid.gramophone.util.MusicUtil; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author Karim Abou Zeid (kabouzeid), Aidan Follestad (afollestad) - */ -public class DeleteSongsDialogHelper { - - public static MaterialDialog getDialog(final Context context, final Song song) { - List tmpList = new ArrayList<>(); - tmpList.add(song); - return getDialog(context, tmpList); - } - - public static MaterialDialog getDialog(final Context context, final List songs) { - String title = context.getResources().getString(R.string.delete_songs_1); - title = songs.size() > 1 ? title + songs.size() + context.getResources().getString(R.string.delete_songs_2) : title + "'" + songs.get(0).title + "' " + "?"; - return new MaterialDialog.Builder(context) - .title(title) - .content(context.getResources().getString(R.string.delete_warning)) - .positiveText(context.getResources().getString(R.string.delete_action)) - .negativeText(context.getResources().getString(android.R.string.cancel)) - .callback(new MaterialDialog.ButtonCallback() { - @Override - public void onPositive(MaterialDialog dialog) { - super.onPositive(dialog); - dialog.dismiss(); - MusicUtil.deleteTracks(context, songs); - } - - @Override - public void onNegative(MaterialDialog dialog) { - super.onNegative(dialog); - dialog.dismiss(); - } - }).build(); - } -} diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/MenuItemClickHelper.java b/app/src/main/java/com/kabouzeid/gramophone/helper/MenuItemClickHelper.java index 0bb8b966..0ca8a82d 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/MenuItemClickHelper.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/MenuItemClickHelper.java @@ -8,6 +8,7 @@ import android.view.MenuItem; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog; import com.kabouzeid.gramophone.dialogs.DeletePlaylistDialog; +import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog; import com.kabouzeid.gramophone.dialogs.RenamePlaylistDialog; import com.kabouzeid.gramophone.dialogs.SongDetailDialog; import com.kabouzeid.gramophone.loader.SongFilePathLoader; @@ -28,7 +29,7 @@ public class MenuItemClickHelper { public static boolean handleSongMenuClick(ActionBarActivity activity, Song song, MenuItem item) { switch (item.getItemId()) { case R.id.action_delete_from_disk: - DeleteSongsDialogHelper.getDialog(activity, song).show(); + DeleteSongsDialog.create(song).show(activity.getSupportFragmentManager(), "DELETE_SONGS"); return true; case R.id.action_add_to_playlist: AddToPlaylistDialog.create(song).show(activity.getSupportFragmentManager(), "ADD_PLAYLIST"); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsFabActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsFabActivity.java index 50937d46..1c4cfa41 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsFabActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsFabActivity.java @@ -57,10 +57,12 @@ public abstract class AbsFabActivity extends AbsBaseActivity { if (accentColor == Color.WHITE) { getFab().setColorNormal(accentColor); getFab().setColorPressed(ColorChooserDialog.shiftColorDown(accentColor)); + getFab().setColorRipple(ColorChooserDialog.shiftColorUp(accentColor)); getFab().getDrawable().setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_IN); } else { getFab().setColorNormal(accentColor); getFab().setColorPressed(ColorChooserDialog.shiftColorUp(accentColor)); + getFab().setColorRipple(ColorChooserDialog.shiftColorDown(accentColor)); getFab().getDrawable().clearColorFilter(); } @@ -122,6 +124,10 @@ public abstract class AbsFabActivity extends AbsBaseActivity { updateControllerState(); } + protected void updateControllerState() { + updateFabState(); + } + public Pair[] getSharedViewsWithFab(Pair[] sharedViews) { Pair[] sharedViewsWithFab; if (sharedViews != null) { @@ -134,10 +140,6 @@ public abstract class AbsFabActivity extends AbsBaseActivity { return sharedViewsWithFab; } - protected void updateControllerState() { - updateFabState(); - } - @Override protected void onDestroy() { super.onDestroy(); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/widget/PlayPauseDrawable.java b/app/src/main/java/com/kabouzeid/gramophone/ui/widget/PlayPauseDrawable.java index 1f478e4f..4c305b1b 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/widget/PlayPauseDrawable.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/widget/PlayPauseDrawable.java @@ -142,10 +142,6 @@ public class PlayPauseDrawable extends Drawable { return anim; } - public boolean isPlay() { - return isPlaySet; - } - private void setProgress(float progress) { this.progress = progress; invalidateSelf(); diff --git a/app/src/main/res/layout/activity_album_detail.xml b/app/src/main/res/layout/activity_album_detail.xml index 8d6657f8..fe15afad 100644 --- a/app/src/main/res/layout/activity_album_detail.xml +++ b/app/src/main/res/layout/activity_album_detail.xml @@ -64,12 +64,14 @@ android:id="@+id/statusBar" android:layout_width="match_parent" android:layout_height="@dimen/statusMargin" - android:background="@android:color/transparent" /> + android:background="@android:color/transparent" + tools:ignore="ContentDescription" /> + %1$s? ]]> + %1$s? + ]]> + %1$d songs? + ]]> + Delete Song + Delete Songs Rename Playlist Delete Playlist Add to Playlist New Playlist - Delete\u0020 - \u0020songs? "Warning: This operation can not be undone." Shuffle all @@ -108,6 +114,7 @@ This playlist is empty No playlists Playlist name + Song Download from LastFM