DevelopmentSettings.java revision f40770096fe75180fba679ed349a63d195729c0c
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; 27afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.BatteryManager; 28f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasaniimport android.os.Build; 29afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Bundle; 30eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.os.IBinder; 31eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.os.Parcel; 32eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.os.RemoteException; 33eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.os.ServiceManager; 34eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.os.StrictMode; 35f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasaniimport android.os.SystemProperties; 36f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasaniimport android.preference.CheckBoxPreference; 37f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasaniimport android.preference.ListPreference; 38afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.preference.Preference; 39ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackbornimport android.preference.PreferenceFragment; 40afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.preference.PreferenceScreen; 41f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasaniimport android.preference.Preference.OnPreferenceChangeListener; 42afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.provider.Settings; 43eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.text.TextUtils; 44eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackbornimport android.view.IWindowManager; 45afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 46afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project/* 47afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Displays preferences for application developers. 48afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 49ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackbornpublic class DevelopmentSettings extends PreferenceFragment 50f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener, 51f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani OnPreferenceChangeListener { 52afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 53afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final String ENABLE_ADB = "enable_adb"; 54afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final String KEEP_SCREEN_ON = "keep_screen_on"; 55afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final String ALLOW_MOCK_LOCATION = "allow_mock_location"; 56f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani private static final String HDCP_CHECKING_KEY = "hdcp_checking"; 57f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani private static final String HDCP_CHECKING_PROPERTY = "persist.sys.hdcp_checking"; 58fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate private static final String LOCAL_BACKUP_PASSWORD = "local_backup_password"; 59afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 60eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String STRICT_MODE_KEY = "strict_mode"; 61eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String POINTER_LOCATION_KEY = "pointer_location"; 62f40770096fe75180fba679ed349a63d195729c0cJeff Brown private static final String SHOW_TOUCHES_KEY = "show_touches"; 63eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String SHOW_SCREEN_UPDATES_KEY = "show_screen_updates"; 64eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String SHOW_CPU_USAGE_KEY = "show_cpu_usage"; 65eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String WINDOW_ANIMATION_SCALE_KEY = "window_animation_scale"; 66eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String TRANSITION_ANIMATION_SCALE_KEY = "transition_animation_scale"; 67eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 68eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String IMMEDIATELY_DESTROY_ACTIVITIES_KEY 69eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn = "immediately_destroy_activities"; 70eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private static final String APP_PROCESS_LIMIT_KEY = "app_process_limit"; 71eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 72d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn private static final String SHOW_ALL_ANRS_KEY = "show_all_anrs"; 73d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn 74eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private IWindowManager mWindowManager; 75fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate private IBackupManager mBackupManager; 76eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 77afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private CheckBoxPreference mEnableAdb; 78afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private CheckBoxPreference mKeepScreenOn; 79afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private CheckBoxPreference mAllowMockLocation; 80fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate private PreferenceScreen mPassword; 81afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 82eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private CheckBoxPreference mStrictMode; 83eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private CheckBoxPreference mPointerLocation; 84f40770096fe75180fba679ed349a63d195729c0cJeff Brown private CheckBoxPreference mShowTouches; 85eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private CheckBoxPreference mShowScreenUpdates; 86eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private CheckBoxPreference mShowCpuUsage; 87eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private ListPreference mWindowAnimationScale; 88eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private ListPreference mTransitionAnimationScale; 89eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 90eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private CheckBoxPreference mImmediatelyDestroyActivities; 91eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private ListPreference mAppProcessLimit; 92eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 93d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn private CheckBoxPreference mShowAllANRs; 94d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn 95b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood // To track whether Yes was clicked in the adb warning dialog 96b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood private boolean mOkClicked; 97b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood 9824bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani private Dialog mOkDialog; 9924bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani 100afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 101ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn public void onCreate(Bundle icicle) { 102afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onCreate(icicle); 103afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 104eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window")); 105fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate mBackupManager = IBackupManager.Stub.asInterface( 106fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate ServiceManager.getService(Context.BACKUP_SERVICE)); 107eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 108afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project addPreferencesFromResource(R.xml.development_prefs); 109afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 110afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mEnableAdb = (CheckBoxPreference) findPreference(ENABLE_ADB); 111afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mKeepScreenOn = (CheckBoxPreference) findPreference(KEEP_SCREEN_ON); 112afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mAllowMockLocation = (CheckBoxPreference) findPreference(ALLOW_MOCK_LOCATION); 113fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate mPassword = (PreferenceScreen) findPreference(LOCAL_BACKUP_PASSWORD); 114f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani 115eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mStrictMode = (CheckBoxPreference) findPreference(STRICT_MODE_KEY); 116eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mPointerLocation = (CheckBoxPreference) findPreference(POINTER_LOCATION_KEY); 117f40770096fe75180fba679ed349a63d195729c0cJeff Brown mShowTouches = (CheckBoxPreference) findPreference(SHOW_TOUCHES_KEY); 118eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mShowScreenUpdates = (CheckBoxPreference) findPreference(SHOW_SCREEN_UPDATES_KEY); 119eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mShowCpuUsage = (CheckBoxPreference) findPreference(SHOW_CPU_USAGE_KEY); 120eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mWindowAnimationScale = (ListPreference) findPreference(WINDOW_ANIMATION_SCALE_KEY); 12183b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn mWindowAnimationScale.setOnPreferenceChangeListener(this); 122eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mTransitionAnimationScale = (ListPreference) findPreference(TRANSITION_ANIMATION_SCALE_KEY); 12383b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn mTransitionAnimationScale.setOnPreferenceChangeListener(this); 124eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 125eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mImmediatelyDestroyActivities = (CheckBoxPreference) findPreference( 126eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn IMMEDIATELY_DESTROY_ACTIVITIES_KEY); 127eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mAppProcessLimit = (ListPreference) findPreference(APP_PROCESS_LIMIT_KEY); 12883b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn mAppProcessLimit.setOnPreferenceChangeListener(this); 129eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 130d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn mShowAllANRs = (CheckBoxPreference) findPreference( 131d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn SHOW_ALL_ANRS_KEY); 132d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn 1334f4ddaa823bfa7bd2fdff97338ff1839739925ddGlenn Kasten removeHdcpOptionsForProduction(); 134f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 135f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani 136f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani private void removeHdcpOptionsForProduction() { 137f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani if ("user".equals(Build.TYPE)) { 138f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani Preference hdcpChecking = findPreference(HDCP_CHECKING_KEY); 139f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani if (hdcpChecking != null) { 140f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani // Remove the preference 141f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani getPreferenceScreen().removePreference(hdcpChecking); 142f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 143f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 144afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 145afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 146afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 147ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn public void onResume() { 148afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onResume(); 14950cb76f58554dbccc51a754a73abef2debd8b721Ying Wang 150ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn final ContentResolver cr = getActivity().getContentResolver(); 151ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn mEnableAdb.setChecked(Settings.Secure.getInt(cr, 152afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Settings.Secure.ADB_ENABLED, 0) != 0); 153ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn mKeepScreenOn.setChecked(Settings.System.getInt(cr, 154afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0) != 0); 155ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn mAllowMockLocation.setChecked(Settings.Secure.getInt(cr, 156afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0); 157f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani updateHdcpValues(); 158fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate updatePasswordSummary(); 159eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateStrictModeVisualOptions(); 160eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updatePointerLocationOptions(); 161f40770096fe75180fba679ed349a63d195729c0cJeff Brown updateShowTouchesOptions(); 162eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateFlingerOptions(); 163eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateCpuUsageOptions(); 164eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateAnimationScaleOptions(); 165eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateImmediatelyDestroyActivitiesOptions(); 166eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateAppProcessLimitOptions(); 167d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn updateShowAllANRsOptions(); 168f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 169f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani 170f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani private void updateHdcpValues() { 171f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani int index = 1; // Defaults to drm-only. Needs to match with R.array.hdcp_checking_values 172f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani ListPreference hdcpChecking = (ListPreference) findPreference(HDCP_CHECKING_KEY); 173f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani if (hdcpChecking != null) { 174f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani String currentValue = SystemProperties.get(HDCP_CHECKING_PROPERTY); 175f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani String[] values = getResources().getStringArray(R.array.hdcp_checking_values); 176f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani String[] summaries = getResources().getStringArray(R.array.hdcp_checking_summaries); 177f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani for (int i = 0; i < values.length; i++) { 178f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani if (currentValue.equals(values[i])) { 179f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani index = i; 180f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani break; 181f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 182f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 183f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani hdcpChecking.setValue(values[index]); 184f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani hdcpChecking.setSummary(summaries[index]); 185f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani hdcpChecking.setOnPreferenceChangeListener(this); 186f3b325f54dadb482d73111ab17cf6a51784de11aAmith Yamasani } 187afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 188afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 189fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate private void updatePasswordSummary() { 190fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate try { 191fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate if (mBackupManager.hasBackupPassword()) { 192fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate mPassword.setSummary(R.string.local_backup_password_summary_change); 193fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate } else { 194fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate mPassword.setSummary(R.string.local_backup_password_summary_none); 195fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate } 196fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate } catch (RemoteException e) { 197fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate // Not much we can do here 198fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate } 199fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate } 200fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate 201eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // Returns the current state of the system property that controls 202eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // strictmode flashes. One of: 203eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // 0: not explicitly set one way or another 204eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // 1: on 205eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // 2: off 206eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private int currentStrictModeActiveIndex() { 207eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (TextUtils.isEmpty(SystemProperties.get(StrictMode.VISUAL_PROPERTY))) { 208eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn return 0; 209eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 210eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn boolean enabled = SystemProperties.getBoolean(StrictMode.VISUAL_PROPERTY, false); 211eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn return enabled ? 1 : 2; 212eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 213eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 214eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void writeStrictModeVisualOptions() { 215eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 216eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mWindowManager.setStrictModeVisualIndicatorPreference(mStrictMode.isChecked() 217eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn ? "1" : ""); 218eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException e) { 219eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 220eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 221eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 222eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateStrictModeVisualOptions() { 223eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mStrictMode.setChecked(currentStrictModeActiveIndex() == 1); 224eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 225eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 226eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void writePointerLocationOptions() { 227eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.putInt(getActivity().getContentResolver(), 228eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.POINTER_LOCATION, mPointerLocation.isChecked() ? 1 : 0); 229eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 230eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 231eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updatePointerLocationOptions() { 232eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mPointerLocation.setChecked(Settings.System.getInt(getActivity().getContentResolver(), 233eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.POINTER_LOCATION, 0) != 0); 234eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 235eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 236f40770096fe75180fba679ed349a63d195729c0cJeff Brown private void writeShowTouchesOptions() { 237f40770096fe75180fba679ed349a63d195729c0cJeff Brown Settings.System.putInt(getActivity().getContentResolver(), 238f40770096fe75180fba679ed349a63d195729c0cJeff Brown Settings.System.SHOW_TOUCHES, mShowTouches.isChecked() ? 1 : 0); 239f40770096fe75180fba679ed349a63d195729c0cJeff Brown } 240f40770096fe75180fba679ed349a63d195729c0cJeff Brown 241f40770096fe75180fba679ed349a63d195729c0cJeff Brown private void updateShowTouchesOptions() { 242f40770096fe75180fba679ed349a63d195729c0cJeff Brown mShowTouches.setChecked(Settings.System.getInt(getActivity().getContentResolver(), 243f40770096fe75180fba679ed349a63d195729c0cJeff Brown Settings.System.SHOW_TOUCHES, 0) != 0); 244f40770096fe75180fba679ed349a63d195729c0cJeff Brown } 245f40770096fe75180fba679ed349a63d195729c0cJeff Brown 246eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateFlingerOptions() { 247eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn // magic communication with surface flinger. 248eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 249eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn IBinder flinger = ServiceManager.getService("SurfaceFlinger"); 250eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (flinger != null) { 251eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Parcel data = Parcel.obtain(); 252eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Parcel reply = Parcel.obtain(); 253eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn data.writeInterfaceToken("android.ui.ISurfaceComposer"); 254eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn flinger.transact(1010, data, reply, 0); 255eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn @SuppressWarnings("unused") 256eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int showCpu = reply.readInt(); 257eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn @SuppressWarnings("unused") 258eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int enableGL = reply.readInt(); 259eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int showUpdates = reply.readInt(); 260eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mShowScreenUpdates.setChecked(showUpdates != 0); 261eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn @SuppressWarnings("unused") 262eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int showBackground = reply.readInt(); 263eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn reply.recycle(); 264eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn data.recycle(); 265eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 266eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException ex) { 267eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 268eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 269eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 270eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void writeFlingerOptions() { 271eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 272eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn IBinder flinger = ServiceManager.getService("SurfaceFlinger"); 273eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (flinger != null) { 274eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Parcel data = Parcel.obtain(); 275eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn data.writeInterfaceToken("android.ui.ISurfaceComposer"); 276eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn data.writeInt(mShowScreenUpdates.isChecked() ? 1 : 0); 277eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn flinger.transact(1002, data, null, 0); 278eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn data.recycle(); 279eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 280eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateFlingerOptions(); 281eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 282eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException ex) { 283eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 284eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 285eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 286eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateCpuUsageOptions() { 287eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mShowCpuUsage.setChecked(Settings.System.getInt(getActivity().getContentResolver(), 288eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.SHOW_PROCESSES, 0) != 0); 289eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 290eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 291eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void writeCpuUsageOptions() { 292eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn boolean value = mShowCpuUsage.isChecked(); 293eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.putInt(getActivity().getContentResolver(), 294eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Settings.System.SHOW_PROCESSES, value ? 1 : 0); 295eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn Intent service = (new Intent()) 296c5ec5be6e4e796bd44475c63d43d8806e522aaf1Dianne Hackborn .setClassName("com.android.systemui", "com.android.systemui.LoadAverageService"); 297eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (value) { 298eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn getActivity().startService(service); 299eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else { 300eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn getActivity().stopService(service); 301eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 302eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 303eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 304eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void writeImmediatelyDestroyActivitiesOptions() { 305eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 306eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn ActivityManagerNative.getDefault().setAlwaysFinish( 307eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mImmediatelyDestroyActivities.isChecked()); 308eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException ex) { 309eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 310eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 311eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 312eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateImmediatelyDestroyActivitiesOptions() { 313eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mImmediatelyDestroyActivities.setChecked(Settings.System.getInt( 314eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn getActivity().getContentResolver(), Settings.System.ALWAYS_FINISH_ACTIVITIES, 0) != 0); 315eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 316eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 317eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateAnimationScaleValue(int which, ListPreference pref) { 318eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 319eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn float scale = mWindowManager.getAnimationScale(which); 320eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn CharSequence[] values = pref.getEntryValues(); 321eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn for (int i=0; i<values.length; i++) { 322eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn float val = Float.parseFloat(values[i].toString()); 323eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (scale <= val) { 324eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn pref.setValueIndex(i); 32583b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn pref.setSummary(pref.getEntries()[i]); 326eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn return; 327eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 328eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 329eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn pref.setValueIndex(values.length-1); 33083b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn pref.setSummary(pref.getEntries()[0]); 331eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException e) { 332eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 333eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 334eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 335eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateAnimationScaleOptions() { 336eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateAnimationScaleValue(0, mWindowAnimationScale); 337eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn updateAnimationScaleValue(1, mTransitionAnimationScale); 338eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 339eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 34083b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn private void writeAnimationScaleOption(int which, ListPreference pref, Object newValue) { 341eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 34283b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn float scale = Float.parseFloat(newValue.toString()); 343eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mWindowManager.setAnimationScale(which, scale); 344c5ec5be6e4e796bd44475c63d43d8806e522aaf1Dianne Hackborn updateAnimationScaleValue(which, pref); 345eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException e) { 346eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 347eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 348eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 349eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn private void updateAppProcessLimitOptions() { 350eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 351eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int limit = ActivityManagerNative.getDefault().getProcessLimit(); 352eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn CharSequence[] values = mAppProcessLimit.getEntryValues(); 353eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn for (int i=0; i<values.length; i++) { 354eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn int val = Integer.parseInt(values[i].toString()); 355eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn if (val >= limit) { 356eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mAppProcessLimit.setValueIndex(i); 35783b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn mAppProcessLimit.setSummary(mAppProcessLimit.getEntries()[i]); 358eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn return; 359eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 360eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 361eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn mAppProcessLimit.setValueIndex(0); 36283b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn mAppProcessLimit.setSummary(mAppProcessLimit.getEntries()[0]); 363eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException e) { 364eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 365eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 366eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 36783b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn private void writeAppProcessLimitOptions(Object newValue) { 368eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn try { 36983b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn int limit = Integer.parseInt(newValue.toString()); 370eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn ActivityManagerNative.getDefault().setProcessLimit(limit); 371c5ec5be6e4e796bd44475c63d43d8806e522aaf1Dianne Hackborn updateAppProcessLimitOptions(); 372eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } catch (RemoteException e) { 373eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 374eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } 375eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn 376d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn private void writeShowAllANRsOptions() { 377d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn Settings.Secure.putInt(getActivity().getContentResolver(), 378d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn Settings.Secure.ANR_SHOW_BACKGROUND, 379d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn mShowAllANRs.isChecked() ? 1 : 0); 380d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn } 381d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn 382d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn private void updateShowAllANRsOptions() { 383d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn mShowAllANRs.setChecked(Settings.Secure.getInt( 384d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn getActivity().getContentResolver(), Settings.Secure.ANR_SHOW_BACKGROUND, 0) != 0); 385d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn } 386d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn 387afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 388afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { 389afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 390a718832e28095219a897c6e95e903c1a3fe57c12Ying Wang if (Utils.isMonkeyRunning()) { 391afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return false; 392afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 393afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 394afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (preference == mEnableAdb) { 395b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood if (mEnableAdb.isChecked()) { 396b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood mOkClicked = false; 39724bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani if (mOkDialog != null) dismissDialog(); 398ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn mOkDialog = new AlertDialog.Builder(getActivity()).setMessage( 399ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn getActivity().getResources().getString(R.string.adb_warning_message)) 400b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood .setTitle(R.string.adb_warning_title) 401b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood .setIcon(android.R.drawable.ic_dialog_alert) 402b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood .setPositiveButton(android.R.string.yes, this) 403b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood .setNegativeButton(android.R.string.no, this) 40424bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani .show(); 40524bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani mOkDialog.setOnDismissListener(this); 406b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } else { 407ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.putInt(getActivity().getContentResolver(), 408ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.ADB_ENABLED, 0); 409b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } 410afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else if (preference == mKeepScreenOn) { 411ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.System.putInt(getActivity().getContentResolver(), 412ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.System.STAY_ON_WHILE_PLUGGED_IN, 413afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mKeepScreenOn.isChecked() ? 414afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project (BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_USB) : 0); 415afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else if (preference == mAllowMockLocation) { 416ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.putInt(getActivity().getContentResolver(), 417ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.ALLOW_MOCK_LOCATION, 418afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mAllowMockLocation.isChecked() ? 1 : 0); 419eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else if (preference == mStrictMode) { 420eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn writeStrictModeVisualOptions(); 421eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else if (preference == mPointerLocation) { 422eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn writePointerLocationOptions(); 423f40770096fe75180fba679ed349a63d195729c0cJeff Brown } else if (preference == mShowTouches) { 424f40770096fe75180fba679ed349a63d195729c0cJeff Brown writeShowTouchesOptions(); 425eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else if (preference == mShowScreenUpdates) { 426eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn writeFlingerOptions(); 427eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else if (preference == mShowCpuUsage) { 428eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn writeCpuUsageOptions(); 429eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn } else if (preference == mImmediatelyDestroyActivities) { 430eddc4fe89c020cbfedd5531cc2c13782034a8158Dianne Hackborn writeImmediatelyDestroyActivitiesOptions(); 431d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn } else if (preference == mShowAllANRs) { 432d5119bd39738853dc96156d93c3dfbd65dd601e7Dianne Hackborn writeShowAllANRsOptions(); 433afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 43424bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani 435afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return false; 436afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 437b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood 43883b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn @Override 43983b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn public boolean onPreferenceChange(Preference preference, Object newValue) { 44083b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn if (HDCP_CHECKING_KEY.equals(preference.getKey())) { 44183b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn SystemProperties.set(HDCP_CHECKING_PROPERTY, newValue.toString()); 44283b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn updateHdcpValues(); 44383b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn return true; 44483b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn } else if (preference == mWindowAnimationScale) { 44583b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn writeAnimationScaleOption(0, mWindowAnimationScale, newValue); 44683b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn return true; 44783b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn } else if (preference == mTransitionAnimationScale) { 44883b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn writeAnimationScaleOption(1, mTransitionAnimationScale, newValue); 44983b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn return true; 45083b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn } else if (preference == mAppProcessLimit) { 45183b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn writeAppProcessLimitOptions(newValue); 45283b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn return true; 45383b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn } 45483b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn return false; 45583b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn } 45683b09a57e158f3050c7feb5ea75e8dd2d626697eDianne Hackborn 45724bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani private void dismissDialog() { 4588ccb9e0d33dcba1bd9f26e54d7066397e47a74a9Amith Yamasani if (mOkDialog == null) return; 45924bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani mOkDialog.dismiss(); 46024bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani mOkDialog = null; 46124bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani } 46224bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani 463b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood public void onClick(DialogInterface dialog, int which) { 464b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood if (which == DialogInterface.BUTTON_POSITIVE) { 465b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood mOkClicked = true; 466ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.putInt(getActivity().getContentResolver(), 467ee2937941d4e9a4d2cd94d504ddaa9685bcca090Dianne Hackborn Settings.Secure.ADB_ENABLED, 1); 468b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } else { 469b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood // Reset the toggle 470b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood mEnableAdb.setChecked(false); 471b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } 472b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } 473b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood 474b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood public void onDismiss(DialogInterface dialog) { 475b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood // Assuming that onClick gets called first 476b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood if (!mOkClicked) { 477b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood mEnableAdb.setChecked(false); 478b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } 479b7e46e89d77574dbb51855144ea3d46fcf220bbbMike Lockwood } 48024bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani 48124bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani @Override 48224bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani public void onDestroy() { 48324bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani dismissDialog(); 48424bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani super.onDestroy(); 48524bd892bdeced9cadd0ee60bbd6a9dd9c035d54bAmith Yamasani } 486afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project} 487