diff --git a/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceController.java b/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceController.java index a1c6d184814..2df7d11788a 100644 --- a/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceController.java +++ b/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceController.java @@ -36,6 +36,7 @@ import com.android.settings.connecteddevice.DevicePreferenceCallback; import com.android.settings.core.BasePreferenceController; import com.android.settings.flags.Flags; import com.android.settings.overlay.FeatureFactory; +import com.android.settingslib.utils.ThreadUtils; import java.util.ArrayList; import java.util.Collections; @@ -90,28 +91,12 @@ public class FastPairDevicePreferenceController extends BasePreferenceController @Override public void onStart(@NonNull LifecycleOwner owner) { - if (mFastPairDeviceUpdater != null) { - mFastPairDeviceUpdater.setPreferenceContext(mContext); - mFastPairDeviceUpdater.registerCallback(); - } else { - if (DEBUG) { - Log.d(TAG, "Callback register: Fast Pair device updater is null. Ignore."); - } - } - mContext.registerReceiver(mReceiver, mIntentFilter, Context.RECEIVER_EXPORTED_UNAUDITED); + var unused = ThreadUtils.postOnBackgroundThread(() -> registerCallbacks()); } @Override public void onStop(@NonNull LifecycleOwner owner) { - if (mFastPairDeviceUpdater != null) { - mFastPairDeviceUpdater.setPreferenceContext(null); - mFastPairDeviceUpdater.unregisterCallback(); - } else { - if (DEBUG) { - Log.d(TAG, "Callback unregister: Fast Pair device updater is null. Ignore."); - } - } - mContext.unregisterReceiver(mReceiver); + var unused = ThreadUtils.postOnBackgroundThread(() -> unregisterCallbacks()); } @Override @@ -208,4 +193,28 @@ public class FastPairDevicePreferenceController extends BasePreferenceController mSeeAllPreference.setVisible(false); } } + + private void registerCallbacks() { + if (mFastPairDeviceUpdater != null) { + mFastPairDeviceUpdater.setPreferenceContext(mContext); + mFastPairDeviceUpdater.registerCallback(); + } else { + if (DEBUG) { + Log.d(TAG, "Callback register: Fast Pair device updater is null. Ignore."); + } + } + mContext.registerReceiver(mReceiver, mIntentFilter, Context.RECEIVER_EXPORTED_UNAUDITED); + } + + private void unregisterCallbacks() { + if (mFastPairDeviceUpdater != null) { + mFastPairDeviceUpdater.setPreferenceContext(null); + mFastPairDeviceUpdater.unregisterCallback(); + } else { + if (DEBUG) { + Log.d(TAG, "Callback unregister: Fast Pair device updater is null. Ignore."); + } + } + mContext.unregisterReceiver(mReceiver); + } }