diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml
index eb80ac84162..825d72cd3e8 100644
--- a/res/xml/mobile_network_settings.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -91,9 +91,11 @@
settings:searchable="false"
settings:controller="com.android.settings.network.telephony.RoamingPreferenceController"/>
+
AVAILABLE
-
- else -> AVAILABLE_UNSEARCHABLE
- }
+ override fun getAvailabilityStatus() = AVAILABLE
override fun displayPreference(screen: PreferenceScreen) {
super.displayPreference(screen)
@@ -75,11 +72,12 @@ class DataUsagePreferenceController(context: Context, key: String) :
override fun handlePreferenceTreeClick(preference: Preference): Boolean {
if (preference.key != preferenceKey || networkTemplate == null) return false
- val intent = Intent(Settings.ACTION_MOBILE_DATA_USAGE).apply {
- setPackage(mContext.packageName)
- putExtra(Settings.EXTRA_NETWORK_TEMPLATE, networkTemplate)
- putExtra(Settings.EXTRA_SUB_ID, mSubId)
- }
+ val intent =
+ Intent(Settings.ACTION_MOBILE_DATA_USAGE).apply {
+ setPackage(mContext.packageName)
+ putExtra(Settings.EXTRA_NETWORK_TEMPLATE, networkTemplate)
+ putExtra(Settings.EXTRA_SUB_ID, subId)
+ }
mContext.startActivity(intent)
return true
}
@@ -93,13 +91,10 @@ class DataUsagePreferenceController(context: Context, key: String) :
preference.summary = summary?.displayText
}
- private fun getNetworkTemplate(): NetworkTemplate? = when {
- SubscriptionManager.isValidSubscriptionId(mSubId) -> {
- DataUsageLib.getMobileTemplate(mContext, mSubId)
- }
-
- else -> null
- }
+ private fun getNetworkTemplate(): NetworkTemplate? =
+ if (SubscriptionManager.isValidSubscriptionId(subId)) {
+ DataUsageLib.getMobileTemplate(mContext, subId)
+ } else null
@VisibleForTesting
fun createNetworkCycleDataRepository(): NetworkCycleDataRepository? =
@@ -118,4 +113,16 @@ class DataUsagePreferenceController(context: Context, key: String) :
val allTimeUsage = repository.queryUsage(AllTimeRange)
return allTimeUsage.getDataUsedString(mContext) to (allTimeUsage.usage > 0)
}
+
+ companion object {
+ class DataUsageSearchItem(private val context: Context) : MobileNetworkSettingsSearchItem {
+ override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
+ if (!DataUsageUtils.hasMobileData(context)) return null
+ return MobileNetworkSettingsSearchResult(
+ key = "data_usage_summary",
+ title = context.getString(R.string.app_cellular_data_usage),
+ )
+ }
+ }
+ }
}
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt b/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt
index 58661f0e4fb..55cb1fad8f3 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt
@@ -21,6 +21,7 @@ import android.provider.Settings
import android.telephony.SubscriptionInfo
import com.android.settings.R
import com.android.settings.network.SubscriptionUtil
+import com.android.settings.network.telephony.DataUsagePreferenceController.Companion.DataUsageSearchItem
import com.android.settings.network.telephony.MmsMessagePreferenceController.Companion.MmsMessageSearchItem
import com.android.settings.network.telephony.NrAdvancedCallingPreferenceController.Companion.NrAdvancedCallingSearchItem
import com.android.settings.network.telephony.RoamingPreferenceController.Companion.RoamingSearchItem
@@ -114,6 +115,7 @@ class MobileNetworkSettingsSearchIndex(
fun createSearchItems(context: Context): List =
listOf(
+ DataUsageSearchItem(context),
MmsMessageSearchItem(context),
NrAdvancedCallingSearchItem(context),
PreferredNetworkModeSearchItem(context),
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt
index 7124b6ac2cd..f4974e9cd8e 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt
@@ -29,7 +29,6 @@ import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.dx.mockito.inline.extended.ExtendedMockito
import com.android.settings.core.BasePreferenceController.AVAILABLE
-import com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE
import com.android.settings.datausage.DataUsageUtils
import com.android.settings.datausage.lib.DataUsageLib
import com.android.settings.datausage.lib.NetworkCycleDataRepository
@@ -77,7 +76,6 @@ class DataUsagePreferenceControllerTest {
@Before
fun setUp() {
mockSession = ExtendedMockito.mockitoSession()
- .initMocks(this)
.spyStatic(DataUsageUtils::class.java)
.spyStatic(DataUsageLib::class.java)
.strictness(Strictness.LENIENT)
@@ -101,18 +99,10 @@ class DataUsagePreferenceControllerTest {
}
@Test
- fun getAvailabilityStatus_validSubId_returnAvailable() {
+ fun getAvailabilityStatus_returnAvailable() {
assertThat(controller.availabilityStatus).isEqualTo(AVAILABLE)
}
- @Test
- fun getAvailabilityStatus_invalidSubId_returnUnsearchable() {
- val availabilityStatus =
- controller.getAvailabilityStatus(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
-
- assertThat(availabilityStatus).isEqualTo(AVAILABLE_UNSEARCHABLE)
- }
-
@Test
fun handlePreferenceTreeClick_startActivity() = runBlocking {
val usageData = NetworkUsageData(START_TIME, END_TIME, 1L)