From 6060bc66e5a15bbce6b7a53e647f17f71d9de7e0 Mon Sep 17 00:00:00 2001 From: hughchen Date: Fri, 8 May 2020 15:10:14 +0800 Subject: [PATCH] Add low battery level for case - Add low battery level for case, because case and headset have different low battery level. - Update test case Bug: 154569936 Test: make -j42 RunSettingsRoboTests Change-Id: Icf045b62992dde8d789e66343764849e43df1933 --- .../AdvancedBluetoothDetailsHeaderController.java | 11 ++++++++--- .../AdvancedBluetoothDetailsHeaderControllerTest.java | 8 +++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java index a86b441c3b1..a147656f6c2 100644 --- a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java +++ b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java @@ -63,6 +63,7 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont LifecycleObserver, OnStart, OnStop, OnDestroy, CachedBluetoothDevice.Callback { private static final String TAG = "AdvancedBtHeaderCtrl"; private static final int LOW_BATTERY_LEVEL = 15; + private static final int CASE_LOW_BATTERY_LEVEL = 19; private static final boolean DBG = Log.isLoggable(TAG, Log.DEBUG); @VisibleForTesting @@ -226,7 +227,7 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont final TextView textView = linearLayout.findViewById(R.id.bt_battery_summary); textView.setText(com.android.settings.Utils.formatPercentage(batteryLevel)); textView.setVisibility(View.VISIBLE); - showBatteryIcon(linearLayout, batteryLevel, charging); + showBatteryIcon(linearLayout, batteryLevel, charging, batteryMetaKey); } else { // Hide it if it doesn't have battery information linearLayout.setVisibility(View.GONE); @@ -237,8 +238,12 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont textView.setVisibility(View.VISIBLE); } - private void showBatteryIcon(LinearLayout linearLayout, int level, boolean charging) { - boolean enableLowBattery = level <= LOW_BATTERY_LEVEL && !charging; + private void showBatteryIcon(LinearLayout linearLayout, int level, boolean charging, + int batteryMetaKey) { + final int lowBatteryLevel = + batteryMetaKey == BluetoothDevice.METADATA_UNTETHERED_CASE_BATTERY + ? CASE_LOW_BATTERY_LEVEL : LOW_BATTERY_LEVEL; + final boolean enableLowBattery = level <= lowBatteryLevel && !charging; final ImageView imageView = linearLayout.findViewById(R.id.bt_battery_icon); if (enableLowBattery) { imageView.setImageDrawable(mContext.getDrawable(R.drawable.ic_battery_alert_24dp)); diff --git a/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java index 5097938f2ee..5c4e03d8238 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java @@ -59,7 +59,8 @@ public class AdvancedBluetoothDetailsHeaderControllerTest { private static final int BATTERY_LEVEL_MAIN = 30; private static final int BATTERY_LEVEL_LEFT = 25; private static final int BATTERY_LEVEL_RIGHT = 45; - private static final int LOW_BATTERY_LEVEL = 5; + private static final int LOW_BATTERY_LEVEL = 15; + private static final int CASE_LOW_BATTERY_LEVEL = 19; private static final String ICON_URI = "content://test.provider/icon.png"; private static final String MAC_ADDRESS = "04:52:C7:0B:D8:3C"; @@ -156,7 +157,7 @@ public class AdvancedBluetoothDetailsHeaderControllerTest { String.valueOf(LOW_BATTERY_LEVEL).getBytes()); when(mBluetoothDevice.getMetadata( BluetoothDevice.METADATA_UNTETHERED_CASE_BATTERY)).thenReturn( - String.valueOf(BATTERY_LEVEL_MAIN).getBytes()); + String.valueOf(CASE_LOW_BATTERY_LEVEL).getBytes()); when(mBluetoothDevice.getMetadata( BluetoothDevice.METADATA_UNTETHERED_LEFT_CHARGING)).thenReturn( String.valueOf(false).getBytes()); @@ -173,7 +174,8 @@ public class AdvancedBluetoothDetailsHeaderControllerTest { assertBatteryIcon(mLayoutPreference.findViewById(R.id.layout_left), R.drawable.ic_battery_alert_24dp); assertBatteryIcon(mLayoutPreference.findViewById(R.id.layout_right), /* resId= */-1); - assertBatteryIcon(mLayoutPreference.findViewById(R.id.layout_middle), /* resId= */ -1); + assertBatteryIcon(mLayoutPreference.findViewById(R.id.layout_middle), + R.drawable.ic_battery_alert_24dp); } @Test