From b6b29c1af0e4bd61e070b310e4c781c54ecd2d7a Mon Sep 17 00:00:00 2001 From: timhypeng Date: Thu, 14 Nov 2019 10:53:32 +0800 Subject: [PATCH 1/3] Battery icon is too large -sync layout from SystemUI Bug: 141139595 Test: make -j42 RunSettingsRoboTests Change-Id: I5e165e953682fcfdebf0d06475bb1abd171684d9 (cherry picked from commit c71f996da97a520a90afbccac4eb4d4d16435bec) Merged-In: I5e165e953682fcfdebf0d06475bb1abd171684d9 --- res/layout/advanced_bt_entity_sub.xml | 5 +++-- res/values/dimens.xml | 7 +++++++ .../AdvancedBluetoothDetailsHeaderController.java | 15 +++++++++++---- .../settings/fuelgauge/BatteryMeterView.java | 7 +++++++ 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/res/layout/advanced_bt_entity_sub.xml b/res/layout/advanced_bt_entity_sub.xml index 0f305830bdf..f36379aa2dc 100644 --- a/res/layout/advanced_bt_entity_sub.xml +++ b/res/layout/advanced_bt_entity_sub.xml @@ -51,8 +51,9 @@ android:orientation="horizontal"> + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center"/> 320dp + + + 16sp + + + 7.5dp + 13dp diff --git a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java index 6817d0d3ee3..86196fd0584 100644 --- a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java +++ b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java @@ -60,6 +60,7 @@ import java.util.Map; public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceController implements LifecycleObserver, OnStart, OnStop, OnDestroy, CachedBluetoothDevice.Callback { private static final String TAG = "AdvancedBtHeaderCtrl"; + private static final int LOW_BATTERY_LEVEL = 20; @VisibleForTesting LayoutPreference mLayoutPreference; @@ -180,12 +181,18 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont Drawable createBtBatteryIcon(Context context, int level, boolean charging) { final BatteryMeterView.BatteryMeterDrawable drawable = new BatteryMeterView.BatteryMeterDrawable(context, - context.getColor(R.color.meter_background_color)); + context.getColor(R.color.meter_background_color), + context.getResources().getDimensionPixelSize( + R.dimen.advanced_bluetooth_battery_meter_width), + context.getResources().getDimensionPixelSize( + R.dimen.advanced_bluetooth_battery_meter_height)); drawable.setBatteryLevel(level); + final int attr = level > LOW_BATTERY_LEVEL || charging + ? android.R.attr.colorControlNormal + : android.R.attr.colorError; drawable.setColorFilter(new PorterDuffColorFilter( - com.android.settings.Utils.getColorAttrDefaultColor(context, - android.R.attr.colorControlNormal), - PorterDuff.Mode.SRC_IN)); + com.android.settings.Utils.getColorAttrDefaultColor(context, attr), + PorterDuff.Mode.SRC)); drawable.setCharging(charging); return drawable; diff --git a/src/com/android/settings/fuelgauge/BatteryMeterView.java b/src/com/android/settings/fuelgauge/BatteryMeterView.java index dc30c28ace9..d54f5a4e2e0 100644 --- a/src/com/android/settings/fuelgauge/BatteryMeterView.java +++ b/src/com/android/settings/fuelgauge/BatteryMeterView.java @@ -117,6 +117,13 @@ public class BatteryMeterView extends ImageView { .getDimensionPixelSize(R.dimen.battery_meter_height); } + public BatteryMeterDrawable(Context context, int frameColor, int width, int height) { + super(context, frameColor); + + mIntrinsicWidth = width; + mIntrinsicHeight = height; + } + @Override public int getIntrinsicWidth() { return mIntrinsicWidth; From 953eb229c016a70010b25c09fd68db3a5193b6c7 Mon Sep 17 00:00:00 2001 From: timhypeng Date: Fri, 15 Nov 2019 12:01:26 +0800 Subject: [PATCH 2/3] Sync dimen from SystemUI Bug: 141139595 Test: manual Change-Id: Ifa9a31750b9a926e09aec9262aa89e8de66c91e2 (cherry picked from commit 3dd4f2cc19f4390db253e121a24157d4169b3a7a) Merged-In: Ifa9a31750b9a926e09aec9262aa89e8de66c91e2 --- res/values/dimens.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 042d2f4c930..31a159220e8 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -419,6 +419,6 @@ 16sp - 7.5dp + 7.8dp 13dp From 1de3feb0263a77f7ea54e0822b1ac62b33f8a7ea Mon Sep 17 00:00:00 2001 From: Ilya Matyukhin Date: Mon, 25 Nov 2019 17:01:22 -0800 Subject: [PATCH 3/3] Fix "Skip lock screen" not working for secondary user Bug: 140878309 Test: the option is not grayed out for secondary user. Change-Id: I2413aa3c634e89a90d104e9ad60df15e49c75ed2 (cherry picked from commit e17caeea3f633d60f1f8e0e2f5b8857c62f3e320) --- src/com/android/settings/biometrics/face/FaceSettings.java | 4 ++++ .../FaceSettingsLockscreenBypassPreferenceController.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java index 902d9a1556f..9c424672c6a 100644 --- a/src/com/android/settings/biometrics/face/FaceSettings.java +++ b/src/com/android/settings/biometrics/face/FaceSettings.java @@ -142,6 +142,8 @@ public class FaceSettings extends DashboardFragment { ((FaceSettingsPreferenceController) controller).setUserId(mUserId); } else if (controller instanceof FaceSettingsEnrollButtonPreferenceController) { ((FaceSettingsEnrollButtonPreferenceController) controller).setUserId(mUserId); + } else if (controller instanceof FaceSettingsLockscreenBypassPreferenceController) { + ((FaceSettingsLockscreenBypassPreferenceController) controller).setUserId(mUserId); } } mRemoveController.setUserId(mUserId); @@ -149,6 +151,7 @@ public class FaceSettings extends DashboardFragment { // Don't show keyguard controller for work profile settings. if (mUserManager.isManagedProfile(mUserId)) { removePreference(FaceSettingsKeyguardPreferenceController.KEY); + removePreference(FaceSettingsLockscreenBypassPreferenceController.KEY); } if (savedInstanceState != null) { @@ -260,6 +263,7 @@ public class FaceSettings extends DashboardFragment { final List controllers = new ArrayList<>(); controllers.add(new FaceSettingsVideoPreferenceController(context)); controllers.add(new FaceSettingsKeyguardPreferenceController(context)); + controllers.add(new FaceSettingsLockscreenBypassPreferenceController(context)); controllers.add(new FaceSettingsAppPreferenceController(context)); controllers.add(new FaceSettingsAttentionPreferenceController(context)); controllers.add(new FaceSettingsRemoveButtonPreferenceController(context)); diff --git a/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java index e717cb2008b..44165b8211a 100644 --- a/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java @@ -36,6 +36,10 @@ public class FaceSettingsLockscreenBypassPreferenceController protected FaceManager mFaceManager; private UserManager mUserManager; + public FaceSettingsLockscreenBypassPreferenceController(Context context) { + this(context, KEY); + } + public FaceSettingsLockscreenBypassPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FACE)) {