From ec7e2d1638ec2742b3ce4598150a79acf7b0e632 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Sun, 27 Apr 2014 15:34:34 -0700 Subject: Fix issues with genre lists --- res/layout/grid_view.xml | 3 +- .../dsub/fragments/SelectDirectoryFragment.java | 42 ++++++++++++---------- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/res/layout/grid_view.xml b/res/layout/grid_view.xml index e2bcd49f..17b2f8aa 100644 --- a/res/layout/grid_view.xml +++ b/res/layout/grid_view.xml @@ -2,7 +2,8 @@ = 0); + } + }); - @Override - public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { - int topRowVerticalPosition = (entryList.getChildCount() == 0) ? 0 : entryList.getChildAt(0).getTop(); - refreshLayout.setEnabled(topRowVerticalPosition >= 0); - } - }); + if(albumListType == null || "starred".equals(albumListType)) { + albumList = (GridView) inflater.inflate(R.layout.unscrollable_grid_view, entryList, false); + entryList.addHeaderView(albumList); } else { ViewGroup rootGroup = (ViewGroup) rootView.findViewById(R.id.select_album_layout); albumList = (GridView) inflater.inflate(R.layout.grid_view, rootGroup, false); + rootGroup.removeView(entryList); rootGroup.addView(albumList); albumList.setOnScrollListener(new AbsListView.OnScrollListener() { @@ -183,11 +185,6 @@ public class SelectDirectoryFragment extends SubsonicFragment implements Adapter replaceFragment(fragment, true); } }); - if(albumListType == null || "starred".equals(albumListType)) { - entryList.addHeaderView(albumList); - } else { - entryList.setVisibility(View.GONE); - } emptyView = rootView.findViewById(R.id.select_album_empty); @@ -602,7 +599,7 @@ public class SelectDirectoryFragment extends SubsonicFragment implements Adapter SelectDirectoryFragment.this.albumListType = "genres-songs"; result = service.getSongsByGenre(albumListExtra, size, 0, context, this); } - } else if("genres".equals(albumListType)) { + } else if("genres".equals(albumListType) || "genres-songs".equals(albumListType)) { result = service.getSongsByGenre(albumListExtra, size, 0, context, this); } else { result = service.getAlbumList(albumListType, size, 0, context, this); @@ -664,7 +661,16 @@ public class SelectDirectoryFragment extends SubsonicFragment implements Adapter emptyView.setVisibility((entries.isEmpty() && albums.isEmpty()) ? View.VISIBLE : View.GONE); entryAdapter = new EntryAdapter(context, getImageLoader(), entries, (podcastId == null)); entryList.setAdapter(entryAdapter); - if(albumListType == null || "starred".equals(albumListType)) { + if("genres-songs".equals(albumListType)) { + ViewGroup rootGroup = (ViewGroup) rootView.findViewById(R.id.select_album_layout); + if(rootGroup.findViewById(R.id.gridview) != null) { + rootGroup.removeView(albumList); + rootGroup.addView(entryList); + } + + entryList.setAdapter(new AlbumListAdapter(context, entryAdapter, albumListType, albumListExtra, albumListSize)); + } + else if(albumListType == null || "starred".equals(albumListType)) { albumList.setAdapter(new AlbumGridAdapter(context, getImageLoader(), albums)); } else { albumList.setAdapter(new AlbumListAdapter(context, new AlbumGridAdapter(context, getImageLoader(), albums), albumListType, albumListExtra, albumListSize)); -- cgit v1.2.3