Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6cbeb65a authored by Tim Peng's avatar Tim Peng
Browse files

[Rohan] Two battery level, but no charging status in Rohan Setting

-show/hide battery information by device type

Bug: 187692468
Test: atest AdvancedBluetoothDetailsHeaderControllerTest

Change-Id: I22b4f2cddaf1143dd48ffec2fa3114d685689633
parent bcc288e8
Loading
Loading
Loading
Loading
+40 −26
Original line number Diff line number Diff line
@@ -274,11 +274,14 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont
            showBatteryPredictionIfNecessary(linearLayout, deviceId, batteryLevel);
        }
        final TextView batterySummaryView = linearLayout.findViewById(R.id.bt_battery_summary);
        if (isUntetheredHeadset(bluetoothDevice)) {
            if (batteryLevel != BluetoothUtils.META_INT_ERROR) {
                linearLayout.setVisibility(View.VISIBLE);
            batterySummaryView.setText(com.android.settings.Utils.formatPercentage(batteryLevel));
                batterySummaryView.setText(
                        com.android.settings.Utils.formatPercentage(batteryLevel));
                batterySummaryView.setVisibility(View.VISIBLE);
            int lowBatteryLevel = BluetoothUtils.getIntMetaData(bluetoothDevice, lowBatteryMetaKey);
                int lowBatteryLevel = BluetoothUtils.getIntMetaData(bluetoothDevice,
                        lowBatteryMetaKey);
                if (lowBatteryLevel == BluetoothUtils.META_INT_ERROR) {
                    if (batteryMetaKey == BluetoothDevice.METADATA_UNTETHERED_CASE_BATTERY) {
                        lowBatteryLevel = CASE_LOW_BATTERY_LEVEL;
@@ -294,7 +297,8 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont
                    int level = bluetoothDevice.getBatteryLevel();
                    if (level != BluetoothDevice.BATTERY_LEVEL_UNKNOWN
                            && level != BluetoothDevice.BATTERY_LEVEL_BLUETOOTH_OFF) {
                    batterySummaryView.setText(com.android.settings.Utils.formatPercentage(level));
                        batterySummaryView.setText(
                                com.android.settings.Utils.formatPercentage(level));
                        batterySummaryView.setVisibility(View.VISIBLE);
                    } else {
                        batterySummaryView.setVisibility(View.GONE);
@@ -304,7 +308,9 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont
                    linearLayout.setVisibility(View.GONE);
                }
            }

        } else {
            batterySummaryView.setVisibility(View.GONE);
        }
        final TextView textView = linearLayout.findViewById(R.id.header_title);
        if (deviceId == MAIN_DEVICE_ID) {
            textView.setVisibility(View.GONE);
@@ -314,6 +320,14 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont
        }
    }

    private boolean isUntetheredHeadset(BluetoothDevice bluetoothDevice) {
        return BluetoothUtils.getBooleanMetaData(bluetoothDevice,
                BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET)
                || TextUtils.equals(BluetoothUtils.getStringMetaData(bluetoothDevice,
                BluetoothDevice.METADATA_DEVICE_TYPE),
                BluetoothDevice.DEVICE_TYPE_UNTETHERED_HEADSET);
    }

    private void showBatteryPredictionIfNecessary(LinearLayout linearLayout, int batteryId,
            int batteryLevel) {
        ThreadUtils.postOnBackgroundThread(() -> {