Merge "Update the bluetooth battery icon" into oc-mr1-dev am: 04ba0f5067
am: e01900d9c5
Change-Id: I7560f9100b4778d72ad5e395b58d720aeb25438b
This commit is contained in:
@@ -51,8 +51,9 @@ public class BluetoothDetailsHeaderController extends BluetoothDetailsController
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void setHeaderProperties() {
|
protected void setHeaderProperties() {
|
||||||
final Pair<Drawable, String> pair = Utils.getBtClassDrawableWithDescription
|
final Pair<Drawable, String> pair = Utils.getBtClassDrawableWithDescription(
|
||||||
(mContext, mCachedDevice);
|
mContext, mCachedDevice,
|
||||||
|
mContext.getResources().getFraction(R.fraction.bt_battery_scale_fraction, 1, 1));
|
||||||
String summaryText = mCachedDevice.getConnectionSummary();
|
String summaryText = mCachedDevice.getConnectionSummary();
|
||||||
mHeaderController.setLabel(mCachedDevice.getName());
|
mHeaderController.setLabel(mCachedDevice.getName());
|
||||||
mHeaderController.setIcon(pair.first);
|
mHeaderController.setIcon(pair.first);
|
||||||
|
@@ -156,28 +156,36 @@ public final class Utils {
|
|||||||
|
|
||||||
static Pair<Drawable, String> getBtClassDrawableWithDescription(Context context,
|
static Pair<Drawable, String> getBtClassDrawableWithDescription(Context context,
|
||||||
CachedBluetoothDevice cachedDevice) {
|
CachedBluetoothDevice cachedDevice) {
|
||||||
|
return getBtClassDrawableWithDescription(context, cachedDevice, 1 /* iconScale */);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Pair<Drawable, String> getBtClassDrawableWithDescription(Context context,
|
||||||
|
CachedBluetoothDevice cachedDevice, float iconScale) {
|
||||||
BluetoothClass btClass = cachedDevice.getBtClass();
|
BluetoothClass btClass = cachedDevice.getBtClass();
|
||||||
final int level = cachedDevice.getBatteryLevel();
|
final int level = cachedDevice.getBatteryLevel();
|
||||||
if (btClass != null) {
|
if (btClass != null) {
|
||||||
switch (btClass.getMajorDeviceClass()) {
|
switch (btClass.getMajorDeviceClass()) {
|
||||||
case BluetoothClass.Device.Major.COMPUTER:
|
case BluetoothClass.Device.Major.COMPUTER:
|
||||||
return new Pair<>(getBluetoothDrawable(context, R.drawable.ic_bt_laptop, level),
|
return new Pair<>(getBluetoothDrawable(context, R.drawable.ic_bt_laptop, level,
|
||||||
|
iconScale),
|
||||||
context.getString(R.string.bluetooth_talkback_computer));
|
context.getString(R.string.bluetooth_talkback_computer));
|
||||||
|
|
||||||
case BluetoothClass.Device.Major.PHONE:
|
case BluetoothClass.Device.Major.PHONE:
|
||||||
return new Pair<>(
|
return new Pair<>(
|
||||||
getBluetoothDrawable(context, R.drawable.ic_bt_cellphone, level),
|
getBluetoothDrawable(context, R.drawable.ic_bt_cellphone, level,
|
||||||
|
iconScale),
|
||||||
context.getString(R.string.bluetooth_talkback_phone));
|
context.getString(R.string.bluetooth_talkback_phone));
|
||||||
|
|
||||||
case BluetoothClass.Device.Major.PERIPHERAL:
|
case BluetoothClass.Device.Major.PERIPHERAL:
|
||||||
return new Pair<>(
|
return new Pair<>(
|
||||||
getBluetoothDrawable(context, HidProfile.getHidClassDrawable(btClass),
|
getBluetoothDrawable(context, HidProfile.getHidClassDrawable(btClass),
|
||||||
level),
|
level, iconScale),
|
||||||
context.getString(R.string.bluetooth_talkback_input_peripheral));
|
context.getString(R.string.bluetooth_talkback_input_peripheral));
|
||||||
|
|
||||||
case BluetoothClass.Device.Major.IMAGING:
|
case BluetoothClass.Device.Major.IMAGING:
|
||||||
return new Pair<>(
|
return new Pair<>(
|
||||||
getBluetoothDrawable(context, R.drawable.ic_settings_print, level),
|
getBluetoothDrawable(context, R.drawable.ic_settings_print, level,
|
||||||
|
iconScale),
|
||||||
context.getString(R.string.bluetooth_talkback_imaging));
|
context.getString(R.string.bluetooth_talkback_imaging));
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -189,30 +197,34 @@ public final class Utils {
|
|||||||
for (LocalBluetoothProfile profile : profiles) {
|
for (LocalBluetoothProfile profile : profiles) {
|
||||||
int resId = profile.getDrawableResource(btClass);
|
int resId = profile.getDrawableResource(btClass);
|
||||||
if (resId != 0) {
|
if (resId != 0) {
|
||||||
return new Pair<>(getBluetoothDrawable(context, resId, level), null);
|
return new Pair<>(getBluetoothDrawable(context, resId, level, iconScale), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (btClass != null) {
|
if (btClass != null) {
|
||||||
if (btClass.doesClassMatch(BluetoothClass.PROFILE_HEADSET)) {
|
if (btClass.doesClassMatch(BluetoothClass.PROFILE_HEADSET)) {
|
||||||
return new Pair<>(
|
return new Pair<>(
|
||||||
getBluetoothDrawable(context, R.drawable.ic_bt_headset_hfp, level),
|
getBluetoothDrawable(context, R.drawable.ic_bt_headset_hfp, level,
|
||||||
|
iconScale),
|
||||||
context.getString(R.string.bluetooth_talkback_headset));
|
context.getString(R.string.bluetooth_talkback_headset));
|
||||||
}
|
}
|
||||||
if (btClass.doesClassMatch(BluetoothClass.PROFILE_A2DP)) {
|
if (btClass.doesClassMatch(BluetoothClass.PROFILE_A2DP)) {
|
||||||
return new Pair<>(
|
return new Pair<>(
|
||||||
getBluetoothDrawable(context, R.drawable.ic_bt_headphones_a2dp, level),
|
getBluetoothDrawable(context, R.drawable.ic_bt_headphones_a2dp, level,
|
||||||
|
iconScale),
|
||||||
context.getString(R.string.bluetooth_talkback_headphone));
|
context.getString(R.string.bluetooth_talkback_headphone));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new Pair<>(getBluetoothDrawable(context, R.drawable.ic_settings_bluetooth, level),
|
return new Pair<>(
|
||||||
|
getBluetoothDrawable(context, R.drawable.ic_settings_bluetooth, level, iconScale),
|
||||||
context.getString(R.string.bluetooth_talkback_bluetooth));
|
context.getString(R.string.bluetooth_talkback_bluetooth));
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static Drawable getBluetoothDrawable(Context context, @DrawableRes int resId,
|
static Drawable getBluetoothDrawable(Context context, @DrawableRes int resId,
|
||||||
int batteryLevel) {
|
int batteryLevel, float iconScale) {
|
||||||
if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
|
if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
|
||||||
return BluetoothDeviceLayerDrawable.createLayerDrawable(context, resId, batteryLevel);
|
return BluetoothDeviceLayerDrawable.createLayerDrawable(context, resId, batteryLevel,
|
||||||
|
iconScale);
|
||||||
} else if (resId != 0) {
|
} else if (resId != 0) {
|
||||||
return context.getDrawable(resId);
|
return context.getDrawable(resId);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -80,7 +80,7 @@ public class UtilsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testGetBluetoothDrawable_noBatteryLevel_returnSimpleDrawable() {
|
public void testGetBluetoothDrawable_noBatteryLevel_returnSimpleDrawable() {
|
||||||
final Drawable drawable = Utils.getBluetoothDrawable(RuntimeEnvironment.application,
|
final Drawable drawable = Utils.getBluetoothDrawable(RuntimeEnvironment.application,
|
||||||
R.drawable.ic_bt_laptop, BluetoothDevice.BATTERY_LEVEL_UNKNOWN);
|
R.drawable.ic_bt_laptop, BluetoothDevice.BATTERY_LEVEL_UNKNOWN, 1 /* iconScale */);
|
||||||
|
|
||||||
assertThat(drawable).isNotInstanceOf(BluetoothDeviceLayerDrawable.class);
|
assertThat(drawable).isNotInstanceOf(BluetoothDeviceLayerDrawable.class);
|
||||||
}
|
}
|
||||||
@@ -88,7 +88,7 @@ public class UtilsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testGetBluetoothDrawable_hasBatteryLevel_returnLayerDrawable() {
|
public void testGetBluetoothDrawable_hasBatteryLevel_returnLayerDrawable() {
|
||||||
final Drawable drawable = Utils.getBluetoothDrawable(RuntimeEnvironment.application,
|
final Drawable drawable = Utils.getBluetoothDrawable(RuntimeEnvironment.application,
|
||||||
R.drawable.ic_bt_laptop, 10 /* batteryLevel */);
|
R.drawable.ic_bt_laptop, 10 /* batteryLevel */, 1 /* iconScale */);
|
||||||
|
|
||||||
assertThat(drawable).isInstanceOf(BluetoothDeviceLayerDrawable.class);
|
assertThat(drawable).isInstanceOf(BluetoothDeviceLayerDrawable.class);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user