Check for Data Usage intent before populating "Data Usage" summary.

On some devices, data usage is not available; thus, it is possible that
ACTION_DATA_USAGE_SETTINGS has no matching activity. If no matching
activity is found, we should not populate "data usage" in the summary
field.

Bug: 111398942
Test: Manual check. I see that data usage is no longer visible on
devices without Data Usage activity.
Test: make RunSettingsRoboTests

Change-Id: I838206b76497c6550ef4826ad19e605cd32906ee
This commit is contained in:
Ben Lin
2018-09-05 00:57:41 -07:00
parent 7f050853c1
commit 3210396de9
2 changed files with 47 additions and 5 deletions

View File

@@ -79,7 +79,7 @@ public class NetworkDashboardFragmentTest {
final SummaryLoader.SummaryProvider provider =
new NetworkDashboardFragment.SummaryProvider(mContext, summaryLoader,
wifiPreferenceController, mobileNetworkPreferenceController,
tetherPreferenceController);
tetherPreferenceController, () -> true);
provider.setListening(false);
@@ -107,7 +107,7 @@ public class NetworkDashboardFragmentTest {
final SummaryLoader.SummaryProvider provider =
new NetworkDashboardFragment.SummaryProvider(mContext, summaryLoader,
wifiPreferenceController, mobileNetworkPreferenceController,
tetherPreferenceController);
tetherPreferenceController, () -> true);
provider.setListening(false);
@@ -121,4 +121,34 @@ public class NetworkDashboardFragmentTest {
verify(summaryLoader).setSummary(provider, "Wi\u2011Fi and data usage");
}
@Test
public void summaryProviderSetListening_noDataUsageActivity_shouldReturnNoDataUsageSummary() {
final WifiMasterSwitchPreferenceController wifiPreferenceController =
mock(WifiMasterSwitchPreferenceController.class);
final MobileNetworkPreferenceController mobileNetworkPreferenceController =
mock(MobileNetworkPreferenceController.class);
final TetherPreferenceController tetherPreferenceController =
mock(TetherPreferenceController.class);
final SummaryLoader summaryLoader = mock(SummaryLoader.class);
final SummaryLoader.SummaryProvider provider =
new NetworkDashboardFragment.SummaryProvider(mContext, summaryLoader,
wifiPreferenceController, mobileNetworkPreferenceController,
tetherPreferenceController, () -> false);
provider.setListening(false);
verifyZeroInteractions(summaryLoader);
when(wifiPreferenceController.isAvailable()).thenReturn(true);
when(mobileNetworkPreferenceController.isAvailable()).thenReturn(true);
when(tetherPreferenceController.isAvailable()).thenReturn(true);
provider.setListening(true);
verify(summaryLoader).setSummary(provider, "Wi\u2011Fi, mobile, and hotspot");
}
}