diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0e7ca629610..b777bb2e6af 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7001,6 +7001,9 @@
To apply color change, turn off screen
+
+ Automatic system updates
+
Usage
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 3b3dafeba10..3556843a8d9 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -89,6 +89,10 @@
android:title="@string/color_temperature"
android:summary="@string/color_temperature_desc" />
+
+
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index af38ad09671..f5801adc1d6 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -205,6 +205,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
private static final String KEY_NIGHT_MODE = "night_mode";
private static final String KEY_CONVERT_FBE = "convert_to_file_encryption";
+ private static final String OTA_DISABLE_AUTOMATIC_UPDATE_KEY = "ota_disable_automatic_update";
+
private static final int RESULT_DEBUG_APP = 1000;
private static final int RESULT_MOCK_LOCATION_APP = 1001;
@@ -252,6 +254,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
private SwitchPreference mLegacyDhcpClient;
private SwitchPreference mMobileDataAlwaysOn;
private SwitchPreference mBluetoothDisableAbsVolume;
+ private SwitchPreference mOtaDisableAutomaticUpdate;
private SwitchPreference mWifiAllowScansWithTraffic;
private SwitchPreference mStrictMode;
@@ -465,6 +468,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
removePreference(KEY_CONVERT_FBE);
}
+ mOtaDisableAutomaticUpdate = findAndInitSwitchPref(OTA_DISABLE_AUTOMATIC_UPDATE_KEY);
+
mNightModePreference = (DropDownPreference) findPreference(KEY_NIGHT_MODE);
final UiModeManager uiManager = (UiModeManager) getSystemService(
Context.UI_MODE_SERVICE);
@@ -698,6 +703,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
updateAppProcessLimitOptions();
updateShowAllANRsOptions();
updateVerifyAppsOverUsbOptions();
+ updateOtaDisableAutomaticUpdateOptions();
updateBugreportOptions();
updateForceRtlOptions();
updateLogdSizeValues();
@@ -949,6 +955,24 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
mVerifyAppsOverUsb.isChecked() ? 1 : 0);
}
+ private void updateOtaDisableAutomaticUpdateOptions() {
+ // We use the "disabled status" in code, but show the opposite text
+ // "Automatic system updates" on screen. So a value 0 indicates the
+ // automatic update is enabled.
+ updateSwitchPreference(mOtaDisableAutomaticUpdate, Settings.Global.getInt(
+ getActivity().getContentResolver(),
+ Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, 0) != 1);
+ }
+
+ private void writeOtaDisableAutomaticUpdateOptions() {
+ // We use the "disabled status" in code, but show the opposite text
+ // "Automatic system updates" on screen. So a value 0 indicates the
+ // automatic update is enabled.
+ Settings.Global.putInt(getActivity().getContentResolver(),
+ Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE,
+ mOtaDisableAutomaticUpdate.isChecked() ? 0 : 1);
+ }
+
private boolean enableVerifierSetting() {
final ContentResolver cr = getActivity().getContentResolver();
if (Settings.Global.getInt(cr, Settings.Global.ADB_ENABLED, 0) == 0) {
@@ -1850,6 +1874,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
writeDebuggerOptions();
} else if (preference == mVerifyAppsOverUsb) {
writeVerifyAppsOverUsbOptions();
+ } else if (preference == mOtaDisableAutomaticUpdate) {
+ writeOtaDisableAutomaticUpdateOptions();
} else if (preference == mStrictMode) {
writeStrictModeVisualOptions();
} else if (preference == mPointerLocation) {