[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,13 +109,19 @@ 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) {
SubscriptionInfo subInfo = getSubscriptionInfo(simSlot); SubscriptionInfo subInfo = getSubscriptionInfo(simSlot);