From 0bc82f87856389d85617002b77564d3934e78e0a Mon Sep 17 00:00:00 2001 From: Angela Wang Date: Tue, 28 Nov 2023 20:01:20 +0000 Subject: Refreshes the icon immediately after setHearingAidInfo() is called If we know a device is hearing devices, we should refresh the icon immediately. Bug: 317737217 Test: atest BluetoothUtilsTest#getBtClassDrawableWithDescription_typeHearingAid_returnHearingAidDrawable Change-Id: I9f3d3d822bc7783aa677e42d7999548c8f6c5ce3 --- .../src/com/android/settingslib/bluetooth/BluetoothUtils.java | 6 ++++++ .../com/android/settingslib/bluetooth/CachedBluetoothDevice.java | 1 + .../com/android/settingslib/bluetooth/BluetoothUtilsTest.java | 9 +++++++++ 3 files changed, 16 insertions(+) diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java index 071afaf18598..f7f06739d4b2 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java @@ -117,6 +117,12 @@ public class BluetoothUtils { } } + if (cachedDevice.isHearingAidDevice()) { + return new Pair<>(getBluetoothDrawable(context, + com.android.internal.R.drawable.ic_bt_hearing_aid), + context.getString(R.string.bluetooth_talkback_hearing_aids)); + } + List profiles = cachedDevice.getProfiles(); int resId = 0; for (LocalBluetoothProfile profile : profiles) { diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java index fccdbe5b54eb..9f38c9836cf4 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java @@ -412,6 +412,7 @@ public class CachedBluetoothDevice implements Comparable public void setHearingAidInfo(HearingAidInfo hearingAidInfo) { mHearingAidInfo = hearingAidInfo; + dispatchAttributesChanged(); } public HearingAidInfo getHearingAidInfo() { diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java index 7409eea2cd51..f7ec80b041e9 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java @@ -16,6 +16,7 @@ package com.android.settingslib.bluetooth; import static com.google.common.truth.Truth.assertThat; + import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -86,6 +87,14 @@ public class BluetoothUtilsTest { verify(mContext).getDrawable(com.android.internal.R.drawable.ic_bt_laptop); } + @Test + public void getBtClassDrawableWithDescription_typeHearingAid_returnHearingAidDrawable() { + when(mCachedBluetoothDevice.isHearingAidDevice()).thenReturn(true); + BluetoothUtils.getBtClassDrawableWithDescription(mContext, mCachedBluetoothDevice); + + verify(mContext).getDrawable(com.android.internal.R.drawable.ic_bt_hearing_aid); + } + @Test public void getBtRainbowDrawableWithDescription_normalHeadset_returnAdaptiveIcon() { when(mBluetoothDevice.getMetadata( -- cgit v1.2.3-59-g8ed1b