Merge "Add error code for BluetoothDevice#getBatteryLevel to represent Bluetooth is off" into rvc-dev am: 23ad582c18

Change-Id: Ic00149f1bf47843999fd142cc99be6c65a369d67
This commit is contained in:
TreeHugger Robot
2020-03-20 13:01:19 +00:00
committed by Automerger Merge Worker
3 changed files with 32 additions and 20 deletions

View File

@@ -230,6 +230,13 @@ public final class BluetoothDevice implements Parcelable {
*/ */
public static final int BATTERY_LEVEL_UNKNOWN = -1; public static final int BATTERY_LEVEL_UNKNOWN = -1;
/**
* Used as an error value for {@link #getBatteryLevel()} to represent bluetooth is off
*
* @hide
*/
public static final int BATTERY_LEVEL_BLUETOOTH_OFF = -100;
/** /**
* Used as a Parcelable {@link BluetoothDevice} extra field in every intent * Used as a Parcelable {@link BluetoothDevice} extra field in every intent
* broadcast by this class. It contains the {@link BluetoothDevice} that * broadcast by this class. It contains the {@link BluetoothDevice} that
@@ -1112,9 +1119,9 @@ public final class BluetoothDevice implements Parcelable {
/** /**
* Get the most recent identified battery level of this Bluetooth device * Get the most recent identified battery level of this Bluetooth device
* *
* @return Battery level in percents from 0 to 100, or {@link #BATTERY_LEVEL_UNKNOWN} if * @return Battery level in percents from 0 to 100, {@link #BATTERY_LEVEL_BLUETOOTH_OFF} if
* Bluetooth is disabled, or device is disconnected, or does not have any battery reporting * Bluetooth is disabled or {@link #BATTERY_LEVEL_UNKNOWN} if device is disconnected, or does
* service, or return value is invalid * not have any battery reporting service, or return value is invalid
* @hide * @hide
*/ */
@SystemApi @SystemApi
@@ -1123,7 +1130,7 @@ public final class BluetoothDevice implements Parcelable {
final IBluetooth service = sService; final IBluetooth service = sService;
if (service == null) { if (service == null) {
Log.e(TAG, "Bluetooth disabled. Cannot get remote device battery level"); Log.e(TAG, "Bluetooth disabled. Cannot get remote device battery level");
return BATTERY_LEVEL_UNKNOWN; return BATTERY_LEVEL_BLUETOOTH_OFF;
} }
try { try {
return service.getBatteryLevel(this); return service.getBatteryLevel(this);
@@ -1727,7 +1734,9 @@ public final class BluetoothDevice implements Parcelable {
/** /**
* Sets whether the message access is allowed to this device. * Sets whether the message access is allowed to this device.
* *
* @param value is the value we are setting the message access permission to * @param value Can be {@link #ACCESS_UNKNOWN} if the device is unbonded,
* {@link #ACCESS_ALLOWED} if the permission is being granted, or {@link #ACCESS_REJECTED} if
* the permission is not being granted.
* @return Whether the value has been successfully set. * @return Whether the value has been successfully set.
* @hide * @hide
*/ */
@@ -1774,8 +1783,9 @@ public final class BluetoothDevice implements Parcelable {
/** /**
* Sets whether the Sim access is allowed to this device. * Sets whether the Sim access is allowed to this device.
* *
* @param value Can be {@link #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link * @param value Can be {@link #ACCESS_UNKNOWN} if the device is unbonded,
* #ACCESS_REJECTED}. * {@link #ACCESS_ALLOWED} if the permission is being granted, or {@link #ACCESS_REJECTED} if
* the permission is not being granted.
* @return Whether the value has been successfully set. * @return Whether the value has been successfully set.
* @hide * @hide
*/ */

View File

@@ -494,7 +494,9 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
/** /**
* Get battery level from remote device * Get battery level from remote device
* @return battery level in percentage [0-100], or {@link BluetoothDevice#BATTERY_LEVEL_UNKNOWN} * @return battery level in percentage [0-100],
* {@link BluetoothDevice#BATTERY_LEVEL_BLUETOOTH_OFF}, or
* {@link BluetoothDevice#BATTERY_LEVEL_UNKNOWN}
*/ */
public int getBatteryLevel() { public int getBatteryLevel() {
return mDevice.getBatteryLevel(); return mDevice.getBatteryLevel();
@@ -937,12 +939,12 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
} }
String batteryLevelPercentageString = null; String batteryLevelPercentageString = null;
// Android framework should only set mBatteryLevel to valid range [0-100] or // Android framework should only set mBatteryLevel to valid range [0-100],
// BluetoothDevice.BATTERY_LEVEL_UNKNOWN, any other value should be a framework bug. // BluetoothDevice.BATTERY_LEVEL_BLUETOOTH_OFF, or BluetoothDevice.BATTERY_LEVEL_UNKNOWN,
// Thus assume here that if value is not BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must // any other value should be a framework bug. Thus assume here that if value is greater
// be valid // than BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must be valid
final int batteryLevel = getBatteryLevel(); final int batteryLevel = getBatteryLevel();
if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) { if (batteryLevel > BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
// TODO: name com.android.settingslib.bluetooth.Utils something different // TODO: name com.android.settingslib.bluetooth.Utils something different
batteryLevelPercentageString = batteryLevelPercentageString =
com.android.settingslib.Utils.formatPercentage(batteryLevel); com.android.settingslib.Utils.formatPercentage(batteryLevel);
@@ -1050,12 +1052,12 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
} }
String batteryLevelPercentageString = null; String batteryLevelPercentageString = null;
// Android framework should only set mBatteryLevel to valid range [0-100] or // Android framework should only set mBatteryLevel to valid range [0-100],
// BluetoothDevice.BATTERY_LEVEL_UNKNOWN, any other value should be a framework bug. // BluetoothDevice.BATTERY_LEVEL_BLUETOOTH_OFF, or BluetoothDevice.BATTERY_LEVEL_UNKNOWN,
// Thus assume here that if value is not BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must // any other value should be a framework bug. Thus assume here that if value is greater
// be valid // than BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must be valid
final int batteryLevel = getBatteryLevel(); final int batteryLevel = getBatteryLevel();
if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) { if (batteryLevel > BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
// TODO: name com.android.settingslib.bluetooth.Utils something different // TODO: name com.android.settingslib.bluetooth.Utils something different
batteryLevelPercentageString = batteryLevelPercentageString =
com.android.settingslib.Utils.formatPercentage(batteryLevel); com.android.settingslib.Utils.formatPercentage(batteryLevel);

View File

@@ -197,7 +197,7 @@ public class BluetoothTile extends QSTileImpl<BooleanState> {
CachedBluetoothDevice lastDevice = connectedDevices.get(0); CachedBluetoothDevice lastDevice = connectedDevices.get(0);
final int batteryLevel = lastDevice.getBatteryLevel(); final int batteryLevel = lastDevice.getBatteryLevel();
if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) { if (batteryLevel > BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
return mContext.getString( return mContext.getString(
R.string.quick_settings_bluetooth_secondary_label_battery_level, R.string.quick_settings_bluetooth_secondary_label_battery_level,
Utils.formatPercentage(batteryLevel)); Utils.formatPercentage(batteryLevel));
@@ -390,7 +390,7 @@ public class BluetoothTile extends QSTileImpl<BooleanState> {
if (state == BluetoothProfile.STATE_CONNECTED) { if (state == BluetoothProfile.STATE_CONNECTED) {
item.iconResId = R.drawable.ic_bluetooth_connected; item.iconResId = R.drawable.ic_bluetooth_connected;
int batteryLevel = device.getBatteryLevel(); int batteryLevel = device.getBatteryLevel();
if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) { if (batteryLevel > BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
item.icon = new BluetoothBatteryTileIcon(batteryLevel,1 /* iconScale */); item.icon = new BluetoothBatteryTileIcon(batteryLevel,1 /* iconScale */);
item.line2 = mContext.getString( item.line2 = mContext.getString(
R.string.quick_settings_connected_battery_level, R.string.quick_settings_connected_battery_level,