MobileData slice should be null if not-actionable

In cases where MobileData should not be changed:
- Airplane mode
- No data subscriptions

we will return a null slice, rather than a slice with a no-op intent
attached as a primary action. The problem with the no-op intent is that
Slices assumes all actions are by definition, actionable, and the the
TalkBack description announces that the item is clickable, which it
really isn't.

We will in the future investigate disabled actions on Slices, but this
is the short-term fix.

Fixes: 132924748
Test: Robolectric
Test: Panel tester app
Change-Id: I1d62af32fe2dd985f0b52ea4188651e76f9c90ec
This commit is contained in:
Matthew Fritze
2019-06-12 15:00:55 -07:00
parent 102d43b5c1
commit 63bc6a1090
2 changed files with 7 additions and 67 deletions

View File

@@ -174,21 +174,7 @@ public class MobileDataSliceTest {
doReturn(new ArrayList<>()).when(mSubscriptionManager).getSelectableSubscriptionInfoList();
final Slice mobileData = mMobileDataSlice.getSlice();
final SliceMetadata metadata = SliceMetadata.from(mContext, mobileData);
assertThat(metadata.getTitle())
.isEqualTo(mContext.getString(R.string.mobile_data_settings_title));
assertThat(metadata.getSubtitle())
.isEqualTo(mContext.getString(R.string.sim_cellular_data_unavailable));
final List<SliceAction> 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();
assertThat(mobileData).isNull();
}
@Test
@@ -196,21 +182,7 @@ public class MobileDataSliceTest {
doReturn(null).when(mSubscriptionManager).getSelectableSubscriptionInfoList();
final Slice mobileData = mMobileDataSlice.getSlice();
final SliceMetadata metadata = SliceMetadata.from(mContext, mobileData);
assertThat(metadata.getTitle())
.isEqualTo(mContext.getString(R.string.mobile_data_settings_title));
assertThat(metadata.getSubtitle())
.isEqualTo(mContext.getString(R.string.sim_cellular_data_unavailable));
final List<SliceAction> 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();
assertThat(mobileData).isNull();
}
@Test
@@ -219,20 +191,6 @@ public class MobileDataSliceTest {
doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID);
final Slice mobileData = mMobileDataSlice.getSlice();
final SliceMetadata metadata = SliceMetadata.from(mContext, mobileData);
assertThat(metadata.getTitle())
.isEqualTo(mContext.getString(R.string.mobile_data_settings_title));
assertThat(metadata.getSubtitle())
.isEqualTo(mContext.getString(R.string.mobile_data_ap_mode_disabled));
final List<SliceAction> 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();
assertThat(mobileData).isNull();
}
}