From 7f4ae330e9ce450c266209b9d2a9751744637c90 Mon Sep 17 00:00:00 2001 From: Bryce Lee Date: Thu, 28 Sep 2017 16:07:13 -0700 Subject: [PATCH] Add back developer option for freeform window support. Bug: 64144308 Test: manual Change-Id: I9eb28b03ebed17528d469d0c1fcdf3a6d0094a37 --- res/xml/development_prefs.xml | 5 ++++ .../development/DevelopmentSettings.java | 30 ++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml index 783643d0e38..af240562768 100644 --- a/res/xml/development_prefs.xml +++ b/res/xml/development_prefs.xml @@ -467,6 +467,11 @@ android:title="@string/force_resizable_activities" android:summary="@string/force_resizable_activities_summary"/> + + diff --git a/src/com/android/settings/development/DevelopmentSettings.java b/src/com/android/settings/development/DevelopmentSettings.java index 84c27e1df5f..588c02447f1 100644 --- a/src/com/android/settings/development/DevelopmentSettings.java +++ b/src/com/android/settings/development/DevelopmentSettings.java @@ -167,6 +167,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment private static final String TETHERING_HARDWARE_OFFLOAD = "tethering_hardware_offload"; private static final String KEY_COLOR_MODE = "picture_color_mode"; private static final String FORCE_RESIZABLE_KEY = "force_resizable_activities"; + private static final String ENABLE_FREEFORM_SUPPORT_KEY = "enable_freeform_support"; private static final String COLOR_TEMPERATURE_KEY = "color_temperature"; private static final String BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_KEY = @@ -312,6 +313,8 @@ public class DevelopmentSettings extends RestrictedSettingsFragment private SwitchPreference mForceResizable; + private SwitchPreference mEnableFreeformSupport; + private SwitchPreference mColorTemperaturePreference; private final ArrayList mAllPrefs = new ArrayList<>(); @@ -495,6 +498,8 @@ public class DevelopmentSettings extends RestrictedSettingsFragment mSimulateColorSpace = addListPreference(SIMULATE_COLOR_SPACE); mUSBAudio = findAndInitSwitchPref(USB_AUDIO_KEY); mForceResizable = findAndInitSwitchPref(FORCE_RESIZABLE_KEY); + mEnableFreeformSupport = findAndInitSwitchPref(ENABLE_FREEFORM_SUPPORT_KEY); + removePreferenceForProduction(mEnableFreeformSupport); mImmediatelyDestroyActivities = (SwitchPreference) findPreference( IMMEDIATELY_DESTROY_ACTIVITIES_KEY); @@ -612,7 +617,16 @@ public class DevelopmentSettings extends RestrictedSettingsFragment } private void removePreference(Preference preference) { - getPreferenceScreen().removePreference(preference); + if (preference == null) { + return; + } + + final PreferenceGroup parent = preference.getParent(); + + if (parent != null) { + parent.removePreference(preference); + } + mAllPrefs.remove(preference); mResetSwitchPrefs.remove(preference); } @@ -823,6 +837,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment updateSimulateColorSpace(); updateUSBAudioOptions(); updateForceResizableOptions(); + updateEnableFreeformWindowsSupportOptions(); Preference webViewAppPref = findPreference(mWebViewAppPrefController.getPreferenceKey()); mWebViewAppPrefController.updateState(webViewAppPref); updateOemUnlockOptions(); @@ -1421,6 +1436,17 @@ public class DevelopmentSettings extends RestrictedSettingsFragment mForceResizable.isChecked() ? 1 : 0); } + private void updateEnableFreeformWindowsSupportOptions() { + updateSwitchPreference(mEnableFreeformSupport, Settings.Global.getInt(getContentResolver(), + Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, 0) != 0); + } + + private void writeEnableFreeformWindowsSupportOptions() { + Settings.Global.putInt(getContentResolver(), + Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, + mEnableFreeformSupport.isChecked() ? 1 : 0); + } + private void updateForceRtlOptions() { updateSwitchPreference(mForceRtlLayout, Settings.Global.getInt(getActivity().getContentResolver(), @@ -2329,6 +2355,8 @@ public class DevelopmentSettings extends RestrictedSettingsFragment writeUSBAudioOptions(); } else if (preference == mForceResizable) { writeForceResizableOptions(); + } else if (preference == mEnableFreeformSupport){ + writeEnableFreeformWindowsSupportOptions(); } else if (preference == mBluetoothShowDevicesWithoutNames) { writeBluetoothShowDevicesWithoutUserFriendlyNameOptions(); } else if (preference == mBluetoothDisableAbsVolume) {