Merge "Fix battery level of earbuds bt devices is inconsistent" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-03-09 03:07:42 +00:00
committed by Android (Google) Code Review
11 changed files with 35 additions and 1 deletions

View File

@@ -175,7 +175,7 @@ public final class BluetoothDevicePreference extends GearPreference {
mHideSecondTarget = hideSecondTarget;
}
private void onPreferenceAttributesChanged() {
void onPreferenceAttributesChanged() {
ThreadUtils.postOnBackgroundThread(() -> {
final Pair<Drawable, String> pair =
BluetoothUtils.getBtRainbowDrawableWithDescription(getContext(), mCachedDevice);

View File

@@ -317,4 +317,13 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
}
return device.getBondState() == BluetoothDevice.BOND_BONDED && device.isConnected();
}
/**
* Update the attributes of {@link Preference}.
*/
public void refreshPreference() {
for (Preference preference : mPreferenceMap.values()) {
((BluetoothDevicePreference) preference).onPreferenceAttributesChanged();
}
}
}

View File

@@ -68,6 +68,7 @@ public class AvailableMediaDeviceGroupController extends BasePreferenceControlle
}
mBluetoothDeviceUpdater.registerCallback();
mLocalBluetoothManager.getEventManager().registerCallback(this);
mBluetoothDeviceUpdater.refreshPreference();
}
@Override

View File

@@ -61,6 +61,7 @@ public class ConnectedDeviceGroupController extends BasePreferenceController
mBluetoothDeviceUpdater.registerCallback();
mConnectedUsbDeviceUpdater.registerCallback();
mConnectedDockUpdater.registerCallback();
mBluetoothDeviceUpdater.refreshPreference();
}
@Override

View File

@@ -111,6 +111,7 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
mBluetoothDeviceUpdater.registerCallback();
mSavedDockUpdater.registerCallback();
mContext.registerReceiver(mReceiver, mIntentFilter);
mBluetoothDeviceUpdater.refreshPreference();
}
@Override

View File

@@ -63,6 +63,7 @@ public class SavedDeviceGroupController extends BasePreferenceController
public void onStart() {
mBluetoothDeviceUpdater.registerCallback();
mSavedDockUpdater.registerCallback();
mBluetoothDeviceUpdater.refreshPreference();
}
@Override

View File

@@ -58,6 +58,7 @@ public class BluetoothDeviceUpdaterTest {
private static final String MAC_ADDRESS = "04:52:C7:0B:D8:3C";
private static final String SUB_MAC_ADDRESS = "05:52:C7:0B:D8:3C";
private static final String TEST_NAME = "test_name";
@Mock
private DashboardFragment mDashboardFragment;
@@ -256,4 +257,15 @@ public class BluetoothDeviceUpdaterTest {
verify(mDevicePreferenceCallback).onDeviceRemoved(mPreference);
assertThat(mBluetoothDeviceUpdater.mPreferenceMap.containsKey(mBluetoothDevice)).isFalse();
}
@Test
public void havePreference_refreshPreference() {
mBluetoothDeviceUpdater.mPreferenceMap.put(mBluetoothDevice, mPreference);
mPreference.setTitle("fake_name");
when(mCachedBluetoothDevice.getName()).thenReturn(TEST_NAME);
mBluetoothDeviceUpdater.refreshPreference();
assertThat(mPreference.getTitle()).isEqualTo(TEST_NAME);
}
}

View File

@@ -157,9 +157,11 @@ public class AvailableMediaDeviceGroupControllerTest {
public void testRegister() {
// register the callback in onStart()
mAvailableMediaDeviceGroupController.onStart();
verify(mAvailableMediaBluetoothDeviceUpdater).registerCallback();
verify(mLocalBluetoothManager.getEventManager()).registerCallback(
any(BluetoothCallback.class));
verify(mAvailableMediaBluetoothDeviceUpdater).refreshPreference();
}
@Test

View File

@@ -139,9 +139,11 @@ public class ConnectedDeviceGroupControllerTest {
public void onStart_shouldRegisterUpdaters() {
// register the callback in onStart()
mConnectedDeviceGroupController.onStart();
verify(mConnectedBluetoothDeviceUpdater).registerCallback();
verify(mConnectedUsbDeviceUpdater).registerCallback();
verify(mConnectedDockUpdater).registerCallback();
verify(mConnectedBluetoothDeviceUpdater).refreshPreference();
}
@Test

View File

@@ -147,13 +147,16 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
public void callbackCanRegisterAndUnregister() {
// register the callback in onStart()
mPreConnectedDeviceController.onStart();
verify(mBluetoothDeviceUpdater).registerCallback();
verify(mDockUpdater).registerCallback();
verify(mContext).registerReceiver(mPreConnectedDeviceController.mReceiver,
mPreConnectedDeviceController.mIntentFilter);
verify(mBluetoothDeviceUpdater).refreshPreference();
// unregister the callback in onStop()
mPreConnectedDeviceController.onStop();
verify(mBluetoothDeviceUpdater).unregisterCallback();
verify(mDockUpdater).unregisterCallback();
verify(mContext).unregisterReceiver(mPreConnectedDeviceController.mReceiver);

View File

@@ -79,8 +79,10 @@ public class SavedDeviceGroupControllerTest {
public void testRegister() {
// register the callback in onStart()
mSavedDeviceGroupController.onStart();
verify(mBluetoothDeviceUpdater).registerCallback();
verify(mSavedDockUpdater).registerCallback();
verify(mBluetoothDeviceUpdater).refreshPreference();
}
@Test