diff options
author | Dianne Hackborn <hackbod@google.com> | 2012-02-14 13:25:41 -0800 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2012-02-14 13:46:27 -0800 |
commit | 9244df4c6422931697a0cf6e327b15cd71b6d8c4 (patch) | |
tree | 7ed5a0462b6086e0d86d62bf5965cd43b9c64832 /src/com/android/settings/DevelopmentSettings.java | |
parent | 31c5ec82021271f2e1745a2de37c543e67dcec17 (diff) | |
download | packages_apps_settings-9244df4c6422931697a0cf6e327b15cd71b6d8c4.zip packages_apps_settings-9244df4c6422931697a0cf6e327b15cd71b6d8c4.tar.gz packages_apps_settings-9244df4c6422931697a0cf6e327b15cd71b6d8c4.tar.bz2 |
Add debug app / wait for debugger dev options.
Re-organize dev options a bit.
Change-Id: I291b177c87cb8fb4bd8316d05aa6eadfaaf5f0d2
Diffstat (limited to 'src/com/android/settings/DevelopmentSettings.java')
-rw-r--r-- | src/com/android/settings/DevelopmentSettings.java | 76 |
1 files changed, 74 insertions, 2 deletions
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index 7b4e0eb..d235633 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -28,6 +28,7 @@ import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.VerifierDeviceIdentity; import android.os.BatteryManager; @@ -69,6 +70,8 @@ public class DevelopmentSettings extends PreferenceFragment private static final String LOCAL_BACKUP_PASSWORD = "local_backup_password"; private static final String HARDWARE_UI_PROPERTY = "persist.sys.ui.hw"; + private static final String DEBUG_APP_KEY = "debug_app"; + private static final String WAIT_FOR_DEBUGGER_KEY = "wait_for_debugger"; private static final String STRICT_MODE_KEY = "strict_mode"; private static final String POINTER_LOCATION_KEY = "pointer_location"; private static final String SHOW_TOUCHES_KEY = "show_touches"; @@ -86,6 +89,8 @@ public class DevelopmentSettings extends PreferenceFragment private static final String SHOW_ALL_ANRS_KEY = "show_all_anrs"; + private static final int RESULT_DEBUG_APP = 1000; + private IWindowManager mWindowManager; private IBackupManager mBackupManager; @@ -97,6 +102,10 @@ public class DevelopmentSettings extends PreferenceFragment private CheckBoxPreference mAllowMockLocation; private PreferenceScreen mPassword; + private String mDebugApp; + private Preference mDebugAppPref; + private CheckBoxPreference mWaitForDebugger; + private CheckBoxPreference mStrictMode; private CheckBoxPreference mPointerLocation; private CheckBoxPreference mShowTouches; @@ -144,10 +153,15 @@ public class DevelopmentSettings extends PreferenceFragment mPassword = (PreferenceScreen) findPreference(LOCAL_BACKUP_PASSWORD); mAllPrefs.add(mPassword); + mDebugAppPref = findPreference(DEBUG_APP_KEY); + mAllPrefs.add(mDebugAppPref); + mWaitForDebugger = (CheckBoxPreference) findPreference(WAIT_FOR_DEBUGGER_KEY); + mAllPrefs.add(mWaitForDebugger); + mResetCbPrefs.add(mWaitForDebugger); + mStrictMode = (CheckBoxPreference) findPreference(STRICT_MODE_KEY); mAllPrefs.add(mStrictMode); mResetCbPrefs.add(mStrictMode); - mResetCbPrefs.add(mAllowMockLocation); mPointerLocation = (CheckBoxPreference) findPreference(POINTER_LOCATION_KEY); mAllPrefs.add(mPointerLocation); mResetCbPrefs.add(mPointerLocation); @@ -251,6 +265,7 @@ public class DevelopmentSettings extends PreferenceFragment for (int i=0; i<mAllPrefs.size(); i++) { mAllPrefs.get(i).setEnabled(enabled); } + updateAllOptions(); } @Override @@ -262,7 +277,6 @@ public class DevelopmentSettings extends PreferenceFragment Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0; mEnabledSwitch.setChecked(mLastEnabledState); setPrefsEnabledState(mLastEnabledState); - updateAllOptions(); } private void updateAllOptions() { @@ -275,6 +289,7 @@ public class DevelopmentSettings extends PreferenceFragment Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0); updateHdcpValues(); updatePasswordSummary(); + updateDebuggerOptions(); updateStrictModeVisualOptions(); updatePointerLocationOptions(); updateShowTouchesOptions(); @@ -295,6 +310,7 @@ public class DevelopmentSettings extends PreferenceFragment onPreferenceTreeClick(null, cb); } } + resetDebuggerOptions(); writeAnimationScaleOption(0, mWindowAnimationScale, null); writeAnimationScaleOption(1, mTransitionAnimationScale, null); writeAnimationScaleOption(2, mAnimatorDurationScale, null); @@ -333,6 +349,45 @@ public class DevelopmentSettings extends PreferenceFragment } } + private void writeDebuggerOptions() { + try { + ActivityManagerNative.getDefault().setDebugApp( + mDebugApp, mWaitForDebugger.isChecked(), true); + } catch (RemoteException ex) { + } + } + + private void resetDebuggerOptions() { + try { + ActivityManagerNative.getDefault().setDebugApp( + null, false, true); + } catch (RemoteException ex) { + } + } + + private void updateDebuggerOptions() { + mDebugApp = Settings.System.getString( + getActivity().getContentResolver(), Settings.System.DEBUG_APP); + mWaitForDebugger.setChecked(Settings.System.getInt( + getActivity().getContentResolver(), Settings.System.WAIT_FOR_DEBUGGER, 0) != 0); + if (mDebugApp != null && mDebugApp.length() > 0) { + String label; + try { + ApplicationInfo ai = getActivity().getPackageManager().getApplicationInfo(mDebugApp, + PackageManager.GET_DISABLED_COMPONENTS); + CharSequence lab = getActivity().getPackageManager().getApplicationLabel(ai); + label = lab != null ? lab.toString() : mDebugApp; + } catch (PackageManager.NameNotFoundException e) { + label = mDebugApp; + } + mDebugAppPref.setSummary(getResources().getString(R.string.debug_app_set, label)); + mWaitForDebugger.setEnabled(true); + } else { + mDebugAppPref.setSummary(getResources().getString(R.string.debug_app_not_set)); + mWaitForDebugger.setEnabled(false); + } + } + // Returns the current state of the system property that controls // strictmode flashes. One of: // 0: not explicitly set one way or another @@ -576,6 +631,19 @@ public class DevelopmentSettings extends PreferenceFragment } @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == RESULT_DEBUG_APP) { + if (resultCode == Activity.RESULT_OK) { + mDebugApp = data.getAction(); + writeDebuggerOptions(); + updateDebuggerOptions(); + } + } else { + super.onActivityResult(requestCode, resultCode, data); + } + } + + @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { if (Utils.isMonkeyRunning()) { @@ -607,6 +675,10 @@ public class DevelopmentSettings extends PreferenceFragment Settings.Secure.putInt(getActivity().getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION, mAllowMockLocation.isChecked() ? 1 : 0); + } else if (preference == mDebugAppPref) { + startActivityForResult(new Intent(getActivity(), AppPicker.class), RESULT_DEBUG_APP); + } else if (preference == mWaitForDebugger) { + writeDebuggerOptions(); } else if (preference == mStrictMode) { writeStrictModeVisualOptions(); } else if (preference == mPointerLocation) { |