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
This commit is contained in:
Aidan Follestad 2015-04-16 20:49:09 -05:00
commit f7c91839ba
12 changed files with 96 additions and 81 deletions

View file

@ -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();
}

View file

@ -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

View file

@ -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();
}
}

View file

@ -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<Song> list = new ArrayList<>();
list.add(song);
return create(list);
}
public static DeleteSongsDialog create(ArrayList<Song> 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<Song> songs = (ArrayList<Song>) 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<Song> songs = (ArrayList<Song>) getArguments().getSerializable("songs");
MusicUtil.deleteTracks(getActivity(), songs);
}
}).build();
}
}

View file

@ -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;
}
}

View file

@ -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();

View file

@ -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<Song> tmpList = new ArrayList<>();
tmpList.add(song);
return getDialog(context, tmpList);
}
public static MaterialDialog getDialog(final Context context, final List<Song> 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();
}
}

View file

@ -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");

View file

@ -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();

View file

@ -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();

View file

@ -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" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
style="@style/Toolbar"
android:background="@android:color/transparent" />
</LinearLayout>
<com.melnykov.fab.FloatingActionButton

View file

@ -67,12 +67,18 @@
<string name="delete_playlist_x"><![CDATA[
Do you want to delete the playlist <b>%1$s</b>?
]]></string>
<string name="delete_song_x"><![CDATA[
Do you want to delete the song <b>%1$s</b>?
]]></string>
<string name="delete_x_songs"><![CDATA[
Do you want to delete <b>%1$d</b> songs?
]]></string>
<string name="delete_song_title">Delete Song</string>
<string name="delete_songs_title">Delete Songs</string>
<string name="rename_playlist_title">Rename Playlist</string>
<string name="delete_playlist_title">Delete Playlist</string>
<string name="add_playlist_title">Add to Playlist</string>
<string name="new_playlist_title">New Playlist</string>
<string name="delete_songs_1">Delete\u0020</string>
<string name="delete_songs_2">\u0020songs?</string>
<string name="delete_warning">"Warning: This operation can not be undone."</string>
<string name="shuffle_all">Shuffle all</string>
@ -108,6 +114,7 @@
<string name="playlist_empty_text">This playlist is empty</string>
<string name="no_playlists">No playlists</string>
<string name="playlist_name">Playlist name</string>
<string name="song">Song</string>
<string-array name="update_albumcover_options">
<item>Download from LastFM</item>