Merge "Add flag to force expire the app optimization mode event." into main
diff --git a/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt b/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt
index 99f639b..62e7e98 100644
--- a/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt
+++ b/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt
@@ -51,46 +51,41 @@
)
.map { it.getIntExtra(SUBSCRIPTION_KEY, SubscriptionManager.INVALID_SUBSCRIPTION_ID) }
.onStart { emit(SubscriptionManager.getDefaultDataSubscriptionId()) }
+ .distinctUntilChanged()
.conflate()
.flowOn(Dispatchers.Default)
fun activeDataSubscriptionIdFlow(): Flow<Int> =
- telephonyManager.telephonyCallbackFlow {
- object : TelephonyCallback(), TelephonyCallback.ActiveDataSubscriptionIdListener {
- override fun onActiveDataSubscriptionIdChanged(subId: Int) {
- trySend(subId)
- Log.d(TAG, "activeDataSubscriptionIdFlow: $subId")
+ telephonyManager
+ .telephonyCallbackFlow {
+ object : TelephonyCallback(), TelephonyCallback.ActiveDataSubscriptionIdListener {
+ override fun onActiveDataSubscriptionIdChanged(subId: Int) {
+ trySend(subId)
+ Log.d(TAG, "activeDataSubscriptionIdFlow: $subId")
+ }
}
}
- }
+ .distinctUntilChanged()
fun dataSummaryFlow(): Flow<String> =
combine(defaultDataSubscriptionIdFlow(), activeDataSubscriptionIdFlow()) {
- defaultSubId,
- activeSubId ->
- DataSubscriptionIds(defaultSubId, activeSubId)
+ defaultDataSubId,
+ activeDataSubId ->
+ getDataSummary(defaultDataSubId, activeDataSubId)
}
- .distinctUntilChanged()
- .map { it.getDataSummary() }
.conflate()
.flowOn(Dispatchers.Default)
- private data class DataSubscriptionIds(
- val defaultSubId: Int,
- val activeSubId: Int,
- )
-
- private fun DataSubscriptionIds.getDataSummary(): String {
- val activeSubInfo = subscriptionManager.getActiveSubscriptionInfo(activeSubId) ?: return ""
+ private fun getDataSummary(defaultDataSubId: Int, activeDataSubId: Int): String {
+ if (defaultDataSubId == activeDataSubId) return getDisplayName(defaultDataSubId)
+ val activeSubInfo =
+ subscriptionManager.getActiveSubscriptionInfo(activeDataSubId)
+ ?: return getDisplayName(defaultDataSubId)
if (!SubscriptionUtil.isSubscriptionVisible(subscriptionManager, context, activeSubInfo)) {
- return getDisplayName(defaultSubId)
+ return getDisplayName(defaultDataSubId)
}
- val uniqueName = getDisplayName(activeSubId)
- return if (activeSubId == defaultSubId) {
- uniqueName
- } else {
- context.getString(R.string.mobile_data_temp_using, uniqueName)
- }
+ // non-DDS is active
+ return context.getString(R.string.mobile_data_temp_using, getDisplayName(activeDataSubId))
}
companion object {