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.SubscriptionManager
import android.telephony.TelephonyManager import android.telephony.TelephonyManager
import android.telephony.ims.ImsMmTelManager import android.telephony.ims.ImsMmTelManager
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import com.android.settings.R 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 com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
/** /**
@@ -81,17 +77,12 @@ open class WifiCallingPreferenceController @JvmOverloads constructor(
override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) { override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
wifiCallingRepositoryFactory(mSubId).wifiCallingReadyFlow() wifiCallingRepositoryFactory(mSubId).wifiCallingReadyFlow()
.collectLatestWithLifecycle(viewLifecycleOwner) { .collectLatestWithLifecycle(viewLifecycleOwner) { isReady ->
preference.isVisible = it preference.isVisible = isReady
callingPreferenceCategoryController.updateChildVisible(preferenceKey, it) callingPreferenceCategoryController.updateChildVisible(preferenceKey, isReady)
if (isReady) update()
} }
viewLifecycleOwner.lifecycleScope.launch {
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
update()
}
}
callStateFlowFactory(mSubId).collectLatestWithLifecycle(viewLifecycleOwner) { callStateFlowFactory(mSubId).collectLatestWithLifecycle(viewLifecycleOwner) {
preference.isEnabled = (it == TelephonyManager.CALL_STATE_IDLE) preference.isEnabled = (it == TelephonyManager.CALL_STATE_IDLE)
} }