Register callbacks on background thread to avoid ANR
Fix: 360798156 Test: atest Flag: EXEMPT small fix Change-Id: Ia40bbe33952fa7ea2b951c04cf47b4a05f641e26
This commit is contained in:
@@ -36,6 +36,7 @@ import com.android.settings.connecteddevice.DevicePreferenceCallback;
|
|||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.flags.Flags;
|
import com.android.settings.flags.Flags;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
import com.android.settingslib.utils.ThreadUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -90,28 +91,12 @@ public class FastPairDevicePreferenceController extends BasePreferenceController
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart(@NonNull LifecycleOwner owner) {
|
public void onStart(@NonNull LifecycleOwner owner) {
|
||||||
if (mFastPairDeviceUpdater != null) {
|
var unused = ThreadUtils.postOnBackgroundThread(() -> registerCallbacks());
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStop(@NonNull LifecycleOwner owner) {
|
public void onStop(@NonNull LifecycleOwner owner) {
|
||||||
if (mFastPairDeviceUpdater != null) {
|
var unused = ThreadUtils.postOnBackgroundThread(() -> unregisterCallbacks());
|
||||||
mFastPairDeviceUpdater.setPreferenceContext(null);
|
|
||||||
mFastPairDeviceUpdater.unregisterCallback();
|
|
||||||
} else {
|
|
||||||
if (DEBUG) {
|
|
||||||
Log.d(TAG, "Callback unregister: Fast Pair device updater is null. Ignore.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mContext.unregisterReceiver(mReceiver);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -208,4 +193,28 @@ public class FastPairDevicePreferenceController extends BasePreferenceController
|
|||||||
mSeeAllPreference.setVisible(false);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user