[Settings] Avoid from accessing LifecycleOwner when not available

Only access LifecycleOwner when available.

Bug: 266872811
Test: local

Change-Id: Id575a71e20e79f8efadb49af128c1a43c058acdd
This commit is contained in:
Bonian Chen
2023-01-31 07:46:01 +00:00
parent 5575379610
commit 5f9b1084c3

View File

@@ -109,12 +109,18 @@ public class SimStatusPreferenceController extends BasePreferenceController {
@Override
public void updateState(Preference preference) {
if (mFragment == null) {
return;
}
final int simSlot = getSimSlotIndex();
if (mSimChangeObserver == null) {
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) {