From 1bb13694ab230b54f2b8e5d75a753247cf24c1ca Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Tue, 24 Apr 2018 11:31:58 -0700 Subject: [PATCH 1/9] Update brightness percentage display logic to match sysui. The brightness raw value is in linear pace, we need to convert it to gamma space to make it match the way sysui represents the brightness level. Bug: 73810208 Change-Id: Ic4551bbeff4a6af30f7af2871a79a7d797279edb Fixes: 78173473 Test: robotests (cherry picked from commit 1346b066bde27e89f876eca6ada31c63d8ea29d0) --- .../BrightnessLevelPreferenceController.java | 31 ++++++++++++------- ...ightnessLevelPreferenceControllerTest.java | 6 ++-- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/com/android/settings/display/BrightnessLevelPreferenceController.java b/src/com/android/settings/display/BrightnessLevelPreferenceController.java index e0aeda1ad5c..be79f66b556 100644 --- a/src/com/android/settings/display/BrightnessLevelPreferenceController.java +++ b/src/com/android/settings/display/BrightnessLevelPreferenceController.java @@ -13,6 +13,9 @@ */ package com.android.settings.display; +import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MAX; +import static com.android.settingslib.display.BrightnessUtils.convertLinearToGamma; + import android.content.ContentResolver; import android.content.Context; import android.database.ContentObserver; @@ -63,12 +66,12 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr } private ContentObserver mBrightnessObserver = - new ContentObserver(new Handler(Looper.getMainLooper())) { - @Override - public void onChange(boolean selfChange) { - updatedSummary(mPreference); - } - }; + new ContentObserver(new Handler(Looper.getMainLooper())) { + @Override + public void onChange(boolean selfChange) { + updatedSummary(mPreference); + } + }; public BrightnessLevelPreferenceController(Context context, Lifecycle lifecycle) { super(context); @@ -103,6 +106,7 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr public void updateState(Preference preference) { updatedSummary(preference); } + @Override public void onStart() { mContentResolver.registerContentObserver(BRIGHTNESS_URI, false, mBrightnessObserver); @@ -122,15 +126,18 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr } private double getCurrentBrightness() { + final int value; if (isInVrMode()) { - final double value = System.getInt(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR, - mMaxBrightness); - return getPercentage(value, mMinVrBrightness, mMaxVrBrightness); + value = convertLinearToGamma(System.getInt(mContentResolver, + System.SCREEN_BRIGHTNESS_FOR_VR, mMaxBrightness), + mMinVrBrightness, mMaxVrBrightness); } else { - final double value = Settings.System.getInt(mContentResolver, System.SCREEN_BRIGHTNESS, - mMinBrightness); - return getPercentage(value, mMinBrightness, mMaxBrightness); + value = convertLinearToGamma(Settings.System.getInt(mContentResolver, + System.SCREEN_BRIGHTNESS, mMinBrightness), + mMinBrightness, mMaxBrightness); + } + return getPercentage(value, 0, GAMMA_SPACE_MAX); } private double getPercentage(double value, int min, int max) { diff --git a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java index 8980a5034d9..b758531fb49 100644 --- a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java @@ -122,7 +122,7 @@ public class BrightnessLevelPreferenceControllerTest { mController.updateState(mPreference); - verify(mPreference).setSummary("85%"); + verify(mPreference).setSummary("97%"); } @Test @@ -135,7 +135,7 @@ public class BrightnessLevelPreferenceControllerTest { mController.updateState(mPreference); - verify(mPreference).setSummary("31%"); + verify(mPreference).setSummary("78%"); } @Test @@ -148,7 +148,7 @@ public class BrightnessLevelPreferenceControllerTest { mController.updateState(mPreference); - verify(mPreference).setSummary("45%"); + verify(mPreference).setSummary("85%"); } @Test From 90abe9a9eef6afbe5eb822c0c782d5b6340aad36 Mon Sep 17 00:00:00 2001 From: Ian Pedowitz Date: Wed, 25 Apr 2018 21:48:29 +0000 Subject: [PATCH 2/9] Revert "Update brightness percentage display logic to match sysui." This reverts commit 1346b066bde27e89f876eca6ada31c63d8ea29d0. Reason for revert: Broke qt-release. Change-Id: I0b534dee83266f78c4ba8fb119e27754fdac9117 (cherry picked from commit 8194ebf35fa23ad33175706efc99182f07d31b25) --- .../BrightnessLevelPreferenceController.java | 31 +++++++------------ ...ightnessLevelPreferenceControllerTest.java | 6 ++-- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/src/com/android/settings/display/BrightnessLevelPreferenceController.java b/src/com/android/settings/display/BrightnessLevelPreferenceController.java index be79f66b556..e0aeda1ad5c 100644 --- a/src/com/android/settings/display/BrightnessLevelPreferenceController.java +++ b/src/com/android/settings/display/BrightnessLevelPreferenceController.java @@ -13,9 +13,6 @@ */ package com.android.settings.display; -import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MAX; -import static com.android.settingslib.display.BrightnessUtils.convertLinearToGamma; - import android.content.ContentResolver; import android.content.Context; import android.database.ContentObserver; @@ -66,12 +63,12 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr } private ContentObserver mBrightnessObserver = - new ContentObserver(new Handler(Looper.getMainLooper())) { - @Override - public void onChange(boolean selfChange) { - updatedSummary(mPreference); - } - }; + new ContentObserver(new Handler(Looper.getMainLooper())) { + @Override + public void onChange(boolean selfChange) { + updatedSummary(mPreference); + } + }; public BrightnessLevelPreferenceController(Context context, Lifecycle lifecycle) { super(context); @@ -106,7 +103,6 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr public void updateState(Preference preference) { updatedSummary(preference); } - @Override public void onStart() { mContentResolver.registerContentObserver(BRIGHTNESS_URI, false, mBrightnessObserver); @@ -126,18 +122,15 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr } private double getCurrentBrightness() { - final int value; if (isInVrMode()) { - value = convertLinearToGamma(System.getInt(mContentResolver, - System.SCREEN_BRIGHTNESS_FOR_VR, mMaxBrightness), - mMinVrBrightness, mMaxVrBrightness); + final double value = System.getInt(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR, + mMaxBrightness); + return getPercentage(value, mMinVrBrightness, mMaxVrBrightness); } else { - value = convertLinearToGamma(Settings.System.getInt(mContentResolver, - System.SCREEN_BRIGHTNESS, mMinBrightness), - mMinBrightness, mMaxBrightness); - + final double value = Settings.System.getInt(mContentResolver, System.SCREEN_BRIGHTNESS, + mMinBrightness); + return getPercentage(value, mMinBrightness, mMaxBrightness); } - return getPercentage(value, 0, GAMMA_SPACE_MAX); } private double getPercentage(double value, int min, int max) { diff --git a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java index b758531fb49..8980a5034d9 100644 --- a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java @@ -122,7 +122,7 @@ public class BrightnessLevelPreferenceControllerTest { mController.updateState(mPreference); - verify(mPreference).setSummary("97%"); + verify(mPreference).setSummary("85%"); } @Test @@ -135,7 +135,7 @@ public class BrightnessLevelPreferenceControllerTest { mController.updateState(mPreference); - verify(mPreference).setSummary("78%"); + verify(mPreference).setSummary("31%"); } @Test @@ -148,7 +148,7 @@ public class BrightnessLevelPreferenceControllerTest { mController.updateState(mPreference); - verify(mPreference).setSummary("85%"); + verify(mPreference).setSummary("45%"); } @Test From fc542a98eb74d87944c4786849fe3c2116431910 Mon Sep 17 00:00:00 2001 From: Hai Shalom Date: Mon, 12 Nov 2018 11:49:05 -0800 Subject: [PATCH 3/9] Fix Wi-Fi setup in setup wizard Fix Wi-Fi setup in setup wizard; New WPA3/OWE networks added to arrays.xml in an order of security caused a mismatch in the network type index in SUW. Workaround to append the new string instead. Will require additional work. Bug: 119385642 Test: Setup wizard and settings app functional test Change-Id: I6d95213a24de274f686ab372bb5fc69128a07e56 (cherry picked from commit 4864624c3d6a814a222611bad2ea4d3163f9b55a) --- res/values/arrays.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index c3faabad9f9..4bd86dce0d6 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -215,11 +215,11 @@ @string/wifi_security_none - @string/wifi_security_owe @string/wifi_security_wep @string/wifi_security_psk_generic - @string/wifi_security_sae @string/wifi_security_eap + @string/wifi_security_owe + @string/wifi_security_sae @string/wifi_security_eap_suiteb From 00c07460a560d87db5bfb533e6ec1d4b0527676a Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Thu, 6 Dec 2018 12:02:05 -0800 Subject: [PATCH 4/9] Catch error when we fail to get slice icon. Change-Id: Ia8bdf1ef8a090d2f939abf27b2308eafde7d8928 Fixes: 120588243 Test: robotests (cherry picked from commit 69a56b42a1ed4fb8162deebbe5f17278720267f6) --- .../android/settings/slices/SliceBuilderUtils.java | 8 +++++++- .../settings/slices/SliceBuilderUtilsTest.java | 13 +++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java index c16a8ba2c1f..d75eaa2e1a2 100644 --- a/src/com/android/settings/slices/SliceBuilderUtils.java +++ b/src/com/android/settings/slices/SliceBuilderUtils.java @@ -449,6 +449,12 @@ public class SliceBuilderUtils { if (iconResource == 0) { iconResource = R.drawable.ic_settings; } - return IconCompat.createWithResource(context, iconResource); + try { + return IconCompat.createWithResource(context, iconResource); + } catch (Exception e) { + Log.w(TAG, "Falling back to settings icon because there is an error getting slice icon " + + data.getUri(), e); + return IconCompat.createWithResource(context, R.drawable.ic_settings); + } } } diff --git a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java index f9937f4dd5a..821d3830992 100644 --- a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java +++ b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java @@ -505,6 +505,19 @@ public class SliceBuilderUtilsTest { assertThat(actualIconResource).isEqualTo(settingsIcon); } + @Test + public void getSafeIcon_invalidResource_shouldFallbackToSettingsIcon() { + final int settingsIcon = R.drawable.ic_settings; + final int badIcon = 0x12345678; + final SliceData data = getDummyData(TOGGLE_CONTROLLER, SliceData.SliceType.SWITCH, + badIcon); + + final IconCompat actualIcon = SliceBuilderUtils.getSafeIcon(mContext, data); + + final int actualIconResource = actualIcon.toIcon().getResId(); + assertThat(actualIconResource).isEqualTo(settingsIcon); + } + private SliceData getDummyData() { return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE, ICON, IS_DYNAMIC_SUMMARY_ALLOWED); From 6d6df2589b53f4b12370757f7d7e301066b02a6a Mon Sep 17 00:00:00 2001 From: Cn Chen Date: Mon, 10 Dec 2018 07:05:24 +0000 Subject: [PATCH 5/9] Revert "migrate new setupcompat and setupdesign to SetupChooseLockGeneric" This reverts commit 0725bea86e6f7d9de80fad4e3d9c3f6fff338e81. Reason for revert: Settings crash Bug: 120754151 Change-Id: I52f258f7f12d21b8dd16220ba11e50768d0802ee (cherry picked from commit f63eee9f0ae8b13f12d35b21ef5a111770d318a4) --- Android.mk | 2 -- src/com/android/settings/password/SetupChooseLockGeneric.java | 2 +- .../android/settings/utils/SettingsDividerItemDecoration.java | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Android.mk b/Android.mk index 4dedcddb0ea..04749bfa45f 100644 --- a/Android.mk +++ b/Android.mk @@ -30,8 +30,6 @@ LOCAL_STATIC_ANDROID_LIBRARIES := \ androidx.preference_preference \ androidx.recyclerview_recyclerview \ com.google.android.material_material \ - setupcompat \ - setupdesign LOCAL_JAVA_LIBRARIES := \ telephony-common \ diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java index fcffce4d8ce..76001048ace 100644 --- a/src/com/android/settings/password/SetupChooseLockGeneric.java +++ b/src/com/android/settings/password/SetupChooseLockGeneric.java @@ -38,7 +38,7 @@ import com.android.settings.SetupEncryptionInterstitial; import com.android.settings.SetupWizardUtils; import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollFindSensor; import com.android.settings.utils.SettingsDividerItemDecoration; -import com.google.android.setupdesign.GlifPreferenceLayout; +import com.android.setupwizardlib.GlifPreferenceLayout; /** * Setup Wizard's version of ChooseLockGeneric screen. It inherits the logic and basic structure diff --git a/src/com/android/settings/utils/SettingsDividerItemDecoration.java b/src/com/android/settings/utils/SettingsDividerItemDecoration.java index 3d9e9019747..85cd9617b98 100644 --- a/src/com/android/settings/utils/SettingsDividerItemDecoration.java +++ b/src/com/android/settings/utils/SettingsDividerItemDecoration.java @@ -21,7 +21,7 @@ import android.content.Context; import androidx.preference.PreferenceViewHolder; import androidx.recyclerview.widget.RecyclerView; -import com.google.android.setupdesign.DividerItemDecoration; +import com.android.setupwizardlib.DividerItemDecoration; public class SettingsDividerItemDecoration extends DividerItemDecoration { From b429213e00c1db87d762fa9aede4d2597885c677 Mon Sep 17 00:00:00 2001 From: tmfang Date: Mon, 14 Jan 2019 16:47:11 +0800 Subject: [PATCH 6/9] Fix crash on Storage and Privacy page The implementation in PreferenceGroup is changed, contentEquals doesn't accept null value. So, we won't call findPreference when key of controller is null. Test: robotest, maunal test Fixes: 122805831 Change-Id: Ia6df5c536ca5a32448f66b5308e7ec2334f1fe7b (cherry picked from commit 3314cd05d5b97368e7c8f7ea7470f7321fbcdf95) --- src/com/android/settings/dashboard/DashboardFragment.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java index 11858a79b6c..f8740799acc 100644 --- a/src/com/android/settings/dashboard/DashboardFragment.java +++ b/src/com/android/settings/dashboard/DashboardFragment.java @@ -369,6 +369,11 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment mPreferenceControllers.values()) { for (AbstractPreferenceController controller : controllerList) { final String key = controller.getPreferenceKey(); + if(TextUtils.isEmpty(key)) { + Log.d(TAG, String.format("Preference key is %s in Controller %s", + key, controller.getClass().getSimpleName())); + continue; + } final Preference preference = screen.findPreference(key); if (preference != null) { preference.setVisible(visible && controller.isAvailable()); From aaa7aef9845f0012ed6724db6ec718aca2ace10a Mon Sep 17 00:00:00 2001 From: Fabian Kozynski Date: Wed, 10 Apr 2019 15:22:20 -0400 Subject: [PATCH 7/9] Creates user_switcher_enabled setting to match setting When the user enters UserSettings, the switch displays the setting as on, but the setting is not created until the user modifies this for the first time. This change makes sure that the setting is created when the user enters UserSettings for the first time. Fixes: 130270878 Test: manual, switch to second user and observe switcher icons. Change-Id: I30bc5025c178da3668a76c828c34545c1d98b085 (cherry picked from commit a52961d80352fd20edcbb5308c13a7167096c4ac) --- .../android/settings/users/MultiUserSwitchBarController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/com/android/settings/users/MultiUserSwitchBarController.java b/src/com/android/settings/users/MultiUserSwitchBarController.java index 58de14963fa..a5fdf9b3279 100644 --- a/src/com/android/settings/users/MultiUserSwitchBarController.java +++ b/src/com/android/settings/users/MultiUserSwitchBarController.java @@ -52,6 +52,8 @@ public class MultiUserSwitchBarController implements SwitchWidgetController.OnSw mListener = listener; mUserCapabilities = UserCapabilities.create(context); mSwitchBar.setChecked(mUserCapabilities.mUserSwitcherEnabled); + Settings.Global.putInt(mContext.getContentResolver(), + Settings.Global.USER_SWITCHER_ENABLED, mSwitchBar.isChecked() ? 1 : 0); if (mUserCapabilities.mDisallowSwitchUser) { mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal From bd8c560f6c73146d851012c578657b941e5596f9 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Wed, 17 Apr 2019 13:44:03 -0700 Subject: [PATCH 8/9] Tweak enrollment intro layout Bug: 130740447 Test: Builds Change-Id: If3b4ad795588586dcd6fb848bee213df0ae1095e (cherry picked from commit 6deedd0bf32ffe278b76841ee070a9234f361fe0) --- res/layout/face_enroll_introduction.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/res/layout/face_enroll_introduction.xml b/res/layout/face_enroll_introduction.xml index 71a02db58de..900f3781ce1 100644 --- a/res/layout/face_enroll_introduction.xml +++ b/res/layout/face_enroll_introduction.xml @@ -74,14 +74,15 @@ + android:layout_weight="1"/> + android:layout_gravity="center_horizontal|bottom" + android:layout_marginTop="24dp"> Date: Thu, 25 Apr 2019 12:17:26 -0700 Subject: [PATCH 9/9] Check PackageManager before getting system service Fixes: 131285189 Test: manual Change-Id: I17f4db85afc5969c58a0a08667ef05786302712b (cherry picked from commit acc340d615b631391f61d470c2b798aab6188abb) --- .../biometrics/face/FaceSettingsAppPreferenceController.java | 4 +++- .../face/FaceSettingsConfirmPreferenceController.java | 3 ++- .../face/FaceSettingsKeyguardPreferenceController.java | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/biometrics/face/FaceSettingsAppPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsAppPreferenceController.java index 1ffcb4c7da6..70c00e54d28 100644 --- a/src/com/android/settings/biometrics/face/FaceSettingsAppPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceSettingsAppPreferenceController.java @@ -22,6 +22,8 @@ import android.content.Context; import android.hardware.face.FaceManager; import android.provider.Settings; +import com.android.settings.Utils; + import androidx.preference.Preference; /** @@ -40,7 +42,7 @@ public class FaceSettingsAppPreferenceController extends FaceSettingsPreferenceC public FaceSettingsAppPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); - mFaceManager = context.getSystemService(FaceManager.class); + mFaceManager = Utils.getFaceManagerOrNull(context); } public FaceSettingsAppPreferenceController(Context context) { diff --git a/src/com/android/settings/biometrics/face/FaceSettingsConfirmPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsConfirmPreferenceController.java index 7dbe557c36f..c65cd23342e 100644 --- a/src/com/android/settings/biometrics/face/FaceSettingsConfirmPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceSettingsConfirmPreferenceController.java @@ -24,6 +24,7 @@ import android.provider.Settings; import androidx.preference.Preference; +import com.android.settings.Utils; import com.android.settings.core.TogglePreferenceController; /** @@ -46,7 +47,7 @@ public class FaceSettingsConfirmPreferenceController extends FaceSettingsPrefere public FaceSettingsConfirmPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); - mFaceManager = context.getSystemService(FaceManager.class); + mFaceManager = Utils.getFaceManagerOrNull(context); } @Override diff --git a/src/com/android/settings/biometrics/face/FaceSettingsKeyguardPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsKeyguardPreferenceController.java index 92eab850096..c64455af30b 100644 --- a/src/com/android/settings/biometrics/face/FaceSettingsKeyguardPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceSettingsKeyguardPreferenceController.java @@ -26,6 +26,7 @@ import android.provider.Settings; import androidx.preference.Preference; +import com.android.settings.Utils; import com.android.settings.core.TogglePreferenceController; /** @@ -44,7 +45,7 @@ public class FaceSettingsKeyguardPreferenceController extends FaceSettingsPrefer public FaceSettingsKeyguardPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); - mFaceManager = context.getSystemService(FaceManager.class); + mFaceManager = Utils.getFaceManagerOrNull(context); } public FaceSettingsKeyguardPreferenceController(Context context) {