NewPipe/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java

105 lines
5.3 KiB
Java
Raw Normal View History

package org.schabi.newpipe.settings;
import android.os.Bundle;
2017-09-26 17:29:38 +02:00
import android.support.v7.preference.ListPreference;
import android.support.v7.preference.Preference;
import org.schabi.newpipe.R;
public class ContentSettingsFragment extends BasePreferenceFragment {
2017-09-28 15:36:15 +02:00
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
2017-09-28 15:36:15 +02:00
addPreferencesFromResource(R.xml.content_settings);
2017-09-26 17:29:38 +02:00
2017-09-28 15:36:15 +02:00
final ListPreference mainPageContentPref = (ListPreference) findPreference(getString(R.string.main_page_content_key));
mainPageContentPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
2017-09-26 17:29:38 +02:00
@Override
public boolean onPreferenceChange(Preference preference, Object newValueO) {
final String newValue = newValueO.toString();
2017-09-28 15:36:15 +02:00
final String mainPrefOldValue =
defaultPreferences.getString(getString(R.string.main_page_content_key), "blank_page");
final String mainPrefOldSummary = getMainPagePrefSummery(mainPrefOldValue, mainPageContentPref);
2017-09-26 17:29:38 +02:00
if(newValue.equals(getString(R.string.kiosk_page_key))) {
//todo on multyservice support show a kiosk an service selector here
} else if(newValue.equals(getString(R.string.channel_page_key))) {
SelectChannelFragment selectChannelFragment = new SelectChannelFragment();
selectChannelFragment.setOnSelectedLisener(new SelectChannelFragment.OnSelectedLisener() {
@Override
public void onChannelSelected(String url, String name, int service) {
defaultPreferences.edit()
.putInt(getString(R.string.main_page_selected_service), service).apply();
defaultPreferences.edit()
.putString(getString(R.string.main_page_selected_channel_url), url).apply();
defaultPreferences.edit()
.putString(getString(R.string.main_page_selected_channel_name), name).apply();
//change summery
2017-09-28 15:36:15 +02:00
mainPageContentPref.setSummary(name);
}
});
selectChannelFragment.setOnCancelListener(new SelectChannelFragment.OnCancelListener() {
@Override
public void onCancel() {
//defaultPreferences.edit()
// .putString(getString(R.string.main_page_content_key), mainPrefOldValue).apply();
mainPageContentPref.setSummary(mainPrefOldSummary);
mainPageContentPref.setValue(mainPrefOldValue);
2017-09-26 17:29:38 +02:00
}
});
selectChannelFragment.show(getFragmentManager(), "select_channel");
}
2017-09-28 15:36:15 +02:00
if(!newValue.equals(getString(R.string.channel_page_key))) {
mainPageContentPref.setSummary(getMainPageSummeryByKey(newValue));
}
2017-09-26 17:29:38 +02:00
return true;
}
});
}
@Override
public void onResume() {
super.onResume();
final String mainPageContentKey = getString(R.string.main_page_content_key);
if(defaultPreferences.getString(mainPageContentKey,
getString(R.string.blank_page_key))
.equals(getString(R.string.channel_page_key))) {
Preference pref = findPreference(getString(R.string.main_page_content_key));
pref.setSummary(defaultPreferences.getString(getString(R.string.main_page_selected_channel_name), "error"));
}
}
2017-09-28 15:36:15 +02:00
/*//////////////////////////////////////////////////////////////////////////
// Utils
//////////////////////////////////////////////////////////////////////////*/
private String getMainPagePrefSummery(final String mainPrefOldValue, final ListPreference mainPageContentPref) {
if(mainPrefOldValue.equals(getString(R.string.channel_page_key))) {
return defaultPreferences.getString(getString(R.string.main_page_selected_channel_name), "error");
} else {
return mainPageContentPref.getSummary().toString();
}
}
private int getMainPageSummeryByKey(final String key) {
if(key.equals(getString(R.string.blank_page_key))) {
return R.string.blank_page_summary;
} else if(key.equals(getString(R.string.kiosk_page_key))) {
return R.string.kiosk_page_summary;
} else if(key.equals(getString(R.string.feed_page_key))) {
return R.string.feed_page_summary;
} else if(key.equals(getString(R.string.subscription_page_key))) {
return R.string.subscription_page_summary;
2017-09-28 15:36:15 +02:00
} else if(key.equals(getString(R.string.channel_page_key))) {
return R.string.channel_page_summary;
}
return R.string.blank_page_summary;
}
}