[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
This commit is contained in:
@@ -274,11 +274,14 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont
|
|||||||
showBatteryPredictionIfNecessary(linearLayout, deviceId, batteryLevel);
|
showBatteryPredictionIfNecessary(linearLayout, deviceId, batteryLevel);
|
||||||
}
|
}
|
||||||
final TextView batterySummaryView = linearLayout.findViewById(R.id.bt_battery_summary);
|
final TextView batterySummaryView = linearLayout.findViewById(R.id.bt_battery_summary);
|
||||||
|
if (isUntetheredHeadset(bluetoothDevice)) {
|
||||||
if (batteryLevel != BluetoothUtils.META_INT_ERROR) {
|
if (batteryLevel != BluetoothUtils.META_INT_ERROR) {
|
||||||
linearLayout.setVisibility(View.VISIBLE);
|
linearLayout.setVisibility(View.VISIBLE);
|
||||||
batterySummaryView.setText(com.android.settings.Utils.formatPercentage(batteryLevel));
|
batterySummaryView.setText(
|
||||||
|
com.android.settings.Utils.formatPercentage(batteryLevel));
|
||||||
batterySummaryView.setVisibility(View.VISIBLE);
|
batterySummaryView.setVisibility(View.VISIBLE);
|
||||||
int lowBatteryLevel = BluetoothUtils.getIntMetaData(bluetoothDevice, lowBatteryMetaKey);
|
int lowBatteryLevel = BluetoothUtils.getIntMetaData(bluetoothDevice,
|
||||||
|
lowBatteryMetaKey);
|
||||||
if (lowBatteryLevel == BluetoothUtils.META_INT_ERROR) {
|
if (lowBatteryLevel == BluetoothUtils.META_INT_ERROR) {
|
||||||
if (batteryMetaKey == BluetoothDevice.METADATA_UNTETHERED_CASE_BATTERY) {
|
if (batteryMetaKey == BluetoothDevice.METADATA_UNTETHERED_CASE_BATTERY) {
|
||||||
lowBatteryLevel = CASE_LOW_BATTERY_LEVEL;
|
lowBatteryLevel = CASE_LOW_BATTERY_LEVEL;
|
||||||
@@ -294,7 +297,8 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont
|
|||||||
int level = bluetoothDevice.getBatteryLevel();
|
int level = bluetoothDevice.getBatteryLevel();
|
||||||
if (level != BluetoothDevice.BATTERY_LEVEL_UNKNOWN
|
if (level != BluetoothDevice.BATTERY_LEVEL_UNKNOWN
|
||||||
&& level != BluetoothDevice.BATTERY_LEVEL_BLUETOOTH_OFF) {
|
&& 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);
|
batterySummaryView.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
batterySummaryView.setVisibility(View.GONE);
|
batterySummaryView.setVisibility(View.GONE);
|
||||||
@@ -304,7 +308,9 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont
|
|||||||
linearLayout.setVisibility(View.GONE);
|
linearLayout.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
batterySummaryView.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
final TextView textView = linearLayout.findViewById(R.id.header_title);
|
final TextView textView = linearLayout.findViewById(R.id.header_title);
|
||||||
if (deviceId == MAIN_DEVICE_ID) {
|
if (deviceId == MAIN_DEVICE_ID) {
|
||||||
textView.setVisibility(View.GONE);
|
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,
|
private void showBatteryPredictionIfNecessary(LinearLayout linearLayout, int batteryId,
|
||||||
int batteryLevel) {
|
int batteryLevel) {
|
||||||
ThreadUtils.postOnBackgroundThread(() -> {
|
ThreadUtils.postOnBackgroundThread(() -> {
|
||||||
|
Reference in New Issue
Block a user