First snapshot (beta 0.9)
- playlists working (not all features added yet) - minor fixes and improvements
This commit is contained in:
parent
de15a34365
commit
11ee05ce64
30 changed files with 1055 additions and 126 deletions
|
|
@ -0,0 +1,49 @@
|
|||
package com.kabouzeid.gramophone.helper;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.loader.PlaylistLoader;
|
||||
import com.kabouzeid.gramophone.model.Playlist;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.util.PlaylistsUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by karim on 17.03.15.
|
||||
*/
|
||||
public class AddToPlaylistDialogHelper {
|
||||
public static MaterialDialog getDialog(final Context context, final Song song) {
|
||||
List<Song> tmpSong = new ArrayList<>();
|
||||
tmpSong.add(song);
|
||||
return getDialog(context, tmpSong);
|
||||
}
|
||||
|
||||
public static MaterialDialog getDialog(final Context context, final List<Song> songs) {
|
||||
final List<Playlist> playlists = PlaylistLoader.getAllPlaylists(context);
|
||||
CharSequence[] playlistNames = new CharSequence[playlists.size() + 1];
|
||||
playlistNames[0] = context.getResources().getString(R.string.action_new_playlist);
|
||||
for (int i = 1; i < playlistNames.length; i++) {
|
||||
playlistNames[i] = playlists.get(i-1).name;
|
||||
}
|
||||
return new MaterialDialog.Builder(context)
|
||||
.items(playlistNames)
|
||||
.itemsCallback(new MaterialDialog.ListCallback() {
|
||||
@Override
|
||||
public void onSelection(MaterialDialog materialDialog, View view, int i, CharSequence charSequence) {
|
||||
if (i == 0) {
|
||||
materialDialog.dismiss();
|
||||
CreatePlaylistDialogHelper.getDialog(context, songs).show();
|
||||
} else {
|
||||
materialDialog.dismiss();
|
||||
PlaylistsUtil.addToPlaylist(context, songs, playlists.get(i - 1).id);
|
||||
}
|
||||
}
|
||||
})
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
package com.kabouzeid.gramophone.helper;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.util.PlaylistsUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by karim on 17.03.15.
|
||||
*/
|
||||
public class CreatePlaylistDialogHelper {
|
||||
public static MaterialDialog getDialog(final Context context, final Song song) {
|
||||
List<Song> tmpSong = new ArrayList<>();
|
||||
tmpSong.add(song);
|
||||
return getDialog(context, tmpSong);
|
||||
}
|
||||
|
||||
public static MaterialDialog getDialog(final Context context, final List<Song> songs) {
|
||||
final EditText editText = new EditText(context);
|
||||
ViewGroup layout = (ViewGroup) LayoutInflater.from(context).inflate(R.layout.dialog_create_playlist, null);
|
||||
if (editText.getParent() != null) {((ViewGroup) editText.getParent()).removeView(editText);}
|
||||
layout.addView(editText, new LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
return new MaterialDialog.Builder(context)
|
||||
.title(context.getResources().getString(R.string.action_new_playlist))
|
||||
.customView(layout, false)
|
||||
.positiveText(context.getResources().getString(R.string.ok))
|
||||
.negativeText(context.getResources().getString(R.string.cancel))
|
||||
.callback(new MaterialDialog.ButtonCallback() {
|
||||
@Override
|
||||
public void onPositive(MaterialDialog dialog) {
|
||||
super.onPositive(dialog);
|
||||
final String playlistName = editText.getText().toString();
|
||||
if (!playlistName.trim().equals("")) {
|
||||
dialog.dismiss();
|
||||
final int playlistId = PlaylistsUtil.createPlaylist(context, playlistName);
|
||||
if (playlistId != -1) {
|
||||
if (songs != null) {
|
||||
PlaylistsUtil.addToPlaylist(context, songs, playlistId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNegative(MaterialDialog dialog) {
|
||||
super.onNegative(dialog);
|
||||
dialog.dismiss();
|
||||
}
|
||||
}
|
||||
)
|
||||
.build();
|
||||
}
|
||||
|
||||
public static MaterialDialog getDialog(final Context context) {
|
||||
return getDialog(context, (List<Song>) null);
|
||||
}
|
||||
}
|
||||
|
|
@ -8,6 +8,7 @@ import com.afollestad.materialdialogs.MaterialDialog;
|
|||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.PlayingQueueAdapter;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.util.PlaylistsUtil;
|
||||
import com.mobeta.android.dslv.DragSortListView;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -16,8 +17,8 @@ import java.util.List;
|
|||
* Created by karim on 24.01.15.
|
||||
*/
|
||||
public class PlayingQueueDialogHelper {
|
||||
public static MaterialDialog getDialog(Activity activity) {
|
||||
List<Song> playingQueue = MusicPlayerRemote.getPlayingQueue();
|
||||
public static MaterialDialog getDialog(final Activity activity) {
|
||||
final List<Song> playingQueue = MusicPlayerRemote.getPlayingQueue();
|
||||
if (playingQueue.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
|
@ -26,7 +27,7 @@ public class PlayingQueueDialogHelper {
|
|||
.title(activity.getResources().getString(R.string.label_current_playing_queue))
|
||||
.customView(R.layout.dialog_playlist, false)
|
||||
.positiveText(activity.getResources().getString(R.string.close))
|
||||
.negativeText(activity.getResources().getString(R.string.save_as_playlist))
|
||||
.neutralText(activity.getResources().getString(R.string.save_as_playlist))
|
||||
.callback(new MaterialDialog.ButtonCallback() {
|
||||
@Override
|
||||
public void onPositive(MaterialDialog dialog) {
|
||||
|
|
@ -35,8 +36,10 @@ public class PlayingQueueDialogHelper {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onNegative(MaterialDialog dialog) {
|
||||
public void onNeutral(MaterialDialog dialog) {
|
||||
super.onNegative(dialog);
|
||||
dialog.dismiss();
|
||||
AddToPlaylistDialogHelper.getDialog(activity, playingQueue).show();
|
||||
}
|
||||
})
|
||||
.build();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue