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
This commit is contained in:
Chaohui Wang
2024-03-06 12:36:18 +08:00
parent ea341bdf98
commit d48cf866d8

View File

@@ -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)
}