diff --git a/res/drawable-hdpi/ic_settings_battery.png b/res/drawable-hdpi/ic_settings_battery.png
new file mode 100755
index 00000000000..e3b0fb3f7c1
Binary files /dev/null and b/res/drawable-hdpi/ic_settings_battery.png differ
diff --git a/res/drawable-hdpi/ic_settings_development.png b/res/drawable-hdpi/ic_settings_development.png
new file mode 100755
index 00000000000..e3b0fb3f7c1
Binary files /dev/null and b/res/drawable-hdpi/ic_settings_development.png differ
diff --git a/res/drawable-mdpi/ic_settings_battery.png b/res/drawable-mdpi/ic_settings_battery.png
new file mode 100644
index 00000000000..e1f478bd7cc
Binary files /dev/null and b/res/drawable-mdpi/ic_settings_battery.png differ
diff --git a/res/drawable-mdpi/ic_settings_development.png b/res/drawable-mdpi/ic_settings_development.png
new file mode 100644
index 00000000000..e1f478bd7cc
Binary files /dev/null and b/res/drawable-mdpi/ic_settings_development.png differ
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7d4da0026f2..dc18cfc7101 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1321,7 +1321,7 @@
Sound
- Screen
+ Display
Sound settings
@@ -2668,7 +2668,7 @@ found in the list of installed applications.
- Battery use
+ Battery
What has been using the battery
@@ -3118,11 +3118,11 @@ found in the list of installed applications.
Set behavior when an emergency call is placed
-
-
- Privacy
+
+
+ Backup & reset
- Privacy settings
+ Backup & reset
Backup and restore
diff --git a/res/xml/application_settings.xml b/res/xml/application_settings.xml
index 3ad1e5dbb03..3329662871b 100644
--- a/res/xml/application_settings.xml
+++ b/res/xml/application_settings.xml
@@ -14,6 +14,13 @@
limitations under the License.
-->
+
+
-
-
-
-
-
-->
-
-
-
-
diff --git a/res/xml/security_settings_misc.xml b/res/xml/security_settings_misc.xml
index 95b2aca3643..e996f707010 100644
--- a/res/xml/security_settings_misc.xml
+++ b/res/xml/security_settings_misc.xml
@@ -39,10 +39,19 @@
+
+
+
+
+
+
+
@@ -133,13 +140,6 @@
android:title="@string/security_settings_title"
android:id="@+id/security_settings" />
-
-
-
+
+
+
@@ -172,6 +179,13 @@
android:icon="@drawable/ic_settings_accessibility"
android:title="@string/accessibility_settings" />
+
+
+
0;
- }
-
private String getAppInstallLocation() {
int selectedLocation = Settings.System.getInt(getContentResolver(),
Settings.Secure.DEFAULT_INSTALL_LOCATION, APP_INSTALL_AUTO);
@@ -179,15 +134,4 @@ public class ApplicationSettings extends SettingsPreferenceFragment implements
return APP_INSTALL_AUTO_ID;
}
}
-
- private void warnAppInstallation() {
- // TODO: DialogFragment?
- mWarnInstallApps = new AlertDialog.Builder(getActivity()).setTitle(
- getResources().getString(R.string.error_title))
- .setIcon(com.android.internal.R.drawable.ic_dialog_alert)
- .setMessage(getResources().getString(R.string.install_all_warning))
- .setPositiveButton(android.R.string.yes, this)
- .setNegativeButton(android.R.string.no, null)
- .show();
- }
}
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index fc91e78492f..057e5deb725 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -19,8 +19,10 @@ package com.android.settings;
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
+import android.app.AlertDialog;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Vibrator;
@@ -43,7 +45,7 @@ import java.util.ArrayList;
* Gesture lock pattern settings.
*/
public class SecuritySettings extends SettingsPreferenceFragment
- implements OnPreferenceChangeListener {
+ implements OnPreferenceChangeListener, DialogInterface.OnClickListener {
// Lock Settings
private static final String KEY_UNLOCK_SET_OR_CHANGE = "unlock_set_or_change";
@@ -58,6 +60,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
private static final String KEY_SIM_LOCK = "sim_lock";
private static final String KEY_SHOW_PASSWORD = "show_password";
private static final String KEY_RESET_CREDENTIALS = "reset_credentials";
+ private static final String KEY_TOGGLE_INSTALL_APPLICATIONS = "toggle_install_applications";
DevicePolicyManager mDPM;
@@ -72,6 +75,9 @@ public class SecuritySettings extends SettingsPreferenceFragment
private Preference mResetCredentials;
+ private CheckBoxPreference mToggleAppInstallation;
+ private DialogInterface mWarnInstallApps;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -167,9 +173,50 @@ public class SecuritySettings extends SettingsPreferenceFragment
// Credential storage
mResetCredentials = root.findPreference(KEY_RESET_CREDENTIALS);
+ mToggleAppInstallation = (CheckBoxPreference) findPreference(
+ KEY_TOGGLE_INSTALL_APPLICATIONS);
+ mToggleAppInstallation.setChecked(isNonMarketAppsAllowed());
+
return root;
}
+ private boolean isNonMarketAppsAllowed() {
+ return Settings.Secure.getInt(getContentResolver(),
+ Settings.Secure.INSTALL_NON_MARKET_APPS, 0) > 0;
+ }
+
+ private void setNonMarketAppsAllowed(boolean enabled) {
+ // Change the system setting
+ Settings.Secure.putInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS,
+ enabled ? 1 : 0);
+ }
+
+ private void warnAppInstallation() {
+ // TODO: DialogFragment?
+ mWarnInstallApps = new AlertDialog.Builder(getActivity()).setTitle(
+ getResources().getString(R.string.error_title))
+ .setIcon(com.android.internal.R.drawable.ic_dialog_alert)
+ .setMessage(getResources().getString(R.string.install_all_warning))
+ .setPositiveButton(android.R.string.yes, this)
+ .setNegativeButton(android.R.string.no, null)
+ .show();
+ }
+
+ public void onClick(DialogInterface dialog, int which) {
+ if (dialog == mWarnInstallApps && which == DialogInterface.BUTTON_POSITIVE) {
+ setNonMarketAppsAllowed(true);
+ mToggleAppInstallation.setChecked(true);
+ }
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ if (mWarnInstallApps != null) {
+ mWarnInstallApps.dismiss();
+ }
+ }
+
private void setupLockAfterPreference() {
// Compatible with pre-Froyo
long currentTimeout = Settings.Secure.getLong(getContentResolver(),
@@ -272,6 +319,13 @@ public class SecuritySettings extends SettingsPreferenceFragment
} else if (preference == mShowPassword) {
Settings.System.putInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD,
mShowPassword.isChecked() ? 1 : 0);
+ } else if (preference == mToggleAppInstallation) {
+ if (mToggleAppInstallation.isChecked()) {
+ mToggleAppInstallation.setChecked(false);
+ warnAppInstallation();
+ } else {
+ setNonMarketAppsAllowed(false);
+ }
} else {
// If we didn't handle it, let preferences handle it.
return super.onPreferenceTreeClick(preferenceScreen, preference);