From 5f9b1084c3f4c13422d534e123a266defe3207c1 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Tue, 31 Jan 2023 07:46:01 +0000 Subject: [PATCH] [Settings] Avoid from accessing LifecycleOwner when not available Only access LifecycleOwner when available. Bug: 266872811 Test: local Change-Id: Id575a71e20e79f8efadb49af128c1a43c058acdd --- .../simstatus/SimStatusPreferenceController.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java index 00819b5ead2..ae002f342b8 100644 --- a/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java +++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java @@ -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) {