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
This commit is contained in:
Sunny Shao
2019-04-24 22:22:35 +08:00
parent 703e6aa092
commit 238928dea2
5 changed files with 64 additions and 31 deletions

View File

@@ -73,11 +73,6 @@ public class MobileDataSlice implements CustomSliceable {
@Override
public Slice getSlice() {
// Mobile data not available, thus return no Slice.
if (!isMobileDataAvailable()) {
return null;
}
final IconCompat icon = IconCompat.createWithResource(mContext,
R.drawable.ic_network_cell);
final String title = mContext.getText(R.string.mobile_data_settings_title).toString();
@@ -85,20 +80,14 @@ public class MobileDataSlice implements CustomSliceable {
// Return a Slice without the mobile data toggle when airplane mode is on.
if (isAirplaneModeEnabled()) {
final CharSequence summary = mContext.getText(R.string.mobile_data_ap_mode_disabled);
// Intent does nothing, but we have to pass an intent to the Row.
final PendingIntent intent = PendingIntent.getActivity(mContext, 0 /* requestCode */,
new Intent(), 0 /* flags */);
final SliceAction deadAction =
SliceAction.create(intent, icon, ListBuilder.ICON_IMAGE, title);
final ListBuilder listBuilder = new ListBuilder(mContext, getUri(),
ListBuilder.INFINITY)
.setAccentColor(color)
.addRow(new ListBuilder.RowBuilder()
.setTitle(title)
.setSubtitle(summary)
.setPrimaryAction(deadAction));
return listBuilder.build();
return buildUnavailableMobileDataSlice(title,
mContext.getText(R.string.mobile_data_ap_mode_disabled), icon, color);
}
// Return a Slice without the mobile data toggle when mobile data disabled.
if (!isMobileDataAvailable()) {
return buildUnavailableMobileDataSlice(title,
mContext.getText(R.string.sim_cellular_data_unavailable), icon, color);
}
final CharSequence summary = getSummary();
@@ -128,7 +117,7 @@ public class MobileDataSlice implements CustomSliceable {
@Override
public void onNotifyChange(Intent intent) {
final boolean newState = intent.getBooleanExtra(EXTRA_TOGGLE_STATE,
isMobileDataEnabled());
isMobileDataEnabled());
final int defaultSubId = getDefaultSubscriptionId(mSubscriptionManager);
if (defaultSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
@@ -212,6 +201,22 @@ public class MobileDataSlice implements CustomSliceable {
return mTelephonyManager.isDataEnabled();
}
private Slice buildUnavailableMobileDataSlice(String title, CharSequence summary,
IconCompat icon, int color) {
final PendingIntent intent = PendingIntent.getActivity(mContext, 0 /* requestCode */,
new Intent(), 0 /* flags */);
final SliceAction deadAction =
SliceAction.create(intent, icon, ListBuilder.ICON_IMAGE, title);
final ListBuilder listBuilder = new ListBuilder(mContext, getUri(),
ListBuilder.INFINITY)
.setAccentColor(color)
.addRow(new ListBuilder.RowBuilder()
.setTitle(title)
.setSubtitle(summary)
.setPrimaryAction(deadAction));
return listBuilder.build();
}
/**
* Listener for mobile data state changes.
*