package com.android.Mylauncher2;
import com.android.Mylauncher.R;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.util.Log;
import android.widget.MultiAutoCompleteTextView;
import android.preference.ListPreference;
public class EffectSettings extends PreferenceActivity
implements OnSharedPreferenceChangeListener, OnPreferenceChangeListener{
public static final String KEY_PREF_WORKSPACE_EFFECT = "workspace_effect";
//mcoy add for apps sort settings begin
public static final String KEY_APPS_SORT = "apps_sort";
public static final String APPS_SORT_EFFECT_SHORT_NAME = "0";
public static final String APPS_SORT_EFFECT_INSTASLLED_TIME = "1";
//mcoy add end
//mcoy add for multi-wallpaper begin
public static final String KEY_MULTI_WALLPAPER = "multi_walllpaper";
//mcoy add end
/* Workspace effects values --- workspace_effect_values */
public static final String WORKSPACE_EFFECT_DEFAULT = "Default";
public static final String WORKSPACE_EFFECT_CUBE = "Cube";
public static final String WORKSPACE_EFFECT_FLIP = "Flip";
public static final String WORKSPACE_EFFECT_WAVE = "Wave";
public static final String WORKSPACE_EFFECT_WINDMILLS = "Windmills";
public static final String WORKSPACE_EFFECT_EXTRUSION = "Extrusion";
//mcoy add for theme settings begin
public static final String DEFAULT_THEME_PACKAGE = "com.android.Mylauncher";
public static final String CURRENT_THEME_PACKAGE = "theme_package";
//mcoy add end
private SharedPreferences mSharedPreferences = null;
// added by mcoy for workspace effects
String mNewestWorkspaceEffect;
//mcoy add for apps sort settings begin
private ListPreference mComparatorChangePreference;
//mcoy add end
//mcoy add for multi-wallpaper begin
private CheckBoxPreference multiWallpaperPreference;
//mcoy add end
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.effect_settings);
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
//mcoy add for apps sort settings begin
mComparatorChangePreference = (ListPreference) findPreference(KEY_APPS_SORT);
String str = getAppSortSettignsValue(getApplicationContext());
Log.e("JIANG", "the str is " + str);
mComparatorChangePreference.setValue(str);
//mcoy add end
//mcoy add for multi-wallpaper begin
multiWallpaperPreference = (CheckBoxPreference) findPreference(KEY_MULTI_WALLPAPER);
multiWallpaperPreference.setOnPreferenceChangeListener(this);
multiWallpaperPreference.setChecked(isMultiWallpaperEnabled());
//mcoy add end
/* Set Default */
PreferenceManager.setDefaultValues(this, R.xml.effect_settings, false);
/* display summary */
updateSummary(this, mSharedPreferences, KEY_PREF_WORKSPACE_EFFECT);
updateSummary(this, mSharedPreferences, KEY_APPS_SORT);
}
@Override
protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
}
@Override
protected void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
Log.e("JIANG", "onSharedPreferenceChanged");
if (KEY_PREF_WORKSPACE_EFFECT.equals(key)) {
updateSummary(this, sharedPreferences, key);
final Intent intent = new Intent(
LauncherModel.EFFECT_CHANGED_ACTION);
sendBroadcast(intent);
finish();
}
//mcoy add for apps sort settings begin
else if (KEY_APPS_SORT.equals(key)) {
updateSummary(this, sharedPreferences, key);
final Intent intent = new Intent(LauncherModel.APPS_SORT_BY_ACTION);
String value = sharedPreferences.getString(KEY_APPS_SORT, APPS_SORT_EFFECT_SHORT_NAME);
intent.putExtra(LauncherModel.APPS_SORT_BY_COMPARATOR_ID,
Integer.parseInt(value));
sendBroadcast(intent);
finish();
}
//mcoy add end
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if(KEY_MULTI_WALLPAPER.equals(preference.getKey())){
boolean isMultiWallpaperOn = (Boolean) newValue;
final Intent intent = new Intent(LauncherModel.SET_MULTI_WALLPAPER_ENABLED_ACTION);
intent.putExtra(LauncherModel.SET_MULTI_WALLPAPER_ENABLED_ID, isMultiWallpaperOn);
sendBroadcast(intent);
//mSharedPreferences.edit().putBoolean(KEY_MULTI_WALLPAPER, isMultiWallpaperOn).commit();
}
return true;
}
private void updateSummary(Context ctx, SharedPreferences sp, String key) {
String []effects = null;
String []effectValues = null;
String defaultValue = null;
Preference pref = findPreference(key);
String value = sp.getString(key, "");
Log.e("JIANG", "EffectSettings---updateSummary--key is " + key + " value is " + value);
int idx;
if (key.equals(KEY_PREF_WORKSPACE_EFFECT)) {
effects = ctx.getResources().getStringArray(R.array.workspace_effect_entries);
effectValues = ctx.getResources().getStringArray(R.array.workspace_effect_values);
defaultValue = WORKSPACE_EFFECT_DEFAULT;
} else if(KEY_APPS_SORT.equals(key)) {
effects = ctx.getResources().getStringArray(R.array.entry_apps_sort);
effectValues = ctx.getResources().getStringArray(R.array.entryvalues_apps_sort);
defaultValue = APPS_SORT_EFFECT_SHORT_NAME;
}
if (value.equals("")) {
value = defaultValue;
SharedPreferences.Editor edit = sp.edit();
edit.putString(key, value);
edit.commit();
}
for (idx =0; idx < effectValues.length; idx++) {
if (value.equals(effectValues[idx]))
break;
}
if (idx == effectValues.length) {
return; //ERROR
}
Log.d("JIANG", "EffectSettings -> updateSummary(), value = " + value + ", mNewestWorkspaceEffect = " + mNewestWorkspaceEffect);
pref.setSummary(effects[idx]);
}
//mcoy add for multi-wallpaper begin
private boolean isMultiWallpaperEnabled() {
boolean isMultiWallpaperOn = mSharedPreferences.getBoolean(KEY_MULTI_WALLPAPER, false);
return isMultiWallpaperOn;
}
//mcoy add end
//mcoy add for apps sort settings begin
public String getAppSortSettignsValue(Context ctx) {
String effect = mSharedPreferences.getString(KEY_APPS_SORT, APPS_SORT_EFFECT_SHORT_NAME);
return effect;
}
//mcoy add end
public PreferenceManager getEffectPreferenceManager() {
return getPreferenceManager();
}
}