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
Merged-In: Ida94fd0a86f2130b9f0dded82fe18efd3ffc0c27
diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt
index b0ea6a6..0ee1d87 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.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.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 @@
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)
}