[Settings] Avoid from accessing LifecycleOwner when not available
Only access LifecycleOwner when available.
Bug: 266872811
Test: local
Change-Id: Id575a71e20e79f8efadb49af128c1a43c058acdd
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java
index 00819b5..ae002f3 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java
@@ -109,12 +109,18 @@
@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) {