summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DevelopmentSettings.java
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2012-02-14 13:25:41 -0800
committerDianne Hackborn <hackbod@google.com>2012-02-14 13:46:27 -0800
commit9244df4c6422931697a0cf6e327b15cd71b6d8c4 (patch)
tree7ed5a0462b6086e0d86d62bf5965cd43b9c64832 /src/com/android/settings/DevelopmentSettings.java
parent31c5ec82021271f2e1745a2de37c543e67dcec17 (diff)
downloadpackages_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.java76
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) {