diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java index 8e2d9e6e..9e43e57b 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java @@ -151,7 +151,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia @Override public void onCreatePreferences(Bundle bundle, String s) { - addPreferencesFromResource(R.xml.pref_general); + addPreferencesFromResource(R.xml.pref_library); addPreferencesFromResource(R.xml.pref_colors); addPreferencesFromResource(R.xml.pref_notification); addPreferencesFromResource(R.xml.pref_now_playing_screen); @@ -190,13 +190,6 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia } private void invalidateSettings() { - final Preference defaultStartPage = findPreference("default_start_page"); - setSummary(defaultStartPage); - defaultStartPage.setOnPreferenceChangeListener((preference, o) -> { - setSummary(defaultStartPage, o); - return true; - }); - final Preference generalTheme = findPreference("general_theme"); setSummary(generalTheme); generalTheme.setOnPreferenceChangeListener((preference, o) -> { diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java index 5dbdbd7e..000948f5 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java @@ -101,7 +101,9 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde pagerAdapter.setCategoryInfos(PreferenceUtil.getInstance(getActivity()).getLibraryCategoryInfos()); pager.setOffscreenPageLimit(pagerAdapter.getCount() - 1); int position = pagerAdapter.getItemPosition(current); - pager.setCurrentItem(position > -1 ? position : 0); + if (position < 0) position = 0; + pager.setCurrentItem(position); + PreferenceUtil.getInstance(getContext()).setLastPage(position); // hide the tab bar with single tab tabs.setVisibility(pagerAdapter.getCount() == 1 ? View.GONE : View.VISIBLE); @@ -131,10 +133,9 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde tabs.setTabTextColors(normalColor, selectedColor); tabs.setSelectedTabIndicatorColor(ThemeStore.accentColor(getActivity())); - int startPosition = PreferenceUtil.getInstance(getActivity()).getDefaultStartPage(); - startPosition = startPosition == -1 ? PreferenceUtil.getInstance(getActivity()).getLastPage() : startPosition; - pager.setCurrentItem(startPosition); - PreferenceUtil.getInstance(getActivity()).setLastPage(startPosition); // just in case + if (PreferenceUtil.getInstance(getContext()).rememberLastTab()) { + pager.setCurrentItem(PreferenceUtil.getInstance(getContext()).getLastPage()); + } pager.addOnPageChangeListener(this); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java index 73b5c25a..b1d6c2c1 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java @@ -22,7 +22,7 @@ import java.util.ArrayList; public final class PreferenceUtil { public static final String GENERAL_THEME = "general_theme"; - public static final String DEFAULT_START_PAGE = "default_start_page"; + public static final String REMEMBER_LAST_TAB = "remember_last_tab"; public static final String LAST_PAGE = "last_start_page"; public static final String LAST_MUSIC_CHOOSER = "last_music_chooser"; public static final String NOW_PLAYING_SCREEN_ID = "now_playing_screen_id"; @@ -122,8 +122,8 @@ public final class PreferenceUtil { } } - public final int getDefaultStartPage() { - return Integer.parseInt(mPreferences.getString(DEFAULT_START_PAGE, "-1")); + public final boolean rememberLastTab() { + return mPreferences.getBoolean(REMEMBER_LAST_TAB, true); } public void setLastPage(final int value) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0fd77e6f..22aa9cdb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -116,7 +116,7 @@ Now playing General theme Audio - General + Library Images Lockscreen Playlists @@ -134,6 +134,7 @@ Reduce volume on focus loss Last added playlist interval Show synchronized lyrics + Remember last tab No equalizer found. "Play a song first, then try again." Delete @@ -167,6 +168,7 @@ Colors the app shortcuts in the primary color. Notifications, navigation etc. Currently only synchronized lyrics in LRC format are supported. Either embedded or as a separate file. + Go to the last opened tab on launch "Couldn\u2019t download a matching album cover." Search your library… Favorites diff --git a/app/src/main/res/values/strings_activity_settings.xml b/app/src/main/res/values/strings_activity_settings.xml index 2f35d635..986a09da 100644 --- a/app/src/main/res/values/strings_activity_settings.xml +++ b/app/src/main/res/values/strings_activity_settings.xml @@ -1,19 +1,4 @@ - - @string/last_opened - @string/songs - @string/albums - @string/artists - @string/playlists - - - - -1 - 0 - 1 - 2 - 3 - @string/light_theme_name diff --git a/app/src/main/res/xml/pref_colors.xml b/app/src/main/res/xml/pref_colors.xml index e7701f96..3a4358b2 100644 --- a/app/src/main/res/xml/pref_colors.xml +++ b/app/src/main/res/xml/pref_colors.xml @@ -2,6 +2,15 @@ + + - - - - - - - - - - - - diff --git a/app/src/main/res/xml/pref_library.xml b/app/src/main/res/xml/pref_library.xml new file mode 100644 index 00000000..fab9ac46 --- /dev/null +++ b/app/src/main/res/xml/pref_library.xml @@ -0,0 +1,18 @@ + + + + + + + + + + +