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.8dp
+ 13dp
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)) {
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;