From 238928dea28f0dab2bbfc186115cee8a7cb4bddd Mon Sep 17 00:00:00 2001 From: Sunny Shao Date: Wed, 24 Apr 2019 22:22:35 +0800 Subject: [PATCH] Show mobile data slice in Search even no SIM card - return slice like in airplan mode when mobile data disabled in the getSlice of the MobileDataSlice - replace CONDITIONALLY_UNAVAILABLE by DISABLED_DEPENDENT_SETTING in the getAvailabilityStatus of the MobileDataPreferenceController - remove the duplicated mobile data item by update data_usage_cellular.xml Fixes: 130650621 Test: robotest Change-Id: I42c0983c27d4edb17fcdce7ca386023911254d2d --- res/xml/data_usage_cellular.xml | 4 +- .../MobileDataPreferenceController.java | 2 +- .../network/telephony/MobileDataSlice.java | 45 ++++++++++--------- .../MobileDataPreferenceControllerTest.java | 6 +-- .../telephony/MobileDataSliceTest.java | 38 +++++++++++++--- 5 files changed, 64 insertions(+), 31 deletions(-) diff --git a/res/xml/data_usage_cellular.xml b/res/xml/data_usage_cellular.xml index b50eaba68e6..fe1a0720799 100644 --- a/res/xml/data_usage_cellular.xml +++ b/res/xml/data_usage_cellular.xml @@ -16,6 +16,7 @@ + android:title="@string/data_usage_enable_mobile" + settings:searchable="false" /> ()).when(mSubscriptionManager).getSelectableSubscriptionInfoList(); + final Slice mobileData = mMobileDataSlice.getSlice(); - final Slice slice = mMobileDataSlice.getSlice(); + final SliceMetadata metadata = SliceMetadata.from(mContext, mobileData); + assertThat(metadata.getTitle()) + .isEqualTo(mContext.getString(R.string.mobile_data_settings_title)); - assertThat(slice).isNull(); + assertThat(metadata.getSubtitle()) + .isEqualTo(mContext.getString(R.string.sim_cellular_data_unavailable)); + + final List toggles = metadata.getToggles(); + assertThat(toggles).hasSize(0); + + final SliceAction primaryAction = metadata.getPrimaryAction(); + final PendingIntent pendingIntent = primaryAction.getAction(); + final Intent actionIntent = pendingIntent.getIntent(); + + assertThat(actionIntent).isNull(); } @Test - public void isMobileDataAvailable_nullSubscriptions_returnsNull() { + public void isMobileDataAvailable_nullSubscriptions_slicePrimaryActionIsEmpty() { doReturn(null).when(mSubscriptionManager).getSelectableSubscriptionInfoList(); + final Slice mobileData = mMobileDataSlice.getSlice(); - final Slice slice = mMobileDataSlice.getSlice(); + final SliceMetadata metadata = SliceMetadata.from(mContext, mobileData); + assertThat(metadata.getTitle()) + .isEqualTo(mContext.getString(R.string.mobile_data_settings_title)); - assertThat(slice).isNull(); + assertThat(metadata.getSubtitle()) + .isEqualTo(mContext.getString(R.string.sim_cellular_data_unavailable)); + + final List toggles = metadata.getToggles(); + assertThat(toggles).hasSize(0); + + final SliceAction primaryAction = metadata.getPrimaryAction(); + final PendingIntent pendingIntent = primaryAction.getAction(); + final Intent actionIntent = pendingIntent.getIntent(); + + assertThat(actionIntent).isNull(); } @Test