Making great progress with the "view as" option to toggle between list and grid mode. Currently only implemented in the album fragment. To add the functionality to other fragments just extend the AbsMainActivityRecyclerViewLayoutModeFragment class and implement its abstract methods (class name should be changed to something shorter soon). In future the artist and song fragments should extend that class.

This commit is contained in:
Karim Abou Zeid 2015-07-15 03:40:47 +02:00
commit 294f3fc5d0
14 changed files with 282 additions and 179 deletions

View file

@ -52,11 +52,12 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
protected boolean usePalette = false;
public AlbumAdapter(@NonNull AppCompatActivity activity, ArrayList<Album> dataSet, @LayoutRes int itemLayoutRes, @Nullable CabHolder cabHolder) {
public AlbumAdapter(@NonNull AppCompatActivity activity, ArrayList<Album> dataSet, @LayoutRes int itemLayoutRes, boolean usePalette, @Nullable CabHolder cabHolder) {
super(activity, cabHolder, R.menu.menu_media_selection);
this.activity = activity;
this.dataSet = dataSet;
this.itemLayoutRes = itemLayoutRes;
this.usePalette = usePalette;
setHasStableIds(true);
}

View file

@ -19,7 +19,7 @@ public class HorizontalAlbumAdapter extends AlbumAdapter {
public static final String TAG = AlbumAdapter.class.getSimpleName();
public HorizontalAlbumAdapter(@NonNull AppCompatActivity activity, ArrayList<Album> dataSet, @Nullable CabHolder cabHolder) {
super(activity, dataSet, HorizontalAdapterHelper.LAYOUT_RES, cabHolder);
super(activity, dataSet, HorizontalAdapterHelper.LAYOUT_RES, false, cabHolder);
usePalette = false;
}

View file

@ -16,6 +16,7 @@ import android.support.design.widget.AppBarLayout;
import android.support.design.widget.AppBarLayout.OnOffsetChangedListener;
import android.support.design.widget.NavigationView;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.util.Pair;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
@ -49,11 +50,14 @@ import com.kabouzeid.gramophone.loader.SongLoader;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.AbsMainActivityFragment;
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.AbsMainActivityRecyclerViewLayoutModeFragment;
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.AlbumViewFragment;
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.ArtistViewFragment;
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.PlaylistViewFragment;
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.SongViewFragment;
import com.kabouzeid.gramophone.util.MusicUtil;
import com.kabouzeid.gramophone.util.NavigationUtil;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import com.kabouzeid.gramophone.util.Util;
import com.kabouzeid.gramophone.util.ViewUtil;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
@ -300,7 +304,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
try {
super.enableViews();
toolbar.setEnabled(true);
((AbsMainActivityFragment) pagerAdapter.getFragment(pager.getCurrentItem())).enableViews();
((AbsMainActivityFragment) getCurrentFragment()).enableViews();
} catch (NullPointerException ignored) {
}
}
@ -309,7 +313,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
public void disableViews() {
try {
super.disableViews();
((AbsMainActivityFragment) pagerAdapter.getFragment(pager.getCurrentItem())).disableViews();
((AbsMainActivityFragment) getCurrentFragment()).disableViews();
} catch (NullPointerException ignored) {
}
}
@ -336,11 +340,15 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
@Override
public boolean onCreateOptionsMenu(@NonNull Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
if (isPlaylistPage()) {
getMenuInflater().inflate(R.menu.menu_playlists, menu);
menu.add(0, R.id.action_new_playlist, 0, R.string.new_playlist_title);
}
Fragment currentFragment = getCurrentFragment();
if (currentFragment instanceof AbsMainActivityRecyclerViewLayoutModeFragment) {
setUpLayoutModeMenu((AbsMainActivityRecyclerViewLayoutModeFragment) currentFragment, menu);
} else {
getMenuInflater().inflate(R.menu.menu_main, menu);
setUpGridMenu(menu);
menu.removeItem(R.id.action_view_as);
}
restoreActionBar();
return true;
@ -360,7 +368,11 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
ViewUtil.invalidateToolbarPopupMenuTint(toolbar);
if (handleGridSize(item)) return true;
Fragment currentFragment = getCurrentFragment();
if (currentFragment instanceof AbsMainActivityRecyclerViewLayoutModeFragment) {
if (handleLayoutModeMenuItem((AbsMainActivityRecyclerViewLayoutModeFragment) currentFragment, item))
return true;
}
int id = item.getItemId();
switch (id) {
@ -389,63 +401,45 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
return super.onOptionsItemSelected(item);
}
private void setUpGridMenu(@NonNull Menu menu) {
boolean isPortrait = Util.isInPortraitMode(this);
int columns = isPortrait ? PreferenceUtil.getInstance(this).getAlbumGridColumns() : PreferenceUtil.getInstance(this).getAlbumGridColumnsLand();
String title = isPortrait ? getResources().getString(R.string.action_view_as) : getResources().getString(R.string.action_view_as_land);
private void setUpLayoutModeMenu(@NonNull AbsMainActivityRecyclerViewLayoutModeFragment fragment, @NonNull Menu menu) {
SubMenu layoutModeMenu = menu.findItem(R.id.action_view_as).getSubMenu();
MenuItem gridSizeItem = menu.findItem(R.id.action_view_as);
gridSizeItem.setTitle(title);
switch (fragment.getLayoutMode()) {
case PreferenceUtil.LAYOUT_MODE_LIST:
layoutModeMenu.findItem(R.id.action_layout_mode_list).setChecked(true);
layoutModeMenu.findItem(R.id.action_colored_footers).setEnabled(false);
break;
case PreferenceUtil.LAYOUT_MODE_GRID:
layoutModeMenu.findItem(R.id.action_layout_mode_grid).setChecked(true);
layoutModeMenu.findItem(R.id.action_colored_footers).setEnabled(true);
break;
}
SubMenu gridSizeMenu = gridSizeItem.getSubMenu();
gridSizeMenu.getItem(columns - 1).setChecked(true);
layoutModeMenu.findItem(R.id.action_colored_footers).setChecked(fragment.loadUsePalette());
}
private boolean handleGridSize(@NonNull MenuItem item) {
int size = getGridSize(item);
if (size > 0) {
item.setChecked(true);
if (isAlbumPage()) {
getAlbumFragment().setColumns(size);
if (Util.isInPortraitMode(this)) {
PreferenceUtil.getInstance(this).setAlbumGridColumns(size);
} else {
PreferenceUtil.getInstance(this).setAlbumGridColumnsLand(size);
}
}
private boolean handleLayoutModeMenuItem(AbsMainActivityRecyclerViewLayoutModeFragment fragment, @NonNull MenuItem item) {
if (item.getItemId() == R.id.action_colored_footers) {
item.setChecked(!item.isChecked());
fragment.setUsePaletteAndSaveValue(item.isChecked());
return true;
} else {
switch (item.getItemId()) {
case R.id.action_layout_mode_list:
item.setChecked(true);
fragment.setLayoutModeAndSaveValue(PreferenceUtil.LAYOUT_MODE_LIST);
toolbar.getMenu().findItem(R.id.action_colored_footers).setEnabled(false);
return true;
case R.id.action_layout_mode_grid:
item.setChecked(true);
fragment.setLayoutModeAndSaveValue(PreferenceUtil.LAYOUT_MODE_GRID);
toolbar.getMenu().findItem(R.id.action_colored_footers).setEnabled(true);
return true;
}
}
return false;
}
private int getGridSize(MenuItem item) {
int size = -1;
switch (item.getItemId()) {
case R.id.gridSizeOne:
size = 1;
break;
case R.id.gridSizeTwo:
size = 2;
break;
case R.id.gridSizeThree:
size = 3;
break;
case R.id.gridSizeFour:
size = 4;
break;
case R.id.gridSizeFive:
size = 5;
break;
case R.id.gridSizeSix:
size = 6;
break;
}
return size;
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
drawerToggle.onConfigurationChanged(newConfig);
@ -526,13 +520,17 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
return id;
}
// private boolean isArtistPage() {
// return pager.getCurrentItem() == PagerAdapter.MusicFragments.ARTIST.ordinal();
// }
//
// public ArtistViewFragment getArtistFragment() {
// return (ArtistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ARTIST.ordinal());
// }
public Fragment getCurrentFragment() {
return pagerAdapter.getFragment(pager.getCurrentItem());
}
private boolean isArtistPage() {
return pager.getCurrentItem() == PagerAdapter.MusicFragments.ARTIST.ordinal();
}
public ArtistViewFragment getArtistFragment() {
return (ArtistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ARTIST.ordinal());
}
private boolean isAlbumPage() {
return pager.getCurrentItem() == PagerAdapter.MusicFragments.ALBUM.ordinal();
@ -543,21 +541,21 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
return (AlbumViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ALBUM.ordinal());
}
// private boolean isSongPage() {
// return pager.getCurrentItem() == PagerAdapter.MusicFragments.SONG.ordinal();
// }
//
// public SongViewFragment getSongFragment() {
// return (SongViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.SONG.ordinal());
// }
private boolean isSongPage() {
return pager.getCurrentItem() == PagerAdapter.MusicFragments.SONG.ordinal();
}
public SongViewFragment getSongFragment() {
return (SongViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.SONG.ordinal());
}
private boolean isPlaylistPage() {
return pager.getCurrentItem() == PagerAdapter.MusicFragments.PLAYLIST.ordinal();
}
// public PlaylistViewFragment getPlaylistFragment() {
// return (PlaylistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.PLAYLIST.ordinal());
// }
public PlaylistViewFragment getPlaylistFragment() {
return (PlaylistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.PLAYLIST.ordinal());
}
@Override
public boolean dispatchKeyEvent(@NonNull KeyEvent event) {

View file

@ -66,6 +66,11 @@ public abstract class AbsMainActivityRecyclerViewFragment<A extends RecyclerView
}
private void setUpRecyclerView() {
invalidateLayoutManager();
invalidateAdapter();
}
protected void invalidateAdapter() {
adapter = createAdapter();
adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
@ -74,13 +79,14 @@ public abstract class AbsMainActivityRecyclerViewFragment<A extends RecyclerView
showEmptyMessageIfEmpty();
}
});
layoutManager = createLayoutManager();
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
}
protected void invalidateLayoutManager() {
layoutManager = createLayoutManager();
recyclerView.setLayoutManager(layoutManager);
}
protected A getAdapter() {
return adapter;
}
@ -159,4 +165,12 @@ public abstract class AbsMainActivityRecyclerViewFragment<A extends RecyclerView
getMainActivity().removeMusicStateListenerListener(this);
ButterKnife.reset(this);
}
protected int getDefaultGridColumnNumber() {
return getActivity().getResources().getInteger(R.integer.grid_num_columns);
}
protected int getDefaultListColumnNumber() {
return getActivity().getResources().getInteger(R.integer.list_num_columns);
}
}

View file

@ -0,0 +1,59 @@
package com.kabouzeid.gramophone.ui.fragments.mainactivityfragments;
import android.support.v7.widget.RecyclerView;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.util.PreferenceUtil;
/**
* @author Karim Abou Zeid (kabouzeid)
*/
public abstract class AbsMainActivityRecyclerViewLayoutModeFragment<A extends RecyclerView.Adapter, LM extends RecyclerView.LayoutManager> extends AbsMainActivityRecyclerViewFragment<A, LM> {
public static final int NO_LAYOUT_MODE = -1;
private int layoutMode = NO_LAYOUT_MODE;
public int getLayoutMode() {
if (layoutMode == NO_LAYOUT_MODE) {
layoutMode = loadLayoutMode();
}
return layoutMode;
}
protected int getItemLayout() {
switch (getLayoutMode()) {
case PreferenceUtil.LAYOUT_MODE_LIST:
return R.layout.item_list;
case PreferenceUtil.LAYOUT_MODE_GRID:
return R.layout.item_grid;
default:
return R.layout.item_list;
}
}
protected int getColumnNumber() {
switch (getLayoutMode()) {
case PreferenceUtil.LAYOUT_MODE_LIST:
return getDefaultListColumnNumber();
case PreferenceUtil.LAYOUT_MODE_GRID:
return getDefaultGridColumnNumber();
default:
return R.layout.item_list;
}
}
public void setLayoutModeAndSaveValue(int layoutMode) {
this.layoutMode = layoutMode;
saveLayoutMode(layoutMode);
invalidateLayoutManager();
invalidateAdapter();
}
protected abstract int loadLayoutMode();
protected abstract void saveLayoutMode(int layoutMode);
public abstract void setUsePaletteAndSaveValue(boolean usePalette);
public abstract boolean loadUsePalette();
}

View file

@ -7,18 +7,16 @@ import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.album.AlbumAdapter;
import com.kabouzeid.gramophone.loader.AlbumLoader;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import com.kabouzeid.gramophone.util.Util;
/**
* @author Karim Abou Zeid (kabouzeid)
*/
public class AlbumViewFragment extends AbsMainActivityRecyclerViewFragment<AlbumAdapter, GridLayoutManager> {
public class AlbumViewFragment extends AbsMainActivityRecyclerViewLayoutModeFragment<AlbumAdapter, GridLayoutManager> {
public static final String TAG = AlbumViewFragment.class.getSimpleName();
@Override
protected GridLayoutManager createLayoutManager() {
int columns = Util.isInPortraitMode(getActivity()) ? PreferenceUtil.getInstance(getActivity()).getAlbumGridColumns() : PreferenceUtil.getInstance(getActivity()).getAlbumGridColumnsLand();
return new GridLayoutManager(getActivity(), columns);
return new GridLayoutManager(getActivity(), getColumnNumber());
}
@NonNull
@ -27,7 +25,8 @@ public class AlbumViewFragment extends AbsMainActivityRecyclerViewFragment<Album
return new AlbumAdapter(
getMainActivity(),
AlbumLoader.getAllAlbums(getActivity()),
R.layout.item_grid,
getItemLayout(),
PreferenceUtil.getInstance(getActivity()).albumColoredFooters(),
getMainActivity());
}
@ -36,11 +35,25 @@ public class AlbumViewFragment extends AbsMainActivityRecyclerViewFragment<Album
return R.string.no_albums;
}
public void setColumns(int columns) {
getLayoutManager().setSpanCount(columns);
getLayoutManager().requestLayout();
// required to animate the column size change
getAdapter().notifyDataSetChanged();
@Override
public void setUsePaletteAndSaveValue(boolean usePalette) {
getAdapter().usePalette(usePalette);
PreferenceUtil.getInstance(getActivity()).setAlbumColoredFooters(usePalette);
}
@Override
public boolean loadUsePalette() {
return PreferenceUtil.getInstance(getActivity()).albumColoredFooters();
}
@Override
protected int loadLayoutMode() {
return PreferenceUtil.getInstance(getActivity()).getAlbumLayoutMode();
}
@Override
protected void saveLayoutMode(int layoutMode) {
PreferenceUtil.getInstance(getActivity()).setAlbumLayoutMode(layoutMode);
}
@Override

View file

@ -14,38 +14,50 @@ import java.util.HashSet;
import java.util.Set;
public final class PreferenceUtil {
public static final int DEFAULT_PAGE = 1;
public static final String GENERAL_THEME = "general_theme";
public static final String DEFAULT_START_PAGE = "default_start_page";
public static final String LAST_START_PAGE = "last_start_page";
public static final String ARTIST_SORT_ORDER = "artist_sort_order";
public static final String ARTIST_SONG_SORT_ORDER = "artist_song_sort_order";
public static final String ARTIST_ALBUM_SORT_ORDER = "artist_album_sort_order";
public static final String ALBUM_SORT_ORDER = "album_sort_order";
public static final String ALBUM_SONG_SORT_ORDER = "album_song_sort_order";
public static final String SONG_SORT_ORDER = "song_sort_order";
public static final String COLORED_NAVIGATION_BAR = "colored_navigation_bar";
public static final String COLORED_NAVIGATION_BAR_ALBUM = "colored_navigation_bar_album";
public static final String COLORED_NAVIGATION_BAR_ARTIST = "colored_navigation_bar_artist";
public static final String COLORED_NAVIGATION_BAR_CURRENT_PLAYING = "colored_navigation_bar_current_playing";
public static final String COLORED_NAVIGATION_BAR_PLAYIST = "colored_navigation_bar_playlist";
public static final String COLORED_NAVIGATION_BAR_PLAYLIST = "colored_navigation_bar_playlist";
public static final String COLORED_NAVIGATION_BAR_TAG_EDITOR = "colored_navigation_bar_tag_editor";
public static final String COLORED_NAVIGATION_BAR_OTHER_SCREENS = "colored_navigation_bar_other_screens";
public static final String ALBUM_GRID_COLUMNS = "album_grid_columns";
public static final String ALBUM_GRID_COLUMNS_LAND = "album_grid_columns_land";
public static final String ALBUM_LAYOUT_MODE = "album_layout_mode";
public static final String ALBUM_COLORED_FOOTERS = "album_colored_footers";
public static final String SONG_LAYOUT_MODE = "song_layout_mode";
public static final String SONG_COLORED_FOOTERS = "song_colored_footers";
public static final String ARTIST_LAYOUT_MODE = "artist_layout_mode";
public static final String ARTIST_COLORED_FOOTERS = "artist_colored_footers";
public static final String OPAQUE_TOOLBAR_NOW_PLAYING = "opaque_toolbar_now_playing";
public static final String OPAQUE_STATUSBAR_NOW_PLAYING = "opaque_statusbar_now_playing";
public static final String FORCE_SQUARE_ALBUM_ART = "force_square_album_art";
public static final String LARGER_TITLE_BOX_NOW_PLAYING = "larger_title_box_now_playing";
public static final String ALTERNATIVE_PROGRESS_SLIDER_NOW_PLAYING = "alternative_progress_slider_now_playing";
public static final String PLAYBACK_CONTROLLER_CARD_NOW_PLAYING = "playback_controller_card_now_playing";
public static final String COLORED_NOTIFICATION = "colored_notification";
public static final String GAPLESS_PLAYBACK = "gapless_playback";
public static final String LAST_ADDED_CUTOFF_TIMESTAMP = "last_added_cutoff_timestamp";
public static final String ALBUM_ART_ON_LOCKSCREEN = "album_art_on_lockscreen";
public static final String LAST_SLEEP_TIMER_VALUE = "last_sleep_timer_value";
public static final String NEXT_SLEEP_TIMER_ELAPSED_REALTIME = "next_sleep_timer_elapsed_real_time";
public static final String IGNORE_MEDIA_STORE_ARTWORK = "ignore_media_store_artwork";
private static PreferenceUtil sInstance;
@ -125,6 +137,8 @@ public final class PreferenceUtil {
editor.apply();
}
public static final int DEFAULT_PAGE = 1;
public final int getLastStartPage() {
return mPreferences.getInt(LAST_START_PAGE, DEFAULT_PAGE);
}
@ -146,7 +160,7 @@ public final class PreferenceUtil {
}
public final boolean coloredNavigationBarPlaylist() {
return coloredNavigationBarFor(COLORED_NAVIGATION_BAR_PLAYIST);
return coloredNavigationBarFor(COLORED_NAVIGATION_BAR_PLAYLIST);
}
public final boolean coloredNavigationBarTagEditor() {
@ -163,7 +177,7 @@ public final class PreferenceUtil {
defaultVals.add(COLORED_NAVIGATION_BAR_ALBUM);
defaultVals.add(COLORED_NAVIGATION_BAR_ARTIST);
defaultVals.add(COLORED_NAVIGATION_BAR_CURRENT_PLAYING);
defaultVals.add(COLORED_NAVIGATION_BAR_PLAYIST);
defaultVals.add(COLORED_NAVIGATION_BAR_PLAYLIST);
defaultVals.add(COLORED_NAVIGATION_BAR_TAG_EDITOR);
defaultVals.add(COLORED_NAVIGATION_BAR_OTHER_SCREENS);
@ -247,26 +261,6 @@ public final class PreferenceUtil {
return mPreferences.getString(SONG_SORT_ORDER, SortOrder.SongSortOrder.SONG_A_Z);
}
public void setAlbumGridColumns(final int value) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putInt(ALBUM_GRID_COLUMNS, value);
editor.apply();
}
public final int getAlbumGridColumns() {
return mPreferences.getInt(ALBUM_GRID_COLUMNS, 2);
}
public void setAlbumGridColumnsLand(final int value) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putInt(ALBUM_GRID_COLUMNS_LAND, value);
editor.apply();
}
public final int getAlbumGridColumnsLand() {
return mPreferences.getInt(ALBUM_GRID_COLUMNS_LAND, 3);
}
public long getLastAddedCutOffTimestamp() {
return mPreferences.getLong(LAST_ADDED_CUTOFF_TIMESTAMP, 0L);
}
@ -297,4 +291,67 @@ public final class PreferenceUtil {
editor.putLong(NEXT_SLEEP_TIMER_ELAPSED_REALTIME, value);
editor.apply();
}
public static final int LAYOUT_MODE_LIST = 0;
public static final int LAYOUT_MODE_GRID = 1;
public void setAlbumLayoutMode(final int value) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putInt(ALBUM_LAYOUT_MODE, value);
editor.apply();
}
public final int getAlbumLayoutMode() {
return mPreferences.getInt(ALBUM_LAYOUT_MODE, LAYOUT_MODE_GRID);
}
public void setSongLayoutMode(final int value) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putInt(SONG_LAYOUT_MODE, value);
editor.apply();
}
public final int getSongLayoutMode() {
return mPreferences.getInt(SONG_LAYOUT_MODE, LAYOUT_MODE_LIST);
}
public void setArtistLayoutMode(final int value) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putInt(ARTIST_LAYOUT_MODE, value);
editor.apply();
}
public final int getArtistLayoutMode() {
return mPreferences.getInt(ARTIST_LAYOUT_MODE, LAYOUT_MODE_GRID);
}
public void setAlbumColoredFooters(final boolean value) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putBoolean(ALBUM_COLORED_FOOTERS, value);
editor.apply();
}
public final boolean albumColoredFooters() {
return mPreferences.getBoolean(ALBUM_COLORED_FOOTERS, true);
}
public void setSongColoredFooters(final boolean value) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putBoolean(SONG_COLORED_FOOTERS, value);
editor.apply();
}
public final boolean songColoredFooters() {
return mPreferences.getBoolean(SONG_COLORED_FOOTERS, true);
}
public void setArtistColoredFooters(final boolean value) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putBoolean(ARTIST_COLORED_FOOTERS, value);
editor.apply();
}
public final boolean artistColoredFooters() {
return mPreferences.getBoolean(ARTIST_COLORED_FOOTERS, false);
}
}

View file

@ -3,12 +3,6 @@
xmlns:tools="http://schemas.android.com/tools"
tools:context=".DrawerActivity">
<item
android:id="@+id/action_now_playing"
android:icon="@drawable/ic_play_circle_fill_white_24dp"
android:title="@string/action_now_playing"
app:showAsAction="always" />
<item
android:id="@+id/action_search"
android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
@ -35,30 +29,18 @@
android:title="@string/action_view_as">
<menu>
<group
android:id="@+id/gridSizeGroup"
android:id="@+id/group_view_as"
android:checkableBehavior="single"
tools:ignore="HardcodedText">
<item
android:id="@+id/gridSizeOne"
android:title="1" />
android:id="@+id/action_layout_mode_list"
android:title="@string/list" />
<item
android:id="@+id/gridSizeTwo"
android:title="2" />
<item
android:id="@+id/gridSizeThree"
android:title="3" />
<item
android:id="@+id/gridSizeFour"
android:title="4" />
<item
android:id="@+id/gridSizeFive"
android:title="5" />
<item
android:id="@+id/gridSizeSix"
android:title="6" />
android:id="@+id/action_layout_mode_grid"
android:title="@string/grid" />
</group>
<item
android:id="@+id/colored_footers"
android:id="@+id/action_colored_footers"
android:checkable="true"
android:title="@string/colored_footers" />
</menu>

View file

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_now_playing"
android:icon="@drawable/ic_play_circle_fill_white_24dp"
android:title="@string/action_now_playing"
app:showAsAction="always" />
<item
android:id="@+id/action_search"
android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
android:title="@string/action_search"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_new_playlist"
android:title="@string/new_playlist_title"
app:showAsAction="never" />
<item
android:id="@+id/action_playing_queue"
android:title="@string/action_playing_queue"
app:showAsAction="never" />
<item
android:id="@+id/action_shuffle_all"
android:title="@string/action_shuffle_all"
app:showAsAction="never" />
<item
android:id="@+id/action_sleep_timer"
android:title="@string/action_sleep_timer"
app:showAsAction="never" />
<item
android:id="@+id/action_equalizer"
android:orderInCategory="99"
android:title="@string/equalizer"
app:showAsAction="never" />
</menu>

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="grid_num_columns">4</integer>
<integer name="list_num_columns">2</integer>
</resources>

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="grid_num_columns">6</integer>
<integer name="list_num_columns">3</integer>
</resources>

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="grid_num_columns">4</integer>
<integer name="list_num_columns">2</integer>
</resources>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="action_new_playlist" type="id" />
</resources>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="grid_num_columns">2</integer>
<integer name="list_num_columns">1</integer>
<integer name="font_textStyle_medium">1</integer>
</resources>