summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2020-03-10 17:28:27 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2020-03-10 17:28:27 +0000
commit1bb18d83ebca9e0f45c1a64e22e2f8c9e04a2dd5 (patch)
tree59b5c6abe03068c18ecc5e745a7cc9cea6490489
parent2be788e16d4327933059e22433430476736e5db0 (diff)
parentded588641b13ba9b19dbdb447f89f35d6b946031 (diff)
Merge "Add error code for BluetoothDevice#getBatteryLevel to represent Bluetooth is off"
-rw-r--r--core/java/android/bluetooth/BluetoothDevice.java24
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java24
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java4
3 files changed, 32 insertions, 20 deletions
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index c4ea080962f7..2a3f2be64228 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -230,6 +230,13 @@ public final class BluetoothDevice implements Parcelable {
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
* broadcast by this class. It contains the {@link BluetoothDevice} that
* the intent applies to.
@@ -1133,9 +1140,9 @@ public final class BluetoothDevice implements Parcelable {
/**
* 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
- * Bluetooth is disabled, or device is disconnected, or does not have any battery reporting
- * service, or return value is invalid
+ * @return Battery level in percents from 0 to 100, {@link #BATTERY_LEVEL_BLUETOOTH_OFF} if
+ * Bluetooth is disabled or {@link #BATTERY_LEVEL_UNKNOWN} if device is disconnected, or does
+ * not have any battery reporting service, or return value is invalid
* @hide
*/
@SystemApi
@@ -1144,7 +1151,7 @@ public final class BluetoothDevice implements Parcelable {
final IBluetooth service = sService;
if (service == null) {
Log.e(TAG, "Bluetooth disabled. Cannot get remote device battery level");
- return BATTERY_LEVEL_UNKNOWN;
+ return BATTERY_LEVEL_BLUETOOTH_OFF;
}
try {
return service.getBatteryLevel(this);
@@ -1719,7 +1726,9 @@ public final class BluetoothDevice implements Parcelable {
/**
* 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.
* @hide
*/
@@ -1766,8 +1775,9 @@ public final class BluetoothDevice implements Parcelable {
/**
* Sets whether the Sim access is allowed to this device.
*
- * @param value Can be {@link #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link
- * #ACCESS_REJECTED}.
+ * @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.
* @hide
*/
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
index 69e2044ad232..bb9d42ecd77c 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
@@ -417,7 +417,9 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
/**
* 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() {
return mDevice.getBatteryLevel();
@@ -862,12 +864,12 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
}
String batteryLevelPercentageString = null;
- // Android framework should only set mBatteryLevel to valid range [0-100] or
- // BluetoothDevice.BATTERY_LEVEL_UNKNOWN, any other value should be a framework bug.
- // Thus assume here that if value is not BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must
- // be valid
+ // Android framework should only set mBatteryLevel to valid range [0-100],
+ // BluetoothDevice.BATTERY_LEVEL_BLUETOOTH_OFF, or BluetoothDevice.BATTERY_LEVEL_UNKNOWN,
+ // any other value should be a framework bug. Thus assume here that if value is greater
+ // than BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must be valid
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
batteryLevelPercentageString =
com.android.settingslib.Utils.formatPercentage(batteryLevel);
@@ -970,12 +972,12 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
}
String batteryLevelPercentageString = null;
- // Android framework should only set mBatteryLevel to valid range [0-100] or
- // BluetoothDevice.BATTERY_LEVEL_UNKNOWN, any other value should be a framework bug.
- // Thus assume here that if value is not BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must
- // be valid
+ // Android framework should only set mBatteryLevel to valid range [0-100],
+ // BluetoothDevice.BATTERY_LEVEL_BLUETOOTH_OFF, or BluetoothDevice.BATTERY_LEVEL_UNKNOWN,
+ // any other value should be a framework bug. Thus assume here that if value is greater
+ // than BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must be valid
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
batteryLevelPercentageString =
com.android.settingslib.Utils.formatPercentage(batteryLevel);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
index 9282a2e3b312..907cc98ab2eb 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
@@ -199,7 +199,7 @@ public class BluetoothTile extends QSTileImpl<BooleanState> {
CachedBluetoothDevice lastDevice = connectedDevices.get(0);
final int batteryLevel = lastDevice.getBatteryLevel();
- if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
+ if (batteryLevel > BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
return mContext.getString(
R.string.quick_settings_bluetooth_secondary_label_battery_level,
Utils.formatPercentage(batteryLevel));
@@ -392,7 +392,7 @@ public class BluetoothTile extends QSTileImpl<BooleanState> {
if (state == BluetoothProfile.STATE_CONNECTED) {
item.iconResId = R.drawable.ic_bluetooth_connected;
int batteryLevel = device.getBatteryLevel();
- if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
+ if (batteryLevel > BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
item.icon = new BluetoothBatteryTileIcon(batteryLevel,1 /* iconScale */);
item.line2 = mContext.getString(
R.string.quick_settings_connected_battery_level,