/** * */ package tk.djcrazy.MyCC98; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.EditTextPreference; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.view.MenuItem; import com.baidu.mobstat.StatService; import me.imid.swipebacklayout.lib.app.SwipeBackPreferenceActivity; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import tk.djcrazy.MyCC98.helper.ThemeHelper; /** * @author zsy * */ public class SettingsActivity extends SwipeBackPreferenceActivity { public static final String SETTINGS = "settings"; public static final String SHOW_TAIL = "show_tail"; public static final String ENABLE_CACHE = "enable_cache"; public static final String SHOW_USER_AVATAR = "show_user_avatar"; public static final String USE_CUSTOM_TAIL = "use_custom_tail"; public static final String CUSTOM_TAIL_CONTENT = "custom_tail_content"; public static final String SHOW_IMAGE = "enable_load_image"; public static final String SHOW_TOP = "enable_show_top"; public static final String THEME = "post_theme"; public static final String THEME_DEFAULT = "default"; private CheckBoxPreference showTailPreference; private CheckBoxPreference useCustomPreference; private EditTextPreference customTailContentPreference; private ListPreference themeListPreference; @Override protected void onResume() { super.onResume(); StatService.onResume(this); } @Override protected void onPause() { super.onPause(); StatService.onPause(this); } @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActionBar actionBar = getSupportActionBar(); actionBar.setLogo(R.drawable.setting_btn); actionBar.setTitle("设置"); actionBar.setDisplayHomeAsUpEnabled(true); addPreferencesFromResource(R.xml.settings); showTailPreference = (CheckBoxPreference) findPreference(SHOW_TAIL); useCustomPreference = (CheckBoxPreference) findPreference(USE_CUSTOM_TAIL); customTailContentPreference = (EditTextPreference) findPreference(CUSTOM_TAIL_CONTENT); themeListPreference = (ListPreference) findPreference(THEME); showTailPreference .setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { boolean value = (Boolean) newValue; if (!value) { useCustomPreference.setEnabled(false); customTailContentPreference.setEnabled(false); } else { useCustomPreference.setEnabled(true); if (useCustomPreference.isChecked()) { customTailContentPreference.setEnabled(true); } else { customTailContentPreference.setEnabled(false); } } return true; } }); useCustomPreference .setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { boolean value = (Boolean) newValue; if (value) { customTailContentPreference.setEnabled(true); } else { customTailContentPreference.setEnabled(false); } return true; } }); CharSequence[] themes = getThemes().toArray(new String[0]); themeListPreference.setEntries(themes); themeListPreference.setEntryValues(themes); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; default: break; } return super.onOptionsItemSelected(item); } private List<String> getThemes() { String themeRoot = ThemeHelper.getThemeRootPath(); File themedir = new File(themeRoot); List<String> themes = new ArrayList<String>(); themes.add(THEME_DEFAULT); if (themedir.exists() && themedir.isDirectory()) { themes.addAll(Arrays.asList(themedir.list())); } return themes; } }