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