From 2c88a877f88b142fa8fd36c1773ab484b5fd7338 Mon Sep 17 00:00:00 2001 From: Gilles Debunne Date: Tue, 21 Jun 2011 12:47:17 -0700 Subject: [PATCH] Refactoring in Settings/Applications Battery, Development moved to main menu. Unknown sources moved to Security. Main menu links directly to ManageApplications. ApplicationSettings was kept in case an other app referenced it. Change-Id: I0271d4222cfc192f9235f21e06bf3b56f77db1a4 --- res/drawable-hdpi/ic_settings_battery.png | Bin 0 -> 775 bytes res/drawable-hdpi/ic_settings_development.png | Bin 0 -> 775 bytes res/drawable-mdpi/ic_settings_battery.png | Bin 0 -> 643 bytes res/drawable-mdpi/ic_settings_development.png | Bin 0 -> 643 bytes res/values/strings.xml | 12 ++-- res/xml/application_settings.xml | 28 ++------ res/xml/security_settings_misc.xml | 9 +++ res/xml/settings_headers.xml | 30 ++++++--- .../android/settings/ApplicationSettings.java | 62 +----------------- .../android/settings/SecuritySettings.java | 56 +++++++++++++++- 10 files changed, 102 insertions(+), 95 deletions(-) create mode 100755 res/drawable-hdpi/ic_settings_battery.png create mode 100755 res/drawable-hdpi/ic_settings_development.png create mode 100644 res/drawable-mdpi/ic_settings_battery.png create mode 100644 res/drawable-mdpi/ic_settings_development.png diff --git a/res/drawable-hdpi/ic_settings_battery.png b/res/drawable-hdpi/ic_settings_battery.png new file mode 100755 index 0000000000000000000000000000000000000000..e3b0fb3f7c1b1cfc495b26f71dc73231b997b1d0 GIT binary patch literal 775 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}trX+877l!}s{b%+Ad7K3vk;OpT z1B~5HX4`=T%L*LRfizez!?|}o;XrNto-U3d5r^MS-8H`Rz1Os)UJuF~hpuag7bJWwAW*Hy?=_u&?_m^Ocby z$?o%n9?Aa3V82H7H^xu-IoWNL)TNkaeCQNE^YehQf&#<5&wacJ&H8(uh;Q^)$YSic z!s)-_Qre?CLWTkh6dOLNoC;nMv~)p%?bdsD85PQJN~OKNxan(J#&0pzBN9Q&4u~-X z2k~$k8X6`}w-9^5CArXiQr)TxoqZ~@uOlu^^b2{h-6-{!V&?g9_KQiC3`{z#21h4M zVw%kmQ&1REo6q97xTYnwJ-XnTL+JbyKg%o|G>;dT&Dhv`M~YeE`ltBaB`l1r<~N=P z&7H7UH$!IcS=VQ4r`{7T$lHF6QQ*V8e%VtS_zxuLv`L!(bX$J>;3S67S&~1a7``5} zf8aHD$!Zn`!AElb?dqAr2N=SCes7AmWH`0`?X62&x{_GUb_BT}kYc>6z2kYhH_wx` zJ5xG;*MxFduuSrcu6Qv!#zWlUM6BNSBMM6UKF?ZnoZrLTdiP)NKMgx>AL{#2!#c0e zY}WCAOvZ7i9(^*=*$zx6swJ)wB`Jv|saDBFsX&Us$iUE0*T7KM$Rfnh%*xon%GgZT zz{1MFz+Fu=4n;$5eoAIqC7K2!ODh9Yh=wigF4KS-BtbR==ckpFCl;kLIHu$$r7C#l cCZ?wbr6#6S7M@JC0V-nfboFyt=akR{0N*h%5C8xG literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_settings_development.png b/res/drawable-hdpi/ic_settings_development.png new file mode 100755 index 0000000000000000000000000000000000000000..e3b0fb3f7c1b1cfc495b26f71dc73231b997b1d0 GIT binary patch literal 775 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}trX+877l!}s{b%+Ad7K3vk;OpT z1B~5HX4`=T%L*LRfizez!?|}o;XrNto-U3d5r^MS-8H`Rz1Os)UJuF~hpuag7bJWwAW*Hy?=_u&?_m^Ocby z$?o%n9?Aa3V82H7H^xu-IoWNL)TNkaeCQNE^YehQf&#<5&wacJ&H8(uh;Q^)$YSic z!s)-_Qre?CLWTkh6dOLNoC;nMv~)p%?bdsD85PQJN~OKNxan(J#&0pzBN9Q&4u~-X z2k~$k8X6`}w-9^5CArXiQr)TxoqZ~@uOlu^^b2{h-6-{!V&?g9_KQiC3`{z#21h4M zVw%kmQ&1REo6q97xTYnwJ-XnTL+JbyKg%o|G>;dT&Dhv`M~YeE`ltBaB`l1r<~N=P z&7H7UH$!IcS=VQ4r`{7T$lHF6QQ*V8e%VtS_zxuLv`L!(bX$J>;3S67S&~1a7``5} zf8aHD$!Zn`!AElb?dqAr2N=SCes7AmWH`0`?X62&x{_GUb_BT}kYc>6z2kYhH_wx` zJ5xG;*MxFduuSrcu6Qv!#zWlUM6BNSBMM6UKF?ZnoZrLTdiP)NKMgx>AL{#2!#c0e zY}WCAOvZ7i9(^*=*$zx6swJ)wB`Jv|saDBFsX&Us$iUE0*T7KM$Rfnh%*xon%GgZT zz{1MFz+Fu=4n;$5eoAIqC7K2!ODh9Yh=wigF4KS-BtbR==ckpFCl;kLIHu$$r7C#l cCZ?wbr6#6S7M@JC0V-nfboFyt=akR{0N*h%5C8xG literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_settings_battery.png b/res/drawable-mdpi/ic_settings_battery.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f478bd7cccd5f20a9ff7a9e4e54f9e45467757 GIT binary patch literal 643 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8!2v z2N=7Z%(epwmK8Xr18D^?ZvQoBE&~H&x2KC^h{y4}SNCUyIEt`+xPNDF;avfNSi$C; z)pwJU9}D03sqjiTB7!4HvuveK4XdMIPKyJVwzOhLMyjM|NA{ljzOzz0?%X`DGfZsvcd*f`{IPW<@QW@3wP@Iu2adGX244=*&zPGo-f zM$olGTrkk}$o3nZ9UbRC+9@gJwMvv2pOSOy{v5YEEBxg`-Rf<%1?NvpwR^rN!nnWo z%L)GE_cmJ}Ha(Avdf)zxkxTjH2?vX0jh4;VijM1VW=K>!6O!d#mle9AXyMA)?J9dr zO*X!s<*&9+%34Hk=lhvPSGgr*mQO!7Gb{Izk=lYVtEg264QHw^)ACd{ak7?=d~GC= zVN>9q%-j6a$NR~-9qV70ec`;u%8~PPQH;wE7T%!MUrtGfvA@U)SaG+cy6)R$(ryx_CAV{jL?e`+81GcV5cv z6(8t)x7$D3!r6B|j-u!8128JvAsbF{QHbWU38N5re0zpUXO@geCxw=m0qY literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_settings_development.png b/res/drawable-mdpi/ic_settings_development.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f478bd7cccd5f20a9ff7a9e4e54f9e45467757 GIT binary patch literal 643 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8!2v z2N=7Z%(epwmK8Xr18D^?ZvQoBE&~H&x2KC^h{y4}SNCUyIEt`+xPNDF;avfNSi$C; z)pwJU9}D03sqjiTB7!4HvuveK4XdMIPKyJVwzOhLMyjM|NA{ljzOzz0?%X`DGfZsvcd*f`{IPW<@QW@3wP@Iu2adGX244=*&zPGo-f zM$olGTrkk}$o3nZ9UbRC+9@gJwMvv2pOSOy{v5YEEBxg`-Rf<%1?NvpwR^rN!nnWo z%L)GE_cmJ}Ha(Avdf)zxkxTjH2?vX0jh4;VijM1VW=K>!6O!d#mle9AXyMA)?J9dr zO*X!s<*&9+%34Hk=lhvPSGgr*mQO!7Gb{Izk=lYVtEg264QHw^)ACd{ak7?=d~GC= zVN>9q%-j6a$NR~-9qV70ec`;u%8~PPQH;wE7T%!MUrtGfvA@U)SaG+cy6)R$(ryx_CAV{jL?e`+81GcV5cv z6(8t)x7$D3!r6B|j-u!8128JvAsbF{QHbWU38N5re0zpUXO@geCxw=m0qY literal 0 HcmV?d00001 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);