From d48cf866d84b411f1c81245ac63f955695ef43c4 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Wed, 6 Mar 2024 12:36:18 +0800 Subject: [PATCH] Update the summary when Wi-Fi calling ready Since the correct summary can only be got after Wi-Fi calling ready. Fix: 325414275 Test: manual - on Mobile Settings Change-Id: Ida94fd0a86f2130b9f0dded82fe18efd3ffc0c27 --- .../WifiCallingPreferenceController.kt | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt index b0ea6a678b2..0ee1d87cd62 100644 --- a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt +++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt @@ -22,10 +22,7 @@ import android.telecom.TelecomManager import android.telephony.SubscriptionManager import android.telephony.TelephonyManager import android.telephony.ims.ImsMmTelManager -import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner -import androidx.lifecycle.lifecycleScope -import androidx.lifecycle.repeatOnLifecycle import androidx.preference.Preference import androidx.preference.PreferenceScreen import com.android.settings.R @@ -33,7 +30,6 @@ import com.android.settings.network.telephony.wificalling.WifiCallingRepository import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.launch import kotlinx.coroutines.withContext /** @@ -81,17 +77,12 @@ open class WifiCallingPreferenceController @JvmOverloads constructor( override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) { wifiCallingRepositoryFactory(mSubId).wifiCallingReadyFlow() - .collectLatestWithLifecycle(viewLifecycleOwner) { - preference.isVisible = it - callingPreferenceCategoryController.updateChildVisible(preferenceKey, it) + .collectLatestWithLifecycle(viewLifecycleOwner) { isReady -> + preference.isVisible = isReady + callingPreferenceCategoryController.updateChildVisible(preferenceKey, isReady) + if (isReady) update() } - viewLifecycleOwner.lifecycleScope.launch { - viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { - update() - } - } - callStateFlowFactory(mSubId).collectLatestWithLifecycle(viewLifecycleOwner) { preference.isEnabled = (it == TelephonyManager.CALL_STATE_IDLE) }