Show battery info for mono audio location device
1. Show mono battery info in LeAudioBluetoothDetailsHeaderController without side text in front of the battery icon 2. Show mono side device on Settings > Accessibility > Hearing devices's summary without side information Flag: EXEMPT bugfix Bug: 379616650 Test: atest AccessibilityHearingAidPreferenceControllerTest Test: manually check UI with real device Change-Id: I4a1a3357e2cef51df505923e38da33767c78e8f3
This commit is contained in:
@@ -176,5 +176,23 @@
|
|||||||
android:padding="@dimen/le_bluetooth_summary_padding"
|
android:padding="@dimen/le_bluetooth_summary_padding"
|
||||||
android:drawablePadding="@dimen/le_bluetooth_summary_drawable_padding"/>
|
android:drawablePadding="@dimen/le_bluetooth_summary_drawable_padding"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/bt_battery_mono"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="@dimen/le_bluetooth_battery_start_margin"
|
||||||
|
android:layout_marginTop="@dimen/le_bluetooth_battery_top_margin"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:focusable="true">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/bt_battery_mono_summary"
|
||||||
|
style="@style/TextAppearance.EntityHeaderSummary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="@dimen/le_bluetooth_summary_padding"
|
||||||
|
android:drawablePadding="@dimen/le_bluetooth_summary_drawable_padding"/>
|
||||||
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
@@ -162,18 +162,13 @@ public class AccessibilityHearingAidPreferenceController extends BasePreferenceC
|
|||||||
}
|
}
|
||||||
|
|
||||||
final int side = device.getDeviceSide();
|
final int side = device.getDeviceSide();
|
||||||
if (side == HearingAidInfo.DeviceSide.SIDE_LEFT_AND_RIGHT) {
|
if (side == HearingAidInfo.DeviceSide.SIDE_LEFT) {
|
||||||
return mContext.getString(
|
|
||||||
R.string.accessibility_hearingaid_left_and_right_side_device_summary, name);
|
|
||||||
} else if (side == HearingAidInfo.DeviceSide.SIDE_LEFT) {
|
|
||||||
return mContext.getString(
|
return mContext.getString(
|
||||||
R.string.accessibility_hearingaid_left_side_device_summary, name);
|
R.string.accessibility_hearingaid_left_side_device_summary, name);
|
||||||
} else if (side == HearingAidInfo.DeviceSide.SIDE_RIGHT) {
|
} else if (side == HearingAidInfo.DeviceSide.SIDE_RIGHT) {
|
||||||
return mContext.getString(
|
return mContext.getString(
|
||||||
R.string.accessibility_hearingaid_right_side_device_summary, name);
|
R.string.accessibility_hearingaid_right_side_device_summary, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Invalid side
|
|
||||||
return mContext.getString(
|
return mContext.getString(
|
||||||
R.string.accessibility_hearingaid_active_device_summary, name);
|
R.string.accessibility_hearingaid_active_device_summary, name);
|
||||||
}
|
}
|
||||||
|
@@ -225,6 +225,8 @@ public class LeAudioBluetoothDetailsHeaderController extends BasePreferenceContr
|
|||||||
return R.id.bt_battery_left_summary;
|
return R.id.bt_battery_left_summary;
|
||||||
} else if (containerId == R.id.bt_battery_right) {
|
} else if (containerId == R.id.bt_battery_right) {
|
||||||
return R.id.bt_battery_right_summary;
|
return R.id.bt_battery_right_summary;
|
||||||
|
} else if (containerId == R.id.bt_battery_mono) {
|
||||||
|
return R.id.bt_battery_mono_summary;
|
||||||
}
|
}
|
||||||
Log.d(TAG, "No summary resource id. The containerId is " + containerId);
|
Log.d(TAG, "No summary resource id. The containerId is " + containerId);
|
||||||
return INVALID_RESOURCE_ID;
|
return INVALID_RESOURCE_ID;
|
||||||
@@ -237,6 +239,8 @@ public class LeAudioBluetoothDetailsHeaderController extends BasePreferenceContr
|
|||||||
updateBatteryLayout(R.id.bt_battery_left, BluetoothUtils.META_INT_ERROR);
|
updateBatteryLayout(R.id.bt_battery_left, BluetoothUtils.META_INT_ERROR);
|
||||||
// hide the right
|
// hide the right
|
||||||
updateBatteryLayout(R.id.bt_battery_right, BluetoothUtils.META_INT_ERROR);
|
updateBatteryLayout(R.id.bt_battery_right, BluetoothUtils.META_INT_ERROR);
|
||||||
|
// hide the mono
|
||||||
|
updateBatteryLayout(R.id.bt_battery_mono, BluetoothUtils.META_INT_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateBatteryLayout() {
|
private void updateBatteryLayout() {
|
||||||
@@ -261,11 +265,6 @@ public class LeAudioBluetoothDetailsHeaderController extends BasePreferenceContr
|
|||||||
int deviceId = leAudioProfile.getAudioLocation(cachedDevice.getDevice());
|
int deviceId = leAudioProfile.getAudioLocation(cachedDevice.getDevice());
|
||||||
Log.d(TAG, "LeAudioDevices:" + cachedDevice.getDevice().getAnonymizedAddress()
|
Log.d(TAG, "LeAudioDevices:" + cachedDevice.getDevice().getAnonymizedAddress()
|
||||||
+ ", deviceId:" + deviceId);
|
+ ", deviceId:" + deviceId);
|
||||||
|
|
||||||
if (deviceId == BluetoothLeAudio.AUDIO_LOCATION_INVALID) {
|
|
||||||
Log.d(TAG, "The device does not support the AUDIO_LOCATION.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
boolean isLeft = (deviceId & LEFT_DEVICE_ID) != 0;
|
boolean isLeft = (deviceId & LEFT_DEVICE_ID) != 0;
|
||||||
boolean isRight = (deviceId & RIGHT_DEVICE_ID) != 0;
|
boolean isRight = (deviceId & RIGHT_DEVICE_ID) != 0;
|
||||||
boolean isLeftRight = isLeft && isRight;
|
boolean isLeftRight = isLeft && isRight;
|
||||||
@@ -280,6 +279,8 @@ public class LeAudioBluetoothDetailsHeaderController extends BasePreferenceContr
|
|||||||
updateBatteryLayout(R.id.bt_battery_left, cachedDevice.getBatteryLevel());
|
updateBatteryLayout(R.id.bt_battery_left, cachedDevice.getBatteryLevel());
|
||||||
} else if (isRight) {
|
} else if (isRight) {
|
||||||
updateBatteryLayout(R.id.bt_battery_right, cachedDevice.getBatteryLevel());
|
updateBatteryLayout(R.id.bt_battery_right, cachedDevice.getBatteryLevel());
|
||||||
|
} else if (deviceId == BluetoothLeAudio.AUDIO_LOCATION_MONO) {
|
||||||
|
updateBatteryLayout(R.id.bt_battery_mono, cachedDevice.getBatteryLevel());
|
||||||
} else {
|
} else {
|
||||||
Log.d(TAG, "The device id is other Audio Location. Do nothing.");
|
Log.d(TAG, "The device id is other Audio Location. Do nothing.");
|
||||||
}
|
}
|
||||||
|
@@ -208,7 +208,24 @@ public class AccessibilityHearingAidPreferenceControllerTest {
|
|||||||
ShadowLooper.idleMainLooper();
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
assertThat(mHearingAidPreference.getSummary().toString().contentEquals(
|
assertThat(mHearingAidPreference.getSummary().toString().contentEquals(
|
||||||
"TEST_HEARING_AID_BT_DEVICE_NAME / Left and right")).isTrue();
|
"TEST_HEARING_AID_BT_DEVICE_NAME active")).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getSummary_connectedLeAudioHearingAidMonoSide_connectedSummary() {
|
||||||
|
when(mCachedBluetoothDevice.getDeviceSide()).thenReturn(
|
||||||
|
HearingAidInfo.DeviceSide.SIDE_MONO);
|
||||||
|
when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(new HashSet<>());
|
||||||
|
when(mHapClientProfile.getConnectedDevices()).thenReturn(generateHearingAidDeviceList());
|
||||||
|
|
||||||
|
mPreferenceController.onStart();
|
||||||
|
Intent intent = new Intent(BluetoothHapClient.ACTION_HAP_CONNECTION_STATE_CHANGED);
|
||||||
|
intent.putExtra(BluetoothHearingAid.EXTRA_STATE, BluetoothHapClient.STATE_CONNECTED);
|
||||||
|
sendIntent(intent);
|
||||||
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
|
assertThat(mHearingAidPreference.getSummary().toString().contentEquals(
|
||||||
|
"TEST_HEARING_AID_BT_DEVICE_NAME active")).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user