package com.athena.asm; import android.content.Intent; import android.content.res.Configuration; 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.PreferenceActivity; import android.view.KeyEvent; import com.athena.asm.data.Preferences; public class SettingActivity extends PreferenceActivity implements OnPreferenceChangeListener, OnPreferenceClickListener { private CheckBoxPreference m_rememberUser; private CheckBoxPreference m_autoLogin; private ListPreference m_defaultTab; @SuppressWarnings("deprecation") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preference); m_rememberUser = (CheckBoxPreference) findPreference(Preferences.REMEMBER_USER); m_autoLogin = (CheckBoxPreference) findPreference(Preferences.AUTO_LOGIN); m_defaultTab = (ListPreference) findPreference(Preferences.DEFAULT_TAB); m_rememberUser.setOnPreferenceChangeListener(this); m_rememberUser.setOnPreferenceClickListener(this); m_defaultTab.setOnPreferenceChangeListener(this); m_defaultTab.setOnPreferenceClickListener(this); } @Override public void onConfigurationChanged(Configuration newConfig) { // do nothing to stop onCreated super.onConfigurationChanged(newConfig); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { if (preference.getKey().equals(Preferences.REMEMBER_USER)) { if (!(Boolean) newValue) { m_autoLogin.setChecked(false); } } else if (preference.getKey().equals(Preferences.NIGHT_THEME)) { if ((Boolean) newValue) { aSMApplication.THEME = R.style.Theme_Sherlock; } else { aSMApplication.THEME = R.style.Theme_Sherlock_Light; } } return true; } @Override public boolean onPreferenceClick(Preference preference) { return true; } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { aSMApplication.getCurrentApplication().initPreferences(); Intent intent = new Intent(this, HomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true;// super.onKeyDown(keyCode, event); } else { return super.onKeyDown(keyCode, event); } } }