17277e821713196510586cdf5fd334cdc012554b2Joe Onorato/* //device/apps/Settings/src/com/android/settings/Keyguard.java
27277e821713196510586cdf5fd334cdc012554b2Joe Onorato**
37277e821713196510586cdf5fd334cdc012554b2Joe Onorato** Copyright 2006, The Android Open Source Project
47277e821713196510586cdf5fd334cdc012554b2Joe Onorato**
57277e821713196510586cdf5fd334cdc012554b2Joe Onorato** Licensed under the Apache License, Version 2.0 (the "License");
67277e821713196510586cdf5fd334cdc012554b2Joe Onorato** you may not use this file except in compliance with the License.
77277e821713196510586cdf5fd334cdc012554b2Joe Onorato** You may obtain a copy of the License at
87277e821713196510586cdf5fd334cdc012554b2Joe Onorato**
97277e821713196510586cdf5fd334cdc012554b2Joe Onorato**     http://www.apache.org/licenses/LICENSE-2.0
107277e821713196510586cdf5fd334cdc012554b2Joe Onorato**
117277e821713196510586cdf5fd334cdc012554b2Joe Onorato** Unless required by applicable law or agreed to in writing, software
127277e821713196510586cdf5fd334cdc012554b2Joe Onorato** distributed under the License is distributed on an "AS IS" BASIS,
137277e821713196510586cdf5fd334cdc012554b2Joe Onorato** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
147277e821713196510586cdf5fd334cdc012554b2Joe Onorato** See the License for the specific language governing permissions and
157277e821713196510586cdf5fd334cdc012554b2Joe Onorato** limitations under the License.
167277e821713196510586cdf5fd334cdc012554b2Joe Onorato*/
177277e821713196510586cdf5fd334cdc012554b2Joe Onorato
187277e821713196510586cdf5fd334cdc012554b2Joe Onoratopackage com.android.spare_parts;
197277e821713196510586cdf5fd334cdc012554b2Joe Onorato
207277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.app.ActivityManagerNative;
217277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.content.Context;
227277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.content.Intent;
237277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.content.SharedPreferences;
247277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.content.pm.ApplicationInfo;
257277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.content.pm.PackageManager;
267277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.content.pm.ResolveInfo;
277277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.content.pm.PackageManager.NameNotFoundException;
287277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.content.res.Configuration;
297277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.os.RemoteException;
307277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.os.ServiceManager;
317277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.preference.CheckBoxPreference;
327277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.preference.ListPreference;
337277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.preference.Preference;
347277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.preference.PreferenceActivity;
357277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.preference.PreferenceGroup;
367277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.preference.PreferenceScreen;
377277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.provider.Settings;
387277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.provider.Settings.SettingNotFoundException;
397277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.os.Bundle;
407277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.util.Log;
417277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport android.view.IWindowManager;
427277e821713196510586cdf5fd334cdc012554b2Joe Onorato
437277e821713196510586cdf5fd334cdc012554b2Joe Onoratoimport java.util.List;
447277e821713196510586cdf5fd334cdc012554b2Joe Onorato
457277e821713196510586cdf5fd334cdc012554b2Joe Onoratopublic class SpareParts extends PreferenceActivity
467277e821713196510586cdf5fd334cdc012554b2Joe Onorato        implements Preference.OnPreferenceChangeListener,
477277e821713196510586cdf5fd334cdc012554b2Joe Onorato        SharedPreferences.OnSharedPreferenceChangeListener {
487277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private static final String TAG = "SpareParts";
497277e821713196510586cdf5fd334cdc012554b2Joe Onorato
507277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private static final String BATTERY_HISTORY_PREF = "battery_history_settings";
517277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private static final String BATTERY_INFORMATION_PREF = "battery_information_settings";
527277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private static final String USAGE_STATISTICS_PREF = "usage_statistics_settings";
537277e821713196510586cdf5fd334cdc012554b2Joe Onorato
547277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private static final String WINDOW_ANIMATIONS_PREF = "window_animations";
557277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private static final String TRANSITION_ANIMATIONS_PREF = "transition_animations";
567277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private static final String FANCY_IME_ANIMATIONS_PREF = "fancy_ime_animations";
577277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private static final String HAPTIC_FEEDBACK_PREF = "haptic_feedback";
587277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private static final String FONT_SIZE_PREF = "font_size";
597277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private static final String END_BUTTON_PREF = "end_button";
607277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private static final String KEY_COMPATIBILITY_MODE = "compatibility_mode";
617277e821713196510586cdf5fd334cdc012554b2Joe Onorato
627277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private final Configuration mCurConfig = new Configuration();
637277e821713196510586cdf5fd334cdc012554b2Joe Onorato
647277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private ListPreference mWindowAnimationsPref;
657277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private ListPreference mTransitionAnimationsPref;
667277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private CheckBoxPreference mFancyImeAnimationsPref;
677277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private CheckBoxPreference mHapticFeedbackPref;
687277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private ListPreference mFontSizePref;
697277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private ListPreference mEndButtonPref;
707277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private CheckBoxPreference mCompatibilityMode;
717277e821713196510586cdf5fd334cdc012554b2Joe Onorato
727277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private IWindowManager mWindowManager;
737277e821713196510586cdf5fd334cdc012554b2Joe Onorato
747277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public static boolean updatePreferenceToSpecificActivityOrRemove(Context context,
757277e821713196510586cdf5fd334cdc012554b2Joe Onorato            PreferenceGroup parentPreferenceGroup, String preferenceKey, int flags) {
767277e821713196510586cdf5fd334cdc012554b2Joe Onorato
777277e821713196510586cdf5fd334cdc012554b2Joe Onorato        Preference preference = parentPreferenceGroup.findPreference(preferenceKey);
787277e821713196510586cdf5fd334cdc012554b2Joe Onorato        if (preference == null) {
797277e821713196510586cdf5fd334cdc012554b2Joe Onorato            return false;
807277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
817277e821713196510586cdf5fd334cdc012554b2Joe Onorato
827277e821713196510586cdf5fd334cdc012554b2Joe Onorato        Intent intent = preference.getIntent();
837277e821713196510586cdf5fd334cdc012554b2Joe Onorato        if (intent != null) {
847277e821713196510586cdf5fd334cdc012554b2Joe Onorato            // Find the activity that is in the system image
857277e821713196510586cdf5fd334cdc012554b2Joe Onorato            PackageManager pm = context.getPackageManager();
867277e821713196510586cdf5fd334cdc012554b2Joe Onorato            List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);
877277e821713196510586cdf5fd334cdc012554b2Joe Onorato            int listSize = list.size();
887277e821713196510586cdf5fd334cdc012554b2Joe Onorato            for (int i = 0; i < listSize; i++) {
897277e821713196510586cdf5fd334cdc012554b2Joe Onorato                ResolveInfo resolveInfo = list.get(i);
907277e821713196510586cdf5fd334cdc012554b2Joe Onorato                if ((resolveInfo.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)
917277e821713196510586cdf5fd334cdc012554b2Joe Onorato                        != 0) {
927277e821713196510586cdf5fd334cdc012554b2Joe Onorato
937277e821713196510586cdf5fd334cdc012554b2Joe Onorato                    // Replace the intent with this specific activity
947277e821713196510586cdf5fd334cdc012554b2Joe Onorato                    preference.setIntent(new Intent().setClassName(
957277e821713196510586cdf5fd334cdc012554b2Joe Onorato                            resolveInfo.activityInfo.packageName,
967277e821713196510586cdf5fd334cdc012554b2Joe Onorato                            resolveInfo.activityInfo.name));
977277e821713196510586cdf5fd334cdc012554b2Joe Onorato
987277e821713196510586cdf5fd334cdc012554b2Joe Onorato                    return true;
997277e821713196510586cdf5fd334cdc012554b2Joe Onorato                }
1007277e821713196510586cdf5fd334cdc012554b2Joe Onorato            }
1017277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
1027277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1037277e821713196510586cdf5fd334cdc012554b2Joe Onorato        // Did not find a matching activity, so remove the preference
1047277e821713196510586cdf5fd334cdc012554b2Joe Onorato        parentPreferenceGroup.removePreference(preference);
1057277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1067277e821713196510586cdf5fd334cdc012554b2Joe Onorato        return true;
1077277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
1087277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1097277e821713196510586cdf5fd334cdc012554b2Joe Onorato    @Override
1107277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public void onCreate(Bundle icicle) {
1117277e821713196510586cdf5fd334cdc012554b2Joe Onorato        super.onCreate(icicle);
1127277e821713196510586cdf5fd334cdc012554b2Joe Onorato        addPreferencesFromResource(R.xml.spare_parts);
1137277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1147277e821713196510586cdf5fd334cdc012554b2Joe Onorato        PreferenceScreen prefSet = getPreferenceScreen();
1157277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1167277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mWindowAnimationsPref = (ListPreference) prefSet.findPreference(WINDOW_ANIMATIONS_PREF);
1177277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mWindowAnimationsPref.setOnPreferenceChangeListener(this);
1187277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mTransitionAnimationsPref = (ListPreference) prefSet.findPreference(TRANSITION_ANIMATIONS_PREF);
1197277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mTransitionAnimationsPref.setOnPreferenceChangeListener(this);
1207277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mFancyImeAnimationsPref = (CheckBoxPreference) prefSet.findPreference(FANCY_IME_ANIMATIONS_PREF);
1217277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mHapticFeedbackPref = (CheckBoxPreference) prefSet.findPreference(HAPTIC_FEEDBACK_PREF);
1227277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mFontSizePref = (ListPreference) prefSet.findPreference(FONT_SIZE_PREF);
1237277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mFontSizePref.setOnPreferenceChangeListener(this);
1247277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mEndButtonPref = (ListPreference) prefSet.findPreference(END_BUTTON_PREF);
1257277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mEndButtonPref.setOnPreferenceChangeListener(this);
1267277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mCompatibilityMode = (CheckBoxPreference) findPreference(KEY_COMPATIBILITY_MODE);
1277277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mCompatibilityMode.setPersistent(false);
1284db997871e3f4c3f84660815096e5276b47c5c91Jeff Sharkey        mCompatibilityMode.setChecked(Settings.Global.getInt(getContentResolver(),
1294db997871e3f4c3f84660815096e5276b47c5c91Jeff Sharkey                Settings.Global.COMPATIBILITY_MODE, 1) != 0);
1307277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1317277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window"));
1327277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1337277e821713196510586cdf5fd334cdc012554b2Joe Onorato        final PreferenceGroup parentPreference = getPreferenceScreen();
1347277e821713196510586cdf5fd334cdc012554b2Joe Onorato        updatePreferenceToSpecificActivityOrRemove(this, parentPreference,
1357277e821713196510586cdf5fd334cdc012554b2Joe Onorato                BATTERY_HISTORY_PREF, 0);
1367277e821713196510586cdf5fd334cdc012554b2Joe Onorato        updatePreferenceToSpecificActivityOrRemove(this, parentPreference,
1377277e821713196510586cdf5fd334cdc012554b2Joe Onorato                BATTERY_INFORMATION_PREF, 0);
1387277e821713196510586cdf5fd334cdc012554b2Joe Onorato        updatePreferenceToSpecificActivityOrRemove(this, parentPreference,
1397277e821713196510586cdf5fd334cdc012554b2Joe Onorato                USAGE_STATISTICS_PREF, 0);
1407277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1417277e821713196510586cdf5fd334cdc012554b2Joe Onorato        parentPreference.getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
1427277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
1437277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1447277e821713196510586cdf5fd334cdc012554b2Joe Onorato    private void updateToggles() {
1454db997871e3f4c3f84660815096e5276b47c5c91Jeff Sharkey        mFancyImeAnimationsPref.setChecked(Settings.Global.getInt(
1467277e821713196510586cdf5fd334cdc012554b2Joe Onorato                getContentResolver(),
1474db997871e3f4c3f84660815096e5276b47c5c91Jeff Sharkey                Settings.Global.FANCY_IME_ANIMATIONS, 0) != 0);
1487277e821713196510586cdf5fd334cdc012554b2Joe Onorato        mHapticFeedbackPref.setChecked(Settings.System.getInt(
1497277e821713196510586cdf5fd334cdc012554b2Joe Onorato                getContentResolver(),
1507277e821713196510586cdf5fd334cdc012554b2Joe Onorato                Settings.System.HAPTIC_FEEDBACK_ENABLED, 0) != 0);
1517277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
1527277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1537277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public boolean onPreferenceChange(Preference preference, Object objValue) {
1547277e821713196510586cdf5fd334cdc012554b2Joe Onorato        if (preference == mWindowAnimationsPref) {
1557277e821713196510586cdf5fd334cdc012554b2Joe Onorato            writeAnimationPreference(0, objValue);
1567277e821713196510586cdf5fd334cdc012554b2Joe Onorato        } else if (preference == mTransitionAnimationsPref) {
1577277e821713196510586cdf5fd334cdc012554b2Joe Onorato            writeAnimationPreference(1, objValue);
1587277e821713196510586cdf5fd334cdc012554b2Joe Onorato        } else if (preference == mFontSizePref) {
1597277e821713196510586cdf5fd334cdc012554b2Joe Onorato            writeFontSizePreference(objValue);
1607277e821713196510586cdf5fd334cdc012554b2Joe Onorato        } else if (preference == mEndButtonPref) {
1617277e821713196510586cdf5fd334cdc012554b2Joe Onorato            writeEndButtonPreference(objValue);
1627277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
1637277e821713196510586cdf5fd334cdc012554b2Joe Onorato        // always let the preference setting proceed.
1647277e821713196510586cdf5fd334cdc012554b2Joe Onorato        return true;
1657277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
1667277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1677277e821713196510586cdf5fd334cdc012554b2Joe Onorato    @Override
1687277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
1697277e821713196510586cdf5fd334cdc012554b2Joe Onorato        if (preference == mCompatibilityMode) {
1704db997871e3f4c3f84660815096e5276b47c5c91Jeff Sharkey            Settings.Global.putInt(getContentResolver(),
1714db997871e3f4c3f84660815096e5276b47c5c91Jeff Sharkey                    Settings.Global.COMPATIBILITY_MODE,
1727277e821713196510586cdf5fd334cdc012554b2Joe Onorato                    mCompatibilityMode.isChecked() ? 1 : 0);
1737277e821713196510586cdf5fd334cdc012554b2Joe Onorato            return true;
1747277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
1757277e821713196510586cdf5fd334cdc012554b2Joe Onorato        return false;
1767277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
1777277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1787277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public void writeAnimationPreference(int which, Object objValue) {
1797277e821713196510586cdf5fd334cdc012554b2Joe Onorato        try {
1807277e821713196510586cdf5fd334cdc012554b2Joe Onorato            float val = Float.parseFloat(objValue.toString());
1817277e821713196510586cdf5fd334cdc012554b2Joe Onorato            mWindowManager.setAnimationScale(which, val);
1827277e821713196510586cdf5fd334cdc012554b2Joe Onorato        } catch (NumberFormatException e) {
1837277e821713196510586cdf5fd334cdc012554b2Joe Onorato        } catch (RemoteException e) {
1847277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
1857277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
1867277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1877277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public void writeFontSizePreference(Object objValue) {
1887277e821713196510586cdf5fd334cdc012554b2Joe Onorato        try {
1897277e821713196510586cdf5fd334cdc012554b2Joe Onorato            mCurConfig.fontScale = Float.parseFloat(objValue.toString());
1907277e821713196510586cdf5fd334cdc012554b2Joe Onorato            ActivityManagerNative.getDefault().updateConfiguration(mCurConfig);
1917277e821713196510586cdf5fd334cdc012554b2Joe Onorato        } catch (RemoteException e) {
1927277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
1937277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
1947277e821713196510586cdf5fd334cdc012554b2Joe Onorato
1957277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public void writeEndButtonPreference(Object objValue) {
1967277e821713196510586cdf5fd334cdc012554b2Joe Onorato        try {
1977277e821713196510586cdf5fd334cdc012554b2Joe Onorato            int val = Integer.parseInt(objValue.toString());
1987277e821713196510586cdf5fd334cdc012554b2Joe Onorato            Settings.System.putInt(getContentResolver(),
1997277e821713196510586cdf5fd334cdc012554b2Joe Onorato                    Settings.System.END_BUTTON_BEHAVIOR, val);
2007277e821713196510586cdf5fd334cdc012554b2Joe Onorato        } catch (NumberFormatException e) {
2017277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
2027277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
2037277e821713196510586cdf5fd334cdc012554b2Joe Onorato
2047277e821713196510586cdf5fd334cdc012554b2Joe Onorato    int floatToIndex(float val, int resid) {
2057277e821713196510586cdf5fd334cdc012554b2Joe Onorato        String[] indices = getResources().getStringArray(resid);
2067277e821713196510586cdf5fd334cdc012554b2Joe Onorato        float lastVal = Float.parseFloat(indices[0]);
2077277e821713196510586cdf5fd334cdc012554b2Joe Onorato        for (int i=1; i<indices.length; i++) {
2087277e821713196510586cdf5fd334cdc012554b2Joe Onorato            float thisVal = Float.parseFloat(indices[i]);
2097277e821713196510586cdf5fd334cdc012554b2Joe Onorato            if (val < (lastVal + (thisVal-lastVal)*.5f)) {
2107277e821713196510586cdf5fd334cdc012554b2Joe Onorato                return i-1;
2117277e821713196510586cdf5fd334cdc012554b2Joe Onorato            }
2127277e821713196510586cdf5fd334cdc012554b2Joe Onorato            lastVal = thisVal;
2137277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
2147277e821713196510586cdf5fd334cdc012554b2Joe Onorato        return indices.length-1;
2157277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
2167277e821713196510586cdf5fd334cdc012554b2Joe Onorato
2177277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public void readAnimationPreference(int which, ListPreference pref) {
2187277e821713196510586cdf5fd334cdc012554b2Joe Onorato        try {
2197277e821713196510586cdf5fd334cdc012554b2Joe Onorato            float scale = mWindowManager.getAnimationScale(which);
2207277e821713196510586cdf5fd334cdc012554b2Joe Onorato            pref.setValueIndex(floatToIndex(scale,
2217277e821713196510586cdf5fd334cdc012554b2Joe Onorato                    R.array.entryvalues_animations));
2227277e821713196510586cdf5fd334cdc012554b2Joe Onorato        } catch (RemoteException e) {
2237277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
2247277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
2257277e821713196510586cdf5fd334cdc012554b2Joe Onorato
2267277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public void readFontSizePreference(ListPreference pref) {
2277277e821713196510586cdf5fd334cdc012554b2Joe Onorato        try {
2287277e821713196510586cdf5fd334cdc012554b2Joe Onorato            mCurConfig.updateFrom(
2297277e821713196510586cdf5fd334cdc012554b2Joe Onorato                ActivityManagerNative.getDefault().getConfiguration());
2307277e821713196510586cdf5fd334cdc012554b2Joe Onorato        } catch (RemoteException e) {
2317277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
2327277e821713196510586cdf5fd334cdc012554b2Joe Onorato        pref.setValueIndex(floatToIndex(mCurConfig.fontScale,
2337277e821713196510586cdf5fd334cdc012554b2Joe Onorato                R.array.entryvalues_font_size));
2347277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
2357277e821713196510586cdf5fd334cdc012554b2Joe Onorato
2367277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public void readEndButtonPreference(ListPreference pref) {
2377277e821713196510586cdf5fd334cdc012554b2Joe Onorato        try {
2387277e821713196510586cdf5fd334cdc012554b2Joe Onorato            pref.setValueIndex(Settings.System.getInt(getContentResolver(),
2397277e821713196510586cdf5fd334cdc012554b2Joe Onorato                    Settings.System.END_BUTTON_BEHAVIOR));
2407277e821713196510586cdf5fd334cdc012554b2Joe Onorato        } catch (SettingNotFoundException e) {
2417277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
2427277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
2437277e821713196510586cdf5fd334cdc012554b2Joe Onorato
2447277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
2457277e821713196510586cdf5fd334cdc012554b2Joe Onorato        if (FANCY_IME_ANIMATIONS_PREF.equals(key)) {
2464db997871e3f4c3f84660815096e5276b47c5c91Jeff Sharkey            Settings.Global.putInt(getContentResolver(),
2474db997871e3f4c3f84660815096e5276b47c5c91Jeff Sharkey                    Settings.Global.FANCY_IME_ANIMATIONS,
2487277e821713196510586cdf5fd334cdc012554b2Joe Onorato                    mFancyImeAnimationsPref.isChecked() ? 1 : 0);
2497277e821713196510586cdf5fd334cdc012554b2Joe Onorato        } else if (HAPTIC_FEEDBACK_PREF.equals(key)) {
2507277e821713196510586cdf5fd334cdc012554b2Joe Onorato            Settings.System.putInt(getContentResolver(),
2517277e821713196510586cdf5fd334cdc012554b2Joe Onorato                    Settings.System.HAPTIC_FEEDBACK_ENABLED,
2527277e821713196510586cdf5fd334cdc012554b2Joe Onorato                    mHapticFeedbackPref.isChecked() ? 1 : 0);
2537277e821713196510586cdf5fd334cdc012554b2Joe Onorato        }
2547277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
2557277e821713196510586cdf5fd334cdc012554b2Joe Onorato
2567277e821713196510586cdf5fd334cdc012554b2Joe Onorato    @Override
2577277e821713196510586cdf5fd334cdc012554b2Joe Onorato    public void onResume() {
2587277e821713196510586cdf5fd334cdc012554b2Joe Onorato        super.onResume();
2597277e821713196510586cdf5fd334cdc012554b2Joe Onorato        readAnimationPreference(0, mWindowAnimationsPref);
2607277e821713196510586cdf5fd334cdc012554b2Joe Onorato        readAnimationPreference(1, mTransitionAnimationsPref);
2617277e821713196510586cdf5fd334cdc012554b2Joe Onorato        readFontSizePreference(mFontSizePref);
2627277e821713196510586cdf5fd334cdc012554b2Joe Onorato        readEndButtonPreference(mEndButtonPref);
2637277e821713196510586cdf5fd334cdc012554b2Joe Onorato        updateToggles();
2647277e821713196510586cdf5fd334cdc012554b2Joe Onorato    }
2657277e821713196510586cdf5fd334cdc012554b2Joe Onorato}
266