summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/settings/DevelopmentSettings.java36
-rw-r--r--src/com/android/settings/KeyguardAppWidgetPickActivity.java4
2 files changed, 34 insertions, 6 deletions
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index d540195..03143b4 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -34,6 +34,7 @@ import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.hardware.usb.IUsbManager;
import android.os.AsyncTask;
@@ -89,6 +90,7 @@ public class DevelopmentSettings extends PreferenceFragment
private static final String ENABLE_ADB = "enable_adb";
private static final String CLEAR_ADB_KEYS = "clear_adb_keys";
+ private static final String ENABLE_TERMINAL = "enable_terminal";
private static final String KEEP_SCREEN_ON = "keep_screen_on";
private static final String ALLOW_MOCK_LOCATION = "allow_mock_location";
private static final String HDCP_CHECKING_KEY = "hdcp_checking";
@@ -137,6 +139,8 @@ public class DevelopmentSettings extends PreferenceFragment
private static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive";
+ private static final String TERMINAL_APP_PACKAGE = "com.android.terminal";
+
private static final int RESULT_DEBUG_APP = 1000;
private IWindowManager mWindowManager;
@@ -150,6 +154,7 @@ public class DevelopmentSettings extends PreferenceFragment
private CheckBoxPreference mEnableAdb;
private Preference mClearAdbKeys;
+ private CheckBoxPreference mEnableTerminal;
private Preference mBugreport;
private CheckBoxPreference mBugreportInPower;
private CheckBoxPreference mKeepScreenOn;
@@ -211,15 +216,21 @@ public class DevelopmentSettings extends PreferenceFragment
addPreferencesFromResource(R.xml.development_prefs);
+ final PreferenceGroup debugDebuggingCategory = (PreferenceGroup)
+ findPreference(DEBUG_DEBUGGING_CATEGORY_KEY);
+
mEnableAdb = findAndInitCheckboxPref(ENABLE_ADB);
mClearAdbKeys = findPreference(CLEAR_ADB_KEYS);
if (!SystemProperties.getBoolean("ro.adb.secure", false)) {
- PreferenceGroup debugDebuggingCategory = (PreferenceGroup)
- findPreference(DEBUG_DEBUGGING_CATEGORY_KEY);
if (debugDebuggingCategory != null) {
debugDebuggingCategory.removePreference(mClearAdbKeys);
}
}
+ mEnableTerminal = findAndInitCheckboxPref(ENABLE_TERMINAL);
+ if (!isPackageInstalled(getActivity(), TERMINAL_APP_PACKAGE)) {
+ debugDebuggingCategory.removePreference(mEnableTerminal);
+ mEnableTerminal = null;
+ }
mBugreport = findPreference(BUGREPORT);
mBugreportInPower = findAndInitCheckboxPref(BUGREPORT_IN_POWER_KEY);
@@ -232,6 +243,7 @@ public class DevelopmentSettings extends PreferenceFragment
if (!android.os.Process.myUserHandle().equals(UserHandle.OWNER)) {
disableForUser(mEnableAdb);
disableForUser(mClearAdbKeys);
+ disableForUser(mEnableTerminal);
disableForUser(mPassword);
}
@@ -240,8 +252,6 @@ public class DevelopmentSettings extends PreferenceFragment
mWaitForDebugger = findAndInitCheckboxPref(WAIT_FOR_DEBUGGER_KEY);
mVerifyAppsOverUsb = findAndInitCheckboxPref(VERIFY_APPS_OVER_USB_KEY);
if (!showVerifierSetting()) {
- PreferenceGroup debugDebuggingCategory = (PreferenceGroup)
- findPreference(DEBUG_DEBUGGING_CATEGORY_KEY);
if (debugDebuggingCategory != null) {
debugDebuggingCategory.removePreference(mVerifyAppsOverUsb);
} else {
@@ -415,6 +425,11 @@ public class DevelopmentSettings extends PreferenceFragment
mHaveDebugSettings = false;
updateCheckBox(mEnableAdb, Settings.Global.getInt(cr,
Settings.Global.ADB_ENABLED, 0) != 0);
+ if (mEnableTerminal != null) {
+ updateCheckBox(mEnableTerminal,
+ context.getPackageManager().getApplicationEnabledSetting(TERMINAL_APP_PACKAGE)
+ == PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+ }
updateCheckBox(mBugreportInPower, Settings.Secure.getInt(cr,
Settings.Secure.BUGREPORT_IN_POWER_MENU, 0) != 0);
updateCheckBox(mKeepScreenOn, Settings.Global.getInt(cr,
@@ -1059,6 +1074,11 @@ public class DevelopmentSettings extends PreferenceFragment
.setPositiveButton(android.R.string.ok, this)
.setNegativeButton(android.R.string.cancel, null)
.show();
+ } else if (preference == mEnableTerminal) {
+ final PackageManager pm = getActivity().getPackageManager();
+ pm.setApplicationEnabledSetting(TERMINAL_APP_PACKAGE,
+ mEnableTerminal.isChecked() ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+ : PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);
} else if (preference == mBugreportInPower) {
Settings.Secure.putInt(getActivity().getContentResolver(),
Settings.Secure.BUGREPORT_IN_POWER_MENU,
@@ -1315,4 +1335,12 @@ public class DevelopmentSettings extends PreferenceFragment
throw new RuntimeException("Problem talking with PackageManager", e);
}
}
+
+ private static boolean isPackageInstalled(Context context, String packageName) {
+ try {
+ return context.getPackageManager().getPackageInfo(packageName, 0) != null;
+ } catch (NameNotFoundException e) {
+ return false;
+ }
+ }
}
diff --git a/src/com/android/settings/KeyguardAppWidgetPickActivity.java b/src/com/android/settings/KeyguardAppWidgetPickActivity.java
index 8e08019..f3db2ca 100644
--- a/src/com/android/settings/KeyguardAppWidgetPickActivity.java
+++ b/src/com/android/settings/KeyguardAppWidgetPickActivity.java
@@ -517,8 +517,8 @@ public class KeyguardAppWidgetPickActivity extends Activity
// Found in KeyguardHostView.java
final int KEYGUARD_HOST_ID = 0x4B455947;
int userId = ActivityManager.getCurrentUser();
- mAppWidgetId = AppWidgetHost.allocateAppWidgetIdForSystem(KEYGUARD_HOST_ID,
- userId);
+ mAppWidgetId = AppWidgetHost.allocateAppWidgetIdForPackage(KEYGUARD_HOST_ID,
+ userId, "com.android.keyguard");
}
mAppWidgetManager.bindAppWidgetId(
mAppWidgetId, intent.getComponent(), mExtraConfigureOptions);