package com.mistareader;
import android.app.Activity;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Settings_Fragment extends PreferenceFragment {
private static final String SETTINGS_RELOAD_SECTIONS = "settingsReloadSections";
private static final String SETTINGS_THEMES = "settingsThemes";
private static final String SETTINGS_ACCOUNT = "settingsAccont";
Forum forum;
public interface iOnSubsChange {
void onSubscriptionsSettingsChanged();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
view.setBackgroundColor(ThemesManager.colorBg_message_body);
return view;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
forum = Forum.getInstance();
Preference settingsAccont = findPreference(SETTINGS_ACCOUNT);
if (forum.sessionID.isEmpty())
settingsAccont.setSummary(R.string.sNotAuthorized);
else
settingsAccont.setSummary(forum.accountName);
final Activity activity = getActivity();
settingsAccont.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
forum.setupAccount(activity);
return false;
}
});
Preference settingsTheme = findPreference(SETTINGS_THEMES);
settingsTheme.setSummary(ThemesManager.getCurrentThemeName(activity));
settingsTheme.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
forum.selectTheme(activity);
return false;
}
});
// SUBSCRIPTIONS***********************
final iOnSubsChange mCallbackOnIntervalChanged;
mCallbackOnIntervalChanged = (iOnSubsChange) activity;
CheckBoxPreference settingsSubsUse = (CheckBoxPreference) findPreference(Settings.SUBSCRIPTIONS_USE);
settingsSubsUse.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
mCallbackOnIntervalChanged.onSubscriptionsSettingsChanged();
return true;
}
});
final ListPreference settingsNotifInterval = (ListPreference) findPreference(Settings.SUBSCRIPTIONS_INTERVAL);
String currentValue = settingsNotifInterval.getValue();
if (currentValue == null) {
settingsNotifInterval.setValue((String) settingsNotifInterval.getEntryValues()[0]);
currentValue = settingsNotifInterval.getValue();
}
updateDescription(settingsNotifInterval, currentValue);
settingsNotifInterval.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
mCallbackOnIntervalChanged.onSubscriptionsSettingsChanged();
updateDescription(settingsNotifInterval, newValue.toString());
return true;
}
});
// ((CheckBoxPreference) findPreference(Settings.NOTIFICATIONS_USE)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
// @Override
// public boolean onPreferenceChange(final Preference preference, final Object newValue) {
//
// Notifications.refreshNotificationsShedule((boolean) newValue, getActivity());
//
// return true;
// }
// });
Preference settingsReloadSections = (Preference) findPreference(SETTINGS_RELOAD_SECTIONS);
settingsReloadSections.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
forum.reloadSections(getActivity());
return false;
}
});
}
private void updateDescription(ListPreference backgroundTimeout, String value) {
int index = backgroundTimeout.findIndexOfValue(value);
backgroundTimeout.setSummary(backgroundTimeout.getEntries()[index]);
}
public void updateAccountDescription(boolean isLoggedIn) {
Preference settingsAccont = findPreference(SETTINGS_ACCOUNT);
if (isLoggedIn) {
settingsAccont.setSummary(forum.accountName);
}
else {
settingsAccont.setSummary(R.string.sNotAuthorized);
}
}
public void updateThemeDescription() {
Preference settingsTheme = findPreference(SETTINGS_THEMES);
settingsTheme.setSummary(ThemesManager.getCurrentThemeName(getActivity()));
}
}