package com.zhan_dui.dictionary;
import org.holoeverywhere.preference.PreferenceActivity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import com.actionbarsherlock.view.MenuItem;
import com.zhan_dui.dictionary.R;
import com.zhan_dui.dictionary.datacenter.QueryProcessor;
import com.zhan_dui.dictionary.utils.ThemeUtils;
public class SettingActivity extends PreferenceActivity implements
OnSharedPreferenceChangeListener {
public static boolean sChanged = false;
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
ThemeUtils.onActivityCreateSetTheme(this);
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.setting_preference);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle(R.string.setting_smallbear);
}
protected void onDestroy() {
super.onDestroy();
Runnable runnable = new Runnable() {
@Override
public void run() {
// 做下面的只是为了流畅,之所以要存储起来,是为了更快的查询
QueryProcessor.updateFromPreference(getApplicationContext());
}
};
new Thread(runnable).start();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
this.finish();
}
return super.onOptionsItemSelected(item);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
if (key.equals("select_theme")) {
String select_theme = sharedPreferences.getString(key,
"light_theme");
if (select_theme.equals("light_theme"))
ThemeUtils.changeToTheme(this, ThemeUtils.THEME_WHITE);
else if (select_theme.equals("dark_theme")) {
ThemeUtils.changeToTheme(this, ThemeUtils.THEME_DARK);
}
sChanged = true;
}
}
@SuppressWarnings("deprecation")
@Override
protected void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}
@SuppressWarnings("deprecation")
@Override
protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
}
}