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

@@ -21,6 +21,7 @@ import android.content.Context;
import android.util.Log;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
@@ -35,7 +36,8 @@ public class AudioSharingBluetoothDeviceUpdater extends BluetoothDeviceUpdater
private static final String TAG = "AudioSharingBluetoothDeviceUpdater";
private static final String PREF_KEY = "audio_sharing_bt";
@VisibleForTesting
static final String PREF_KEY_PREFIX = "audio_sharing_bt_";
@Nullable private LocalBluetoothManager mLocalBtManager;
@@ -76,8 +78,8 @@ public class AudioSharingBluetoothDeviceUpdater extends BluetoothDeviceUpdater
}
@Override
protected String getPreferenceKey() {
return PREF_KEY;
protected String getPreferenceKeyPrefix() {
return PREF_KEY_PREFIX;
}
@Override