DevelopmentSettings.java revision 0c9c14b7864fddc7d5822d5db866ef0cc7a6d08a
1afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project/* 2afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 3afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 4afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * you may not use this file except in compliance with the License. 6afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * You may obtain a copy of the License at 7afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 8afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 10afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * See the License for the specific language governing permissions and 14afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * limitations under the License. 15afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 16afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 17afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectpackage com.android.settings; 18afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 19eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.app.ActivityManagerNative; 20b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwoodimport android.app.AlertDialog; 2124bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasaniimport android.app.Dialog; 22fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tateimport android.app.backup.IBackupManager; 23ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackbornimport android.content.ContentResolver; 24fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tateimport android.content.Context; 25b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwoodimport android.content.DialogInterface; 26eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.content.Intent; 27498fbe470e8201ed6d4a1677025b274d9ca65e0bKenny Rootimport android.content.pm.PackageManager; 28498fbe470e8201ed6d4a1677025b274d9ca65e0bKenny Rootimport android.content.pm.VerifierDeviceIdentity; 29afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.BatteryManager; 30f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasaniimport android.os.Build; 31afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Bundle; 32eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.os.IBinder; 33eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.os.Parcel; 34eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.os.RemoteException; 35eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.os.ServiceManager; 36eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.os.StrictMode; 37f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasaniimport android.os.SystemProperties; 38f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasaniimport android.preference.CheckBoxPreference; 39f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasaniimport android.preference.ListPreference; 40afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.preference.Preference; 41ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackbornimport android.preference.PreferenceFragment; 42afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.preference.PreferenceScreen; 43f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasaniimport android.preference.Preference.OnPreferenceChangeListener; 44afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.provider.Settings; 45eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.text.TextUtils; 46eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.view.IWindowManager; 47afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 48afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project/* 49afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Displays preferences for application developers. 50afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 51ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackbornpublic class DevelopmentSettings extends PreferenceFragment 52f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener, 53f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani OnPreferenceChangeListener { 54afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 55afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final String ENABLE_ADB = "enable_adb"; 56498fbe470e8201ed6d4a1677025b274d9ca65e0bKenny Root 57498fbe470e8201ed6d4a1677025b274d9ca65e0bKenny Root private static final String VERIFIER_DEVICE_IDENTIFIER = "verifier_device_identifier"; 58afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final String KEEP_SCREEN_ON = "keep_screen_on"; 59afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final String ALLOW_MOCK_LOCATION = "allow_mock_location"; 60f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani private static final String HDCP_CHECKING_KEY = "hdcp_checking"; 61f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani private static final String HDCP_CHECKING_PROPERTY = "persist.sys.hdcp_checking"; 62fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate private static final String LOCAL_BACKUP_PASSWORD = "local_backup_password"; 630c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy private static final String HARDWARE_UI_PROPERTY = "persist.sys.ui.hw"; 64afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 65eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String STRICT_MODE_KEY = "strict_mode"; 66eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String POINTER_LOCATION_KEY = "pointer_location"; 67f40770096fe75180fba679ed349a63d195729c0cJeff Brown private static final String SHOW_TOUCHES_KEY = "show_touches"; 68eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String SHOW_SCREEN_UPDATES_KEY = "show_screen_updates"; 69eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String SHOW_CPU_USAGE_KEY = "show_cpu_usage"; 700c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy private static final String FORCE_HARDWARE_UI_KEY = "force_hw_ui"; 71eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String WINDOW_ANIMATION_SCALE_KEY = "window_animation_scale"; 72eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String TRANSITION_ANIMATION_SCALE_KEY = "transition_animation_scale"; 73eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 74eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String IMMEDIATELY_DESTROY_ACTIVITIES_KEY 75eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn = "immediately_destroy_activities"; 76eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String APP_PROCESS_LIMIT_KEY = "app_process_limit"; 77eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 78d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn private static final String SHOW_ALL_ANRS_KEY = "show_all_anrs"; 79d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn 80eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private IWindowManager mWindowManager; 81fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate private IBackupManager mBackupManager; 82eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 83afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private CheckBoxPreference mEnableAdb; 84afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private CheckBoxPreference mKeepScreenOn; 85afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private CheckBoxPreference mAllowMockLocation; 86fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate private PreferenceScreen mPassword; 87afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 88eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private CheckBoxPreference mStrictMode; 89eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private CheckBoxPreference mPointerLocation; 90f40770096fe75180fba679ed349a63d195729c0cJeff Brown private CheckBoxPreference mShowTouches; 91eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private CheckBoxPreference mShowScreenUpdates; 92eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private CheckBoxPreference mShowCpuUsage; 930c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy private CheckBoxPreference mForceHardwareUi; 94eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private ListPreference mWindowAnimationScale; 95eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private ListPreference mTransitionAnimationScale; 96eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 97eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private CheckBoxPreference mImmediatelyDestroyActivities; 98eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private ListPreference mAppProcessLimit; 99eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 100d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn private CheckBoxPreference mShowAllANRs; 101d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn 102b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood // To track whether Yes was clicked in the adb warning dialog 103b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood private boolean mOkClicked; 104b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood 10524bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani private Dialog mOkDialog; 10624bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani 107afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 108ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn public void onCreate(Bundle icicle) { 109afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onCreate(icicle); 110afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 111eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window")); 112fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate mBackupManager = IBackupManager.Stub.asInterface( 113fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate ServiceManager.getService(Context.BACKUP_SERVICE)); 114eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 115afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project addPreferencesFromResource(R.xml.development_prefs); 116afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 117afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mEnableAdb = (CheckBoxPreference) findPreference(ENABLE_ADB); 118afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mKeepScreenOn = (CheckBoxPreference) findPreference(KEEP_SCREEN_ON); 119afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mAllowMockLocation = (CheckBoxPreference) findPreference(ALLOW_MOCK_LOCATION); 120fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate mPassword = (PreferenceScreen) findPreference(LOCAL_BACKUP_PASSWORD); 121f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani 122eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mStrictMode = (CheckBoxPreference) findPreference(STRICT_MODE_KEY); 123eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mPointerLocation = (CheckBoxPreference) findPreference(POINTER_LOCATION_KEY); 124f40770096fe75180fba679ed349a63d195729c0cJeff Brown mShowTouches = (CheckBoxPreference) findPreference(SHOW_TOUCHES_KEY); 125eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mShowScreenUpdates = (CheckBoxPreference) findPreference(SHOW_SCREEN_UPDATES_KEY); 126eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mShowCpuUsage = (CheckBoxPreference) findPreference(SHOW_CPU_USAGE_KEY); 1270c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy mForceHardwareUi = (CheckBoxPreference) findPreference(FORCE_HARDWARE_UI_KEY); 128eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mWindowAnimationScale = (ListPreference) findPreference(WINDOW_ANIMATION_SCALE_KEY); 12983b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn mWindowAnimationScale.setOnPreferenceChangeListener(this); 130eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mTransitionAnimationScale = (ListPreference) findPreference(TRANSITION_ANIMATION_SCALE_KEY); 13183b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn mTransitionAnimationScale.setOnPreferenceChangeListener(this); 132eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 133eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mImmediatelyDestroyActivities = (CheckBoxPreference) findPreference( 134eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn IMMEDIATELY_DESTROY_ACTIVITIES_KEY); 135eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mAppProcessLimit = (ListPreference) findPreference(APP_PROCESS_LIMIT_KEY); 13683b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn mAppProcessLimit.setOnPreferenceChangeListener(this); 137eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 138d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn mShowAllANRs = (CheckBoxPreference) findPreference( 139d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn SHOW_ALL_ANRS_KEY); 140d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn 141498fbe470e8201ed6d4a1677025b274d9ca65e0bKenny Root final Preference verifierDeviceIdentifier = findPreference(VERIFIER_DEVICE_IDENTIFIER); 142498fbe470e8201ed6d4a1677025b274d9ca65e0bKenny Root final PackageManager pm = getActivity().getPackageManager(); 143498fbe470e8201ed6d4a1677025b274d9ca65e0bKenny Root final VerifierDeviceIdentity verifierIndentity = pm.getVerifierDeviceIdentity(); 144498fbe470e8201ed6d4a1677025b274d9ca65e0bKenny Root if (verifierIndentity != null) { 145498fbe470e8201ed6d4a1677025b274d9ca65e0bKenny Root verifierDeviceIdentifier.setSummary(verifierIndentity.toString()); 146498fbe470e8201ed6d4a1677025b274d9ca65e0bKenny Root } 147498fbe470e8201ed6d4a1677025b274d9ca65e0bKenny Root 1484f4ddaa823bfa7bd2fdff97338ff1839739925ddGlenn Kasten removeHdcpOptionsForProduction(); 149f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 150f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani 151f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani private void removeHdcpOptionsForProduction() { 152f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani if ("user".equals(Build.TYPE)) { 153f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani Preference hdcpChecking = findPreference(HDCP_CHECKING_KEY); 154f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani if (hdcpChecking != null) { 155f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani // Remove the preference 156f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani getPreferenceScreen().removePreference(hdcpChecking); 157f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 158f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 159afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 160afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 161afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 162ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn public void onResume() { 163afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onResume(); 16450cb76f58554dbccc51a754a73abef2debd8b721Ying Wang 165ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn final ContentResolver cr = getActivity().getContentResolver(); 166ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn mEnableAdb.setChecked(Settings.Secure.getInt(cr, 167afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Settings.Secure.ADB_ENABLED, 0) != 0); 168ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn mKeepScreenOn.setChecked(Settings.System.getInt(cr, 169afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0) != 0); 170ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn mAllowMockLocation.setChecked(Settings.Secure.getInt(cr, 171afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0); 172f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani updateHdcpValues(); 173fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate updatePasswordSummary(); 174eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateStrictModeVisualOptions(); 175eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updatePointerLocationOptions(); 176f40770096fe75180fba679ed349a63d195729c0cJeff Brown updateShowTouchesOptions(); 177eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateFlingerOptions(); 178eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateCpuUsageOptions(); 1790c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy updateHardwareUiOptions(); 180eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateAnimationScaleOptions(); 181eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateImmediatelyDestroyActivitiesOptions(); 182eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateAppProcessLimitOptions(); 183d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn updateShowAllANRsOptions(); 184f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 185f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani 186f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani private void updateHdcpValues() { 187f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani int index = 1; // Defaults to drm-only. Needs to match with R.array.hdcp_checking_values 188f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani ListPreference hdcpChecking = (ListPreference) findPreference(HDCP_CHECKING_KEY); 189f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani if (hdcpChecking != null) { 190f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani String currentValue = SystemProperties.get(HDCP_CHECKING_PROPERTY); 191f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani String[] values = getResources().getStringArray(R.array.hdcp_checking_values); 192f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani String[] summaries = getResources().getStringArray(R.array.hdcp_checking_summaries); 193f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani for (int i = 0; i < values.length; i++) { 194f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani if (currentValue.equals(values[i])) { 195f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani index = i; 196f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani break; 197f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 198f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 199f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani hdcpChecking.setValue(values[index]); 200f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani hdcpChecking.setSummary(summaries[index]); 201f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani hdcpChecking.setOnPreferenceChangeListener(this); 202f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 203afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 204afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 205fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate private void updatePasswordSummary() { 206fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate try { 207fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate if (mBackupManager.hasBackupPassword()) { 208fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate mPassword.setSummary(R.string.local_backup_password_summary_change); 209fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate } else { 210fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate mPassword.setSummary(R.string.local_backup_password_summary_none); 211fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate } 212fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate } catch (RemoteException e) { 213fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate // Not much we can do here 214fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate } 215fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate } 216fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate 217eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // Returns the current state of the system property that controls 218eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // strictmode flashes. One of: 219eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // 0: not explicitly set one way or another 220eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // 1: on 221eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // 2: off 222eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private int currentStrictModeActiveIndex() { 223eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (TextUtils.isEmpty(SystemProperties.get(StrictMode.VISUAL_PROPERTY))) { 224eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn return 0; 225eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 226eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn boolean enabled = SystemProperties.getBoolean(StrictMode.VISUAL_PROPERTY, false); 227eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn return enabled ? 1 : 2; 228eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 229eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 230eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void writeStrictModeVisualOptions() { 231eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 232eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mWindowManager.setStrictModeVisualIndicatorPreference(mStrictMode.isChecked() 233eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn ? "1" : ""); 234eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException e) { 235eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 236eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 237eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 238eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateStrictModeVisualOptions() { 239eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mStrictMode.setChecked(currentStrictModeActiveIndex() == 1); 240eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 241eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 242eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void writePointerLocationOptions() { 243eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.putInt(getActivity().getContentResolver(), 244eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.POINTER_LOCATION, mPointerLocation.isChecked() ? 1 : 0); 245eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 246eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 247eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updatePointerLocationOptions() { 248eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mPointerLocation.setChecked(Settings.System.getInt(getActivity().getContentResolver(), 249eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.POINTER_LOCATION, 0) != 0); 250eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 251eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 252f40770096fe75180fba679ed349a63d195729c0cJeff Brown private void writeShowTouchesOptions() { 253f40770096fe75180fba679ed349a63d195729c0cJeff Brown Settings.System.putInt(getActivity().getContentResolver(), 254f40770096fe75180fba679ed349a63d195729c0cJeff Brown Settings.System.SHOW_TOUCHES, mShowTouches.isChecked() ? 1 : 0); 255f40770096fe75180fba679ed349a63d195729c0cJeff Brown } 256f40770096fe75180fba679ed349a63d195729c0cJeff Brown 257f40770096fe75180fba679ed349a63d195729c0cJeff Brown private void updateShowTouchesOptions() { 258f40770096fe75180fba679ed349a63d195729c0cJeff Brown mShowTouches.setChecked(Settings.System.getInt(getActivity().getContentResolver(), 259f40770096fe75180fba679ed349a63d195729c0cJeff Brown Settings.System.SHOW_TOUCHES, 0) != 0); 260f40770096fe75180fba679ed349a63d195729c0cJeff Brown } 261f40770096fe75180fba679ed349a63d195729c0cJeff Brown 262eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateFlingerOptions() { 263eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // magic communication with surface flinger. 264eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 265eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn IBinder flinger = ServiceManager.getService("SurfaceFlinger"); 266eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (flinger != null) { 267eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Parcel data = Parcel.obtain(); 268eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Parcel reply = Parcel.obtain(); 269eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn data.writeInterfaceToken("android.ui.ISurfaceComposer"); 270eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn flinger.transact(1010, data, reply, 0); 271eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn @SuppressWarnings("unused") 272eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int showCpu = reply.readInt(); 273eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn @SuppressWarnings("unused") 274eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int enableGL = reply.readInt(); 275eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int showUpdates = reply.readInt(); 276eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mShowScreenUpdates.setChecked(showUpdates != 0); 277eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn @SuppressWarnings("unused") 278eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int showBackground = reply.readInt(); 279eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn reply.recycle(); 280eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn data.recycle(); 281eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 282eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException ex) { 283eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 284eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 285eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 286eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void writeFlingerOptions() { 287eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 288eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn IBinder flinger = ServiceManager.getService("SurfaceFlinger"); 289eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (flinger != null) { 290eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Parcel data = Parcel.obtain(); 291eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn data.writeInterfaceToken("android.ui.ISurfaceComposer"); 292eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn data.writeInt(mShowScreenUpdates.isChecked() ? 1 : 0); 293eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn flinger.transact(1002, data, null, 0); 294eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn data.recycle(); 295eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 296eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateFlingerOptions(); 297eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 298eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException ex) { 299eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 300eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 301eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 3020c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy private void updateHardwareUiOptions() { 3030c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy mForceHardwareUi.setChecked(SystemProperties.getBoolean(HARDWARE_UI_PROPERTY, false)); 3040c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy } 3050c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy 3060c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy private void writeHardwareUiOptions() { 3070c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy SystemProperties.set(HARDWARE_UI_PROPERTY, mForceHardwareUi.isChecked() ? "true" : "false"); 3080c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy } 3090c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy 310eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateCpuUsageOptions() { 311eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mShowCpuUsage.setChecked(Settings.System.getInt(getActivity().getContentResolver(), 312eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.SHOW_PROCESSES, 0) != 0); 313eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 3140c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy 315eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void writeCpuUsageOptions() { 316eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn boolean value = mShowCpuUsage.isChecked(); 317eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.putInt(getActivity().getContentResolver(), 318eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.SHOW_PROCESSES, value ? 1 : 0); 319eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Intent service = (new Intent()) 320c5ec5be6e4e796bd44475c63d43d8806e522aaf1Dianne Hackborn .setClassName("com.android.systemui", "com.android.systemui.LoadAverageService"); 321eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (value) { 322eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn getActivity().startService(service); 323eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else { 324eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn getActivity().stopService(service); 325eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 326eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 327eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 328eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void writeImmediatelyDestroyActivitiesOptions() { 329eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 330eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn ActivityManagerNative.getDefault().setAlwaysFinish( 331eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mImmediatelyDestroyActivities.isChecked()); 332eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException ex) { 333eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 334eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 335eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 336eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateImmediatelyDestroyActivitiesOptions() { 337eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mImmediatelyDestroyActivities.setChecked(Settings.System.getInt( 338eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn getActivity().getContentResolver(), Settings.System.ALWAYS_FINISH_ACTIVITIES, 0) != 0); 339eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 340eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 341eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateAnimationScaleValue(int which, ListPreference pref) { 342eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 343eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn float scale = mWindowManager.getAnimationScale(which); 344eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn CharSequence[] values = pref.getEntryValues(); 345eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn for (int i=0; i<values.length; i++) { 346eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn float val = Float.parseFloat(values[i].toString()); 347eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (scale <= val) { 348eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn pref.setValueIndex(i); 34983b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn pref.setSummary(pref.getEntries()[i]); 350eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn return; 351eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 352eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 353eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn pref.setValueIndex(values.length-1); 35483b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn pref.setSummary(pref.getEntries()[0]); 355eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException e) { 356eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 357eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 358eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 359eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateAnimationScaleOptions() { 360eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateAnimationScaleValue(0, mWindowAnimationScale); 361eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateAnimationScaleValue(1, mTransitionAnimationScale); 362eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 363eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 36483b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn private void writeAnimationScaleOption(int which, ListPreference pref, Object newValue) { 365eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 36683b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn float scale = Float.parseFloat(newValue.toString()); 367eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mWindowManager.setAnimationScale(which, scale); 368c5ec5be6e4e796bd44475c63d43d8806e522aaf1Dianne Hackborn updateAnimationScaleValue(which, pref); 369eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException e) { 370eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 371eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 372eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 373eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateAppProcessLimitOptions() { 374eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 375eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int limit = ActivityManagerNative.getDefault().getProcessLimit(); 376eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn CharSequence[] values = mAppProcessLimit.getEntryValues(); 377eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn for (int i=0; i<values.length; i++) { 378eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int val = Integer.parseInt(values[i].toString()); 379eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (val >= limit) { 380eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mAppProcessLimit.setValueIndex(i); 38183b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn mAppProcessLimit.setSummary(mAppProcessLimit.getEntries()[i]); 382eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn return; 383eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 384eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 385eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mAppProcessLimit.setValueIndex(0); 38683b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn mAppProcessLimit.setSummary(mAppProcessLimit.getEntries()[0]); 387eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException e) { 388eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 389eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 390eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 39183b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn private void writeAppProcessLimitOptions(Object newValue) { 392eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 39383b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn int limit = Integer.parseInt(newValue.toString()); 394eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn ActivityManagerNative.getDefault().setProcessLimit(limit); 395c5ec5be6e4e796bd44475c63d43d8806e522aaf1Dianne Hackborn updateAppProcessLimitOptions(); 396eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException e) { 397eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 398eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 399eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 400d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn private void writeShowAllANRsOptions() { 401d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn Settings.Secure.putInt(getActivity().getContentResolver(), 402d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn Settings.Secure.ANR_SHOW_BACKGROUND, 403d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn mShowAllANRs.isChecked() ? 1 : 0); 404d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn } 405d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn 406d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn private void updateShowAllANRsOptions() { 407d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn mShowAllANRs.setChecked(Settings.Secure.getInt( 408d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn getActivity().getContentResolver(), Settings.Secure.ANR_SHOW_BACKGROUND, 0) != 0); 409d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn } 410d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn 411afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 412afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { 413afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 414a718832e28095219a897c6e95e903c1a3fe57c12Ying Wang if (Utils.isMonkeyRunning()) { 415afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return false; 416afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 417afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 418afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (preference == mEnableAdb) { 419b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood if (mEnableAdb.isChecked()) { 420b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood mOkClicked = false; 42124bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani if (mOkDialog != null) dismissDialog(); 422ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn mOkDialog = new AlertDialog.Builder(getActivity()).setMessage( 423ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn getActivity().getResources().getString(R.string.adb_warning_message)) 424b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood .setTitle(R.string.adb_warning_title) 425b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood .setIcon(android.R.drawable.ic_dialog_alert) 426b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood .setPositiveButton(android.R.string.yes, this) 427b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood .setNegativeButton(android.R.string.no, this) 42824bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani .show(); 42924bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani mOkDialog.setOnDismissListener(this); 430b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } else { 431ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.putInt(getActivity().getContentResolver(), 432ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.ADB_ENABLED, 0); 433b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } 434afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else if (preference == mKeepScreenOn) { 435ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.System.putInt(getActivity().getContentResolver(), 436ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.System.STAY_ON_WHILE_PLUGGED_IN, 437afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mKeepScreenOn.isChecked() ? 438afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project (BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_USB) : 0); 439afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else if (preference == mAllowMockLocation) { 440ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.putInt(getActivity().getContentResolver(), 441ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.ALLOW_MOCK_LOCATION, 442afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mAllowMockLocation.isChecked() ? 1 : 0); 443eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else if (preference == mStrictMode) { 444eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn writeStrictModeVisualOptions(); 445eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else if (preference == mPointerLocation) { 446eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn writePointerLocationOptions(); 447f40770096fe75180fba679ed349a63d195729c0cJeff Brown } else if (preference == mShowTouches) { 448f40770096fe75180fba679ed349a63d195729c0cJeff Brown writeShowTouchesOptions(); 449eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else if (preference == mShowScreenUpdates) { 450eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn writeFlingerOptions(); 451eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else if (preference == mShowCpuUsage) { 452eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn writeCpuUsageOptions(); 453eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else if (preference == mImmediatelyDestroyActivities) { 454eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn writeImmediatelyDestroyActivitiesOptions(); 455d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn } else if (preference == mShowAllANRs) { 456d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn writeShowAllANRsOptions(); 4570c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy } else if (preference == mForceHardwareUi) { 4580c9c14b7864fddc7d5822d5db866ef0cc7a6d08aRomain Guy writeHardwareUiOptions(); 459afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 46024bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani 461afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return false; 462afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 463b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood 46483b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn @Override 46583b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn public boolean onPreferenceChange(Preference preference, Object newValue) { 46683b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn if (HDCP_CHECKING_KEY.equals(preference.getKey())) { 46783b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn SystemProperties.set(HDCP_CHECKING_PROPERTY, newValue.toString()); 46883b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn updateHdcpValues(); 46983b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn return true; 47083b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn } else if (preference == mWindowAnimationScale) { 47183b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn writeAnimationScaleOption(0, mWindowAnimationScale, newValue); 47283b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn return true; 47383b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn } else if (preference == mTransitionAnimationScale) { 47483b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn writeAnimationScaleOption(1, mTransitionAnimationScale, newValue); 47583b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn return true; 47683b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn } else if (preference == mAppProcessLimit) { 47783b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn writeAppProcessLimitOptions(newValue); 47883b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn return true; 47983b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn } 48083b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn return false; 48183b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn } 48283b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn 48324bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani private void dismissDialog() { 4848ccb9e0d33dcba1bd9f26e54d7066397e47a74a9Amith Yamasani if (mOkDialog == null) return; 48524bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani mOkDialog.dismiss(); 48624bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani mOkDialog = null; 48724bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani } 48824bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani 489b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood public void onClick(DialogInterface dialog, int which) { 490b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood if (which == DialogInterface.BUTTON_POSITIVE) { 491b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood mOkClicked = true; 492ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.putInt(getActivity().getContentResolver(), 493ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.ADB_ENABLED, 1); 494b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } else { 495b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood // Reset the toggle 496b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood mEnableAdb.setChecked(false); 497b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } 498b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } 499b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood 500b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood public void onDismiss(DialogInterface dialog) { 501b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood // Assuming that onClick gets called first 502b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood if (!mOkClicked) { 503b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood mEnableAdb.setChecked(false); 504b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } 505b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } 50624bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani 50724bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani @Override 50824bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani public void onDestroy() { 50924bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani dismissDialog(); 51024bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani super.onDestroy(); 51124bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani } 512afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project} 513