Merge "[Settings] Avoid from accessing LifecycleOwner when not available"

This commit is contained in:
Bonian Chen
2023-01-31 11:46:42 +00:00
committed by Android (Google) Code Review

View File

@@ -109,12 +109,18 @@ public class SimStatusPreferenceController extends BasePreferenceController {
@Override @Override
public void updateState(Preference preference) { public void updateState(Preference preference) {
if (mFragment == null) {
return;
}
final int simSlot = getSimSlotIndex(); final int simSlot = getSimSlotIndex();
if (mSimChangeObserver == null) { if (mSimChangeObserver == null) {
mSimChangeObserver = x -> updateStateBySlot(preference, simSlot); mSimChangeObserver = x -> updateStateBySlot(preference, simSlot);
mSlotSimStatus.observe(mFragment.getViewLifecycleOwner(), mSimChangeObserver); mFragment.getViewLifecycleOwnerLiveData().observeForever(lifecycleOwner -> {
mSlotSimStatus.observe(lifecycleOwner, mSimChangeObserver);
});
} else {
updateStateBySlot(preference, simSlot);
} }
updateStateBySlot(preference, simSlot);
} }
protected void updateStateBySlot(Preference preference, int simSlot) { protected void updateStateBySlot(Preference preference, int simSlot) {