aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-05-26 18:04:35 -0700
committerScott Jackson <daneren2005@gmail.com>2015-05-26 18:04:35 -0700
commit7606a374f95c079c2e88426c177515e05fda1e2b (patch)
tree6892e02bd7bbb0dcd0e4eee282c4ea5a31480984 /app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java
parent117c246d7e619ab9a3c0fb36fb152b8ad8bf9afe (diff)
downloaddsub-7606a374f95c079c2e88426c177515e05fda1e2b.tar.gz
dsub-7606a374f95c079c2e88426c177515e05fda1e2b.tar.bz2
dsub-7606a374f95c079c2e88426c177515e05fda1e2b.zip
#479 Separate personal from shared playlists
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java51
1 files changed, 37 insertions, 14 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java
index 3d7e664f..8939360c 100644
--- a/app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java
+++ b/app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java
@@ -2,18 +2,19 @@ package github.daneren2005.dsub.fragments;
import android.app.AlertDialog;
import android.content.DialogInterface;
+import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
+import android.support.v7.widget.RecyclerView;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.EditText;
import github.daneren2005.dsub.R;
+import github.daneren2005.dsub.adapter.SectionAdapter;
import github.daneren2005.dsub.domain.MusicDirectory;
import github.daneren2005.dsub.domain.Playlist;
import github.daneren2005.dsub.domain.ServerInfo;
@@ -31,9 +32,11 @@ import github.daneren2005.dsub.util.UserUtil;
import github.daneren2005.dsub.util.Util;
import github.daneren2005.dsub.adapter.PlaylistAdapter;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
-public class SelectPlaylistFragment extends SelectListFragment<Playlist> {
+public class SelectPlaylistFragment extends SelectRecyclerFragment<Playlist> implements SectionAdapter.OnItemClickedListener<Playlist> {
private static final String TAG = SelectPlaylistFragment.class.getSimpleName();
@Override
@@ -47,8 +50,7 @@ public class SelectPlaylistFragment extends SelectListFragment<Playlist> {
else {
inflater.inflate(R.menu.select_playlist_context, menu);
- AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
- Playlist playlist = (Playlist) listView.getItemAtPosition(info.position);
+ Playlist playlist = adapter.getContextItem();
if(SyncUtil.isSyncedPlaylist(context, playlist.getId())) {
menu.removeItem(R.id.playlist_menu_sync);
} else {
@@ -71,9 +73,8 @@ public class SelectPlaylistFragment extends SelectListFragment<Playlist> {
if(menuItem.getGroupId() != getSupportTag()) {
return false;
}
-
- AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuItem.getMenuInfo();
- Playlist playlist = (Playlist) listView.getItemAtPosition(info.position);
+
+ Playlist playlist = adapter.getContextItem();
SubsonicFragment fragment;
Bundle args;
@@ -130,8 +131,31 @@ public class SelectPlaylistFragment extends SelectListFragment<Playlist> {
}
@Override
- public ArrayAdapter getAdapter(List<Playlist> playlists) {
- return new PlaylistAdapter(context, playlists);
+ public SectionAdapter<Playlist> getAdapter(List<Playlist> playlists) {
+ List<Playlist> mine = new ArrayList<>();
+ List<Playlist> shared = new ArrayList<>();
+
+ String currentUsername = UserUtil.getCurrentUsername(context);
+ for(Playlist playlist: playlists) {
+ if(playlist.getOwner() == null || playlist.getOwner().equals(currentUsername)) {
+ mine.add(playlist);
+ } else {
+ shared.add(playlist);
+ }
+ }
+
+ if(shared.isEmpty()) {
+ return new PlaylistAdapter(context, playlists, this);
+ } else {
+ Resources res = context.getResources();
+ List<String> headers = Arrays.asList(res.getString(R.string.playlist_mine), res.getString(R.string.playlist_shared));
+
+ List<List<Playlist>> sections = new ArrayList<>();
+ sections.add(mine);
+ sections.add(shared);
+
+ return new PlaylistAdapter(context, headers, sections, this);
+ }
}
@Override
@@ -149,9 +173,7 @@ public class SelectPlaylistFragment extends SelectListFragment<Playlist> {
}
@Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- Playlist playlist = (Playlist) parent.getItemAtPosition(position);
-
+ public void onItemClicked(Playlist playlist) {
SubsonicFragment fragment = new SelectDirectoryFragment();
Bundle args = new Bundle();
args.putString(Constants.INTENT_EXTRA_NAME_PLAYLIST_ID, playlist.getId());
@@ -179,7 +201,8 @@ public class SelectPlaylistFragment extends SelectListFragment<Playlist> {
@Override
protected void done(Void result) {
- adapter.remove(playlist);
+ // TODO: Redo
+ // adapter.remove(playlist);
adapter.notifyDataSetChanged();
Util.toast(context, context.getResources().getString(R.string.menu_deleted_playlist, playlist.getName()));
}