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