Fix favorite toggling

This commit is contained in:
Eugene Cheung 2017-09-09 12:06:41 -04:00
commit 1f37982536
No known key found for this signature in database
GPG key ID: E1FD745328866B0A
4 changed files with 57 additions and 40 deletions

View file

@ -6,6 +6,7 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.text.InputType;
import android.widget.Toast;
import com.afollestad.materialdialogs.MaterialDialog;
import com.kabouzeid.gramophone.R;
@ -19,6 +20,8 @@ import java.util.ArrayList;
*/
public class CreatePlaylistDialog extends DialogFragment {
private static final String SONGS = "songs";
@NonNull
public static CreatePlaylistDialog create() {
return create((Song) null);
@ -36,7 +39,7 @@ public class CreatePlaylistDialog extends DialogFragment {
public static CreatePlaylistDialog create(ArrayList<Song> songs) {
CreatePlaylistDialog dialog = new CreatePlaylistDialog();
Bundle args = new Bundle();
args.putParcelableArrayList("songs", songs);
args.putParcelableArrayList(SONGS, songs);
dialog.setArguments(args);
return dialog;
}
@ -53,20 +56,27 @@ public class CreatePlaylistDialog extends DialogFragment {
InputType.TYPE_TEXT_FLAG_CAP_WORDS)
.input(R.string.playlist_name_empty, 0, false, new MaterialDialog.InputCallback() {
@Override
public void onInput(MaterialDialog materialDialog, @NonNull CharSequence charSequence) {
public void onInput(@NonNull MaterialDialog materialDialog, @NonNull CharSequence charSequence) {
if (getActivity() == null)
return;
if (!charSequence.toString().trim().isEmpty()) {
final int playlistId = PlaylistsUtil.createPlaylist(getActivity(), charSequence.toString());
if (playlistId != -1 && getActivity() != null) {
//noinspection unchecked
ArrayList<Song> songs = getArguments().getParcelableArrayList("songs");
if (songs != null) {
PlaylistsUtil.addToPlaylist(getActivity(), songs, playlistId, true);
final String name = charSequence.toString().trim();
if (!name.isEmpty()) {
if (!PlaylistsUtil.doesPlaylistExist(getActivity(), name)) {
final int playlistId = PlaylistsUtil.createPlaylist(getActivity(), name);
if (getActivity() != null) {
//noinspection unchecked
ArrayList<Song> songs = getArguments().getParcelableArrayList(SONGS);
if (songs != null && !songs.isEmpty()) {
PlaylistsUtil.addToPlaylist(getActivity(), songs, playlistId, true);
}
}
} else {
Toast.makeText(getActivity(), getActivity().getResources().getString(
R.string.playlist_exists, name), Toast.LENGTH_SHORT).show();
}
}
}
}).build();
})
.build();
}
}

View file

@ -15,11 +15,13 @@ import com.kabouzeid.gramophone.util.PlaylistsUtil;
*/
public class RenamePlaylistDialog extends DialogFragment {
private static final String PLAYLIST_ID = "playlist_id";
@NonNull
public static RenamePlaylistDialog create(long playlistId) {
RenamePlaylistDialog dialog = new RenamePlaylistDialog();
Bundle args = new Bundle();
args.putLong("playlist_id", playlistId);
args.putLong(PLAYLIST_ID, playlistId);
dialog.setArguments(args);
return dialog;
}
@ -27,7 +29,7 @@ public class RenamePlaylistDialog extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
long playlistId = getArguments().getLong("playlist_id");
long playlistId = getArguments().getLong(PLAYLIST_ID);
return new MaterialDialog.Builder(getActivity())
.title(R.string.rename_playlist_title)
.positiveText(R.string.rename_action)
@ -38,10 +40,11 @@ public class RenamePlaylistDialog extends DialogFragment {
.input(getString(R.string.playlist_name_empty), PlaylistsUtil.getNameForPlaylist(getActivity(), playlistId), false,
new MaterialDialog.InputCallback() {
@Override
public void onInput(MaterialDialog materialDialog, @NonNull CharSequence charSequence) {
if (!charSequence.toString().trim().equals("")) {
long playlistId = getArguments().getLong("playlist_id");
PlaylistsUtil.renamePlaylist(getActivity(), playlistId, charSequence.toString());
public void onInput(@NonNull MaterialDialog materialDialog, @NonNull CharSequence charSequence) {
final String name = charSequence.toString().trim();
if (!name.isEmpty()) {
long playlistId = getArguments().getLong(PLAYLIST_ID);
PlaylistsUtil.renamePlaylist(getActivity(), playlistId, name);
}
}
})