Reorganized some settings. Fix last tab.

This commit is contained in:
Karim Abou Zeid 2017-12-26 23:26:12 +01:00
commit 1c57bbf618
8 changed files with 40 additions and 62 deletions

View file

@ -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) -> {

View file

@ -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);
}

View file

@ -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) {

View file

@ -116,7 +116,7 @@
<string name="pref_header_now_playing_screen">Now playing</string>
<string name="pref_title_general_theme">General theme</string>
<string name="pref_header_audio">Audio</string>
<string name="pref_header_general">General</string>
<string name="pref_header_library">Library</string>
<string name="pref_header_images">Images</string>
<string name="pref_header_lockscreen">Lockscreen</string>
<string name="pref_header_playlists">Playlists</string>
@ -134,6 +134,7 @@
<string name="pref_title_audio_ducking">Reduce volume on focus loss</string>
<string name="pref_title_last_added_interval">Last added playlist interval</string>
<string name="pref_title_synchronized_lyrics_show">Show synchronized lyrics</string>
<string name="pref_title_remember_last_tab">Remember last tab</string>
<string name="no_equalizer">No equalizer found.</string>
<string name="no_audio_ID">"Play a song first, then try again."</string>
<string name="delete_action">Delete</string>
@ -167,6 +168,7 @@
<string name="pref_summary_colored_app_shortcuts">Colors the app shortcuts in the primary color.</string>
<string name="pref_summary_audio_ducking">Notifications, navigation etc.</string>
<string name="pref_summary_synchronized_lyrics_show">Currently only synchronized lyrics in LRC format are supported. Either embedded or as a separate file.</string>
<string name="pref_summary_remember_last_tab">Go to the last opened tab on launch</string>
<string name="could_not_download_album_cover">"Couldn\u2019t download a matching album cover."</string>
<string name="search_hint">Search your library…</string>
<string name="favorites">Favorites</string>

View file

@ -1,19 +1,4 @@
<resources>
<string-array name="pref_start_page_list_titles">
<item>@string/last_opened</item>
<item>@string/songs</item>
<item>@string/albums</item>
<item>@string/artists</item>
<item>@string/playlists</item>
</string-array>
<string-array name="pref_start_page_list_values">
<item>-1</item>
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
<string-array name="pref_general_theme_list_titles">
<item>@string/light_theme_name</item>

View file

@ -2,6 +2,15 @@
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceCategory android:title="@string/pref_header_colors">
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEListPreference
android:defaultValue="light"
android:entries="@array/pref_general_theme_list_titles"
android:entryValues="@array/pref_general_theme_list_values"
android:key="general_theme"
android:negativeButtonText="@null"
android:positiveButtonText="@null"
android:title="@string/pref_title_general_theme" />
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEColorPreference
android:key="primary_color"
android:persistent="false"

View file

@ -1,30 +0,0 @@
<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceCategory android:title="@string/pref_header_general">
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEListPreference
android:defaultValue="-1"
android:entries="@array/pref_start_page_list_titles"
android:entryValues="@array/pref_start_page_list_values"
android:key="default_start_page"
android:negativeButtonText="@null"
android:positiveButtonText="@null"
android:title="@string/pref_title_set_default_start_page" />
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEListPreference
android:defaultValue="light"
android:entries="@array/pref_general_theme_list_titles"
android:entryValues="@array/pref_general_theme_list_values"
android:key="general_theme"
android:negativeButtonText="@null"
android:positiveButtonText="@null"
android:title="@string/pref_title_general_theme" />
<com.kabouzeid.gramophone.preferences.LibraryPreference
android:key="library_categories"
android:summary="@string/pref_summary_library_categories"
android:title="@string/library_categories" />
</com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceCategory>
</android.support.v7.preference.PreferenceScreen>

View file

@ -0,0 +1,18 @@
<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceCategory android:title="@string/pref_header_library">
<com.kabouzeid.gramophone.preferences.LibraryPreference
android:key="library_categories"
android:summary="@string/pref_summary_library_categories"
android:title="@string/library_categories" />
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATESwitchPreference
android:defaultValue="true"
android:key="remember_last_tab"
android:summary="@string/pref_summary_remember_last_tab"
android:title="@string/pref_title_remember_last_tab" />
</com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceCategory>
</android.support.v7.preference.PreferenceScreen>