Fix dup preference key on Connected devices page

Use different key (prefix + CacheBluetooothDevice hash) for
each BluetoothDevicePreference to avoid Java crash due to "Two different
ViewHolders have the same change ID".

Test: atest
Fix: 325831741
Flag: EXEMPT safe fix only change preference key string
Change-Id: Ic993f3cab206b794045c2f46e6b4b376bfa3adea
This commit is contained in:
Yiyi Shen
2024-07-01 14:28:50 +08:00
parent 1d838f62ea
commit 07a346fcf5
11 changed files with 36 additions and 30 deletions

View File

@@ -27,7 +27,7 @@ import com.android.settingslib.bluetooth.CachedBluetoothDevice;
*/
public class AvailableHearingDeviceUpdater extends AvailableMediaBluetoothDeviceUpdater {
private static final String PREF_KEY = "connected_hearing_device";
private static final String PREF_KEY_PREFIX = "connected_hearing_device_";
public AvailableHearingDeviceUpdater(Context context,
DevicePreferenceCallback devicePreferenceCallback, int metricsCategory) {
@@ -42,7 +42,7 @@ public class AvailableHearingDeviceUpdater extends AvailableMediaBluetoothDevice
}
@Override
protected String getPreferenceKey() {
return PREF_KEY;
protected String getPreferenceKeyPrefix() {
return PREF_KEY_PREFIX;
}
}

View File

@@ -29,7 +29,7 @@ import com.android.settingslib.bluetooth.CachedBluetoothDevice;
*/
public class SavedHearingDeviceUpdater extends SavedBluetoothDeviceUpdater {
private static final String PREF_KEY = "saved_hearing_device";
private static final String PREF_KEY_PREFIX = "saved_hearing_device_";
public SavedHearingDeviceUpdater(Context context,
DevicePreferenceCallback devicePreferenceCallback, int metricsCategory) {
@@ -47,7 +47,7 @@ public class SavedHearingDeviceUpdater extends SavedBluetoothDeviceUpdater {
}
@Override
protected String getPreferenceKey() {
return PREF_KEY;
protected String getPreferenceKeyPrefix() {
return PREF_KEY_PREFIX;
}
}