diff --git a/src/com/android/settings/network/MobileIconGroupExt.kt b/src/com/android/settings/network/MobileIconGroupExt.kt new file mode 100644 index 00000000000..0435ef0f221 --- /dev/null +++ b/src/com/android/settings/network/MobileIconGroupExt.kt @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.network + +import android.content.Context +import android.telephony.SubscriptionManager +import android.text.Html +import com.android.settingslib.SignalIcon + +fun SignalIcon.MobileIconGroup.getSummaryForSub(context: Context, subId: Int): String = + when (dataContentDescription) { + 0 -> "" + else -> { + SubscriptionManager.getResourcesForSubId(context, subId) + .getString(dataContentDescription) + } + } + +fun String.maybeToHtml(): CharSequence = when { + contains(HTML_TAG) -> Html.fromHtml(this, Html.FROM_HTML_MODE_LEGACY) + else -> this +} + +private const val HTML_TAG = "5G E" + } +} diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java index 436d37f7ba6..2d63c713f42 100644 --- a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java +++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java @@ -42,7 +42,6 @@ import android.telephony.ServiceState; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; -import android.text.Html; import androidx.slice.Slice; import androidx.slice.builders.ListBuilder; @@ -56,7 +55,6 @@ import com.android.settings.wifi.slice.WifiSliceItem; import com.android.wifitrackerlib.WifiEntry; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -166,11 +164,9 @@ public class ProviderModelSliceHelperTest { assertThat(testItem).isNull(); } - @Ignore @Test public void createCarrierRow_hasDdsAndActiveNetworkIsNotCellular_verifyTitleAndSummary() { String expectDisplayName = "Name1"; - CharSequence expectedSubtitle = Html.fromHtml("5G", Html.FROM_HTML_MODE_LEGACY); String networkType = "5G"; mockConnections(true, ServiceState.STATE_IN_SERVICE, expectDisplayName, true, true); @@ -180,19 +176,17 @@ public class ProviderModelSliceHelperTest { networkType); assertThat(testRowBuild.getTitle()).isEqualTo(expectDisplayName); - assertThat(testRowBuild.getSubtitle()).isEqualTo(expectedSubtitle); + assertThat(testRowBuild.getSubtitle()).isEqualTo("5G"); } - @Ignore @Test public void createCarrierRow_wifiOnhasDdsAndActiveNetworkIsCellular_verifyTitleAndSummary() { String expectDisplayName = "Name1"; String networkType = "5G"; String connectedText = ResourcesUtils.getResourcesString(mContext, "mobile_data_connection_active"); - CharSequence expectedSubtitle = Html.fromHtml(ResourcesUtils.getResourcesString(mContext, - "preference_summary_default_combination", connectedText, networkType), - Html.FROM_HTML_MODE_LEGACY); + CharSequence expectedSubtitle = ResourcesUtils.getResourcesString(mContext, + "preference_summary_default_combination", connectedText, networkType); mockConnections(true, ServiceState.STATE_IN_SERVICE, expectDisplayName, true, true); addNetworkTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); @@ -204,13 +198,11 @@ public class ProviderModelSliceHelperTest { assertThat(testRowBuild.getSubtitle()).isEqualTo(expectedSubtitle); } - @Ignore @Test public void createCarrierRow_noNetworkAvailable_verifyTitleAndSummary() { String expectDisplayName = "Name1"; - CharSequence expectedSubtitle = Html.fromHtml( - ResourcesUtils.getResourcesString(mContext, "mobile_data_no_connection"), - Html.FROM_HTML_MODE_LEGACY); + CharSequence expectedSubtitle = + ResourcesUtils.getResourcesString(mContext, "mobile_data_no_connection"); String networkType = ""; mockConnections(true, ServiceState.STATE_OUT_OF_SERVICE, expectDisplayName, diff --git a/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java index c4abdd19841..bca12c17f21 100644 --- a/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java @@ -53,7 +53,6 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyDisplayInfo; import android.telephony.TelephonyManager; -import android.text.Html; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleRegistry; @@ -266,8 +265,6 @@ public class SubscriptionsPreferenceControllerTest { @Test @UiThreadTest public void displayPreference_providerAndHasMultiSimAndActive_connectedAndRat() { - final CharSequence expectedSummary = - Html.fromHtml("Connected / 5G", Html.FROM_HTML_MODE_LEGACY); final String networkType = "5G"; final List sub = setupMockSubscriptions(2); doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); @@ -281,14 +278,12 @@ public class SubscriptionsPreferenceControllerTest { mController.onResume(); mController.displayPreference(mPreferenceScreen); - assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary); + assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo("Connected / 5G"); } @Test @UiThreadTest public void displayPreference_providerAndHasMultiSimAndActiveCarrierWifi_connectedAndWPlus() { - final CharSequence expectedSummary = - Html.fromHtml("Connected / W+", Html.FROM_HTML_MODE_LEGACY); final String networkType = "W+"; final List sub = setupMockSubscriptions(2); doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); @@ -302,7 +297,7 @@ public class SubscriptionsPreferenceControllerTest { mController.onResume(); mController.displayPreference(mPreferenceScreen); - assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary); + assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo("Connected / W+"); } @Test @@ -310,8 +305,6 @@ public class SubscriptionsPreferenceControllerTest { public void displayPreference_providerAndHasMultiSimButMobileDataOff_notAutoConnect() { final String dataOffSummary = ResourcesUtils.getResourcesString(mContext, "mobile_data_off_summary"); - final CharSequence expectedSummary = - Html.fromHtml(dataOffSummary, Html.FROM_HTML_MODE_LEGACY); final String networkType = "5G"; final List sub = setupMockSubscriptions(2); doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); @@ -324,14 +317,12 @@ public class SubscriptionsPreferenceControllerTest { mController.onResume(); mController.displayPreference(mPreferenceScreen); - assertThat(mPreferenceCategory.getPreference(0).getSummary()) - .isEqualTo(expectedSummary.toString()); + assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(dataOffSummary); } @Test @UiThreadTest public void displayPreference_providerAndHasMultiSimAndNotActive_showRatOnly() { - final CharSequence expectedSummary = Html.fromHtml("5G", Html.FROM_HTML_MODE_LEGACY); final String networkType = "5G"; final List sub = setupMockSubscriptions(2); doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); @@ -345,7 +336,7 @@ public class SubscriptionsPreferenceControllerTest { mController.onResume(); mController.displayPreference(mPreferenceScreen); - assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary); + assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(networkType); } @Test @@ -362,8 +353,6 @@ public class SubscriptionsPreferenceControllerTest { @Test @UiThreadTest public void onTelephonyDisplayInfoChanged_providerAndHasMultiSimAndActive_connectedAndRat() { - final CharSequence expectedSummary = - Html.fromHtml("Connected / LTE", Html.FROM_HTML_MODE_LEGACY); final String networkType = "LTE"; final List sub = setupMockSubscriptions(2); final TelephonyDisplayInfo telephonyDisplayInfo = @@ -383,14 +372,12 @@ public class SubscriptionsPreferenceControllerTest { mController.onTelephonyDisplayInfoChanged(sub.get(0).getSubscriptionId(), telephonyDisplayInfo); - assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary); + assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo("Connected / LTE"); } @Test @UiThreadTest public void onTelephonyDisplayInfoChanged_providerAndHasMultiSimAndNotActive_showRat() { - final CharSequence expectedSummary = - Html.fromHtml("LTE", Html.FROM_HTML_MODE_LEGACY); final String networkType = "LTE"; final List sub = setupMockSubscriptions(2); final TelephonyDisplayInfo telephonyDisplayInfo = @@ -409,7 +396,7 @@ public class SubscriptionsPreferenceControllerTest { mController.onTelephonyDisplayInfoChanged(sub.get(0).getSubscriptionId(), telephonyDisplayInfo); - assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary); + assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(networkType); } @Test @@ -417,8 +404,6 @@ public class SubscriptionsPreferenceControllerTest { public void onTelephonyDisplayInfoChanged_providerAndHasMultiSimAndOutOfService_noConnection() { final String noConnectionSummary = ResourcesUtils.getResourcesString(mContext, "mobile_data_no_connection"); - final CharSequence expectedSummary = - Html.fromHtml(noConnectionSummary, Html.FROM_HTML_MODE_LEGACY); final String networkType = "LTE"; final List sub = setupMockSubscriptions(2); final TelephonyDisplayInfo telephonyDisplayInfo = @@ -437,7 +422,8 @@ public class SubscriptionsPreferenceControllerTest { mController.onTelephonyDisplayInfoChanged(sub.get(0).getSubscriptionId(), telephonyDisplayInfo); - assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary); + assertThat(mPreferenceCategory.getPreference(0).getSummary()) + .isEqualTo(noConnectionSummary); } @Test