Loading src/com/android/settings/slices/SliceBuilderUtils.java +12 −35 Original line number Diff line number Diff line Loading @@ -86,8 +86,13 @@ public class SliceBuilderUtils { FeatureFactory.getFactory(context).getMetricsFeatureProvider() .action(context, MetricsEvent.ACTION_SETTINGS_SLICE_REQUESTED, sliceNamePair); if (controller.getAvailabilityStatus() != AVAILABLE) { return buildUnavailableSlice(context, sliceData, controller); if (!controller.isAvailable()) { // Cannot guarantee setting page is accessible, let the presenter handle error case. return null; } if (controller.getAvailabilityStatus() == DISABLED_DEPENDENT_SETTING) { return buildUnavailableSlice(context, sliceData); } switch (sliceData.getSliceType()) { Loading Loading @@ -176,14 +181,6 @@ public class SliceBuilderUtils { return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */); } /** * @return {@link PendingIntent} to the Settings home page. */ public static PendingIntent getSettingsIntent(Context context) { final Intent intent = new Intent(Settings.ACTION_SETTINGS); return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */); } /** * @return the summary text for a {@link Slice} built for {@param sliceData}. */ Loading Loading @@ -355,40 +352,20 @@ public class SliceBuilderUtils { return keywords; } private static Slice buildUnavailableSlice(Context context, SliceData data, BasePreferenceController controller) { private static Slice buildUnavailableSlice(Context context, SliceData data) { final String title = data.getTitle(); final List<String> keywords = buildSliceKeywords(data); @ColorInt final int color = Utils.getColorAccent(context); final String summary; final SliceAction primaryAction; final CharSequence summary = context.getText(R.string.disabled_dependent_setting_summary); final IconCompat icon = IconCompat.createWithResource(context, data.getIconResource()); switch (controller.getAvailabilityStatus()) { case UNSUPPORTED_ON_DEVICE: summary = context.getString(R.string.unsupported_setting_summary); primaryAction = new SliceAction(getSettingsIntent(context), icon, title); break; case DISABLED_FOR_USER: summary = context.getString(R.string.disabled_for_user_setting_summary); primaryAction = new SliceAction(getContentPendingIntent(context, data), icon, title); break; case DISABLED_DEPENDENT_SETTING: summary = context.getString(R.string.disabled_dependent_setting_summary); primaryAction = new SliceAction(getContentPendingIntent(context, data), icon, title); break; case CONDITIONALLY_UNAVAILABLE: default: summary = context.getString(R.string.unknown_unavailability_setting_summary); primaryAction = new SliceAction(getSettingsIntent(context), icon, title); } final SliceAction primaryAction = new SliceAction(getContentPendingIntent(context, data), icon, title); return new ListBuilder(context, data.getUri(), ListBuilder.INFINITY) .setAccentColor(color) .addRow(builder -> builder .setTitle(title) .setTitleItem(icon) .setSubtitle(summary) .setPrimaryAction(primaryAction)) .setKeywords(keywords) Loading src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java +11 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.PersistableBundle; import android.provider.Settings; import android.support.v4.graphics.drawable.IconCompat; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionManager; Loading Loading @@ -121,7 +122,7 @@ public class WifiCallingSliceHelper { return getNonActionableWifiCallingSlice( mContext.getString(R.string.wifi_calling_settings_title), mContext.getString(R.string.wifi_calling_not_supported, carrierName), sliceUri, SliceBuilderUtils.getSettingsIntent(mContext)); sliceUri, getSettingsIntent(mContext)); } final ImsManager imsManager = getImsManager(subId); Loading @@ -132,7 +133,7 @@ public class WifiCallingSliceHelper { return getNonActionableWifiCallingSlice( mContext.getString(R.string.wifi_calling_settings_title), mContext.getString(R.string.wifi_calling_not_supported, carrierName), sliceUri, SliceBuilderUtils.getSettingsIntent(mContext)); sliceUri, getSettingsIntent(mContext)); } try { Loading Loading @@ -338,6 +339,14 @@ public class WifiCallingSliceHelper { return intent; } /** * @return {@link PendingIntent} to the Settings home page. */ public static PendingIntent getSettingsIntent(Context context) { final Intent intent = new Intent(Settings.ACTION_SETTINGS); return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */); } private PendingIntent getBroadcastIntent(String action) { final Intent intent = new Intent(action); intent.setClass(mContext, SliceBroadcastReceiver.class); Loading tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java +3 −13 Original line number Diff line number Diff line Loading @@ -336,7 +336,7 @@ public class SliceBuilderUtilsTest { final Slice slice = SliceBuilderUtils.buildSlice(mContext, data); SliceTester.testSettingsUnavailableSlice(mContext, slice, data); assertThat(slice).isNull(); } @Test Loading @@ -349,7 +349,7 @@ public class SliceBuilderUtilsTest { final Slice slice = SliceBuilderUtils.buildSlice(mContext, data); SliceTester.testSettingsUnavailableSlice(mContext, slice, data); assertThat(slice).isNull(); } @Test Loading Loading @@ -394,7 +394,7 @@ public class SliceBuilderUtilsTest { .isEqualTo(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME); assertThat(capturedLoggingPair.second) .isEqualTo(data.getKey()); SliceTester.testSettingsUnavailableSlice(mContext, slice, data); assertThat(slice).isNull(); } @Test Loading @@ -408,16 +408,6 @@ public class SliceBuilderUtilsTest { assertThat(intentData).isEqualTo(expectedUri); } @Test public void getSettingsIntent_createsIntentToSettings() { final Intent intent = new Intent(Settings.ACTION_SETTINGS); final PendingIntent expectedIntent = PendingIntent.getActivity(mContext, 0, intent, 0); final PendingIntent settingsIntent = SliceBuilderUtils.getSettingsIntent(mContext); assertThat(expectedIntent).isEqualTo(settingsIntent); } private SliceData getDummyData() { return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE); } Loading tests/robotests/src/com/android/settings/testutils/SliceTester.java +2 −14 Original line number Diff line number Diff line Loading @@ -191,20 +191,8 @@ public class SliceTester { assertThat(toggles).isEmpty(); final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction(); final int availabilityStatus = SliceBuilderUtils.getPreferenceController(context, sliceData).getAvailabilityStatus(); switch (availabilityStatus) { case UNSUPPORTED_ON_DEVICE: case CONDITIONALLY_UNAVAILABLE: assertThat(primaryPendingIntent).isEqualTo( SliceBuilderUtils.getSettingsIntent(context)); break; case DISABLED_FOR_USER: case DISABLED_DEPENDENT_SETTING: assertThat(primaryPendingIntent).isEqualTo( SliceBuilderUtils.getContentPendingIntent(context, sliceData)); break; } assertThat(primaryPendingIntent).isEqualTo(SliceBuilderUtils.getContentPendingIntent( context, sliceData)); final List<SliceItem> sliceItems = slice.getItems(); assertTitle(sliceItems, sliceData.getTitle()); Loading tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -114,7 +114,7 @@ public class WifiCallingSliceHelperTest { final Slice slice = mWfcSliceHelper.createWifiCallingSlice(mWfcURI); testWifiCallingSettingsUnavailableSlice(slice, null, SliceBuilderUtils.getSettingsIntent(mContext)); WifiCallingSliceHelper.getSettingsIntent(mContext)); } @Test Loading @@ -125,7 +125,7 @@ public class WifiCallingSliceHelperTest { assertThat(mWfcSliceHelper.getDefaultVoiceSubId()).isEqualTo(1); testWifiCallingSettingsUnavailableSlice(slice, null, SliceBuilderUtils.getSettingsIntent(mContext)); WifiCallingSliceHelper.getSettingsIntent(mContext)); } @Test Loading Loading
src/com/android/settings/slices/SliceBuilderUtils.java +12 −35 Original line number Diff line number Diff line Loading @@ -86,8 +86,13 @@ public class SliceBuilderUtils { FeatureFactory.getFactory(context).getMetricsFeatureProvider() .action(context, MetricsEvent.ACTION_SETTINGS_SLICE_REQUESTED, sliceNamePair); if (controller.getAvailabilityStatus() != AVAILABLE) { return buildUnavailableSlice(context, sliceData, controller); if (!controller.isAvailable()) { // Cannot guarantee setting page is accessible, let the presenter handle error case. return null; } if (controller.getAvailabilityStatus() == DISABLED_DEPENDENT_SETTING) { return buildUnavailableSlice(context, sliceData); } switch (sliceData.getSliceType()) { Loading Loading @@ -176,14 +181,6 @@ public class SliceBuilderUtils { return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */); } /** * @return {@link PendingIntent} to the Settings home page. */ public static PendingIntent getSettingsIntent(Context context) { final Intent intent = new Intent(Settings.ACTION_SETTINGS); return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */); } /** * @return the summary text for a {@link Slice} built for {@param sliceData}. */ Loading Loading @@ -355,40 +352,20 @@ public class SliceBuilderUtils { return keywords; } private static Slice buildUnavailableSlice(Context context, SliceData data, BasePreferenceController controller) { private static Slice buildUnavailableSlice(Context context, SliceData data) { final String title = data.getTitle(); final List<String> keywords = buildSliceKeywords(data); @ColorInt final int color = Utils.getColorAccent(context); final String summary; final SliceAction primaryAction; final CharSequence summary = context.getText(R.string.disabled_dependent_setting_summary); final IconCompat icon = IconCompat.createWithResource(context, data.getIconResource()); switch (controller.getAvailabilityStatus()) { case UNSUPPORTED_ON_DEVICE: summary = context.getString(R.string.unsupported_setting_summary); primaryAction = new SliceAction(getSettingsIntent(context), icon, title); break; case DISABLED_FOR_USER: summary = context.getString(R.string.disabled_for_user_setting_summary); primaryAction = new SliceAction(getContentPendingIntent(context, data), icon, title); break; case DISABLED_DEPENDENT_SETTING: summary = context.getString(R.string.disabled_dependent_setting_summary); primaryAction = new SliceAction(getContentPendingIntent(context, data), icon, title); break; case CONDITIONALLY_UNAVAILABLE: default: summary = context.getString(R.string.unknown_unavailability_setting_summary); primaryAction = new SliceAction(getSettingsIntent(context), icon, title); } final SliceAction primaryAction = new SliceAction(getContentPendingIntent(context, data), icon, title); return new ListBuilder(context, data.getUri(), ListBuilder.INFINITY) .setAccentColor(color) .addRow(builder -> builder .setTitle(title) .setTitleItem(icon) .setSubtitle(summary) .setPrimaryAction(primaryAction)) .setKeywords(keywords) Loading
src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java +11 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.PersistableBundle; import android.provider.Settings; import android.support.v4.graphics.drawable.IconCompat; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionManager; Loading Loading @@ -121,7 +122,7 @@ public class WifiCallingSliceHelper { return getNonActionableWifiCallingSlice( mContext.getString(R.string.wifi_calling_settings_title), mContext.getString(R.string.wifi_calling_not_supported, carrierName), sliceUri, SliceBuilderUtils.getSettingsIntent(mContext)); sliceUri, getSettingsIntent(mContext)); } final ImsManager imsManager = getImsManager(subId); Loading @@ -132,7 +133,7 @@ public class WifiCallingSliceHelper { return getNonActionableWifiCallingSlice( mContext.getString(R.string.wifi_calling_settings_title), mContext.getString(R.string.wifi_calling_not_supported, carrierName), sliceUri, SliceBuilderUtils.getSettingsIntent(mContext)); sliceUri, getSettingsIntent(mContext)); } try { Loading Loading @@ -338,6 +339,14 @@ public class WifiCallingSliceHelper { return intent; } /** * @return {@link PendingIntent} to the Settings home page. */ public static PendingIntent getSettingsIntent(Context context) { final Intent intent = new Intent(Settings.ACTION_SETTINGS); return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */); } private PendingIntent getBroadcastIntent(String action) { final Intent intent = new Intent(action); intent.setClass(mContext, SliceBroadcastReceiver.class); Loading
tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java +3 −13 Original line number Diff line number Diff line Loading @@ -336,7 +336,7 @@ public class SliceBuilderUtilsTest { final Slice slice = SliceBuilderUtils.buildSlice(mContext, data); SliceTester.testSettingsUnavailableSlice(mContext, slice, data); assertThat(slice).isNull(); } @Test Loading @@ -349,7 +349,7 @@ public class SliceBuilderUtilsTest { final Slice slice = SliceBuilderUtils.buildSlice(mContext, data); SliceTester.testSettingsUnavailableSlice(mContext, slice, data); assertThat(slice).isNull(); } @Test Loading Loading @@ -394,7 +394,7 @@ public class SliceBuilderUtilsTest { .isEqualTo(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME); assertThat(capturedLoggingPair.second) .isEqualTo(data.getKey()); SliceTester.testSettingsUnavailableSlice(mContext, slice, data); assertThat(slice).isNull(); } @Test Loading @@ -408,16 +408,6 @@ public class SliceBuilderUtilsTest { assertThat(intentData).isEqualTo(expectedUri); } @Test public void getSettingsIntent_createsIntentToSettings() { final Intent intent = new Intent(Settings.ACTION_SETTINGS); final PendingIntent expectedIntent = PendingIntent.getActivity(mContext, 0, intent, 0); final PendingIntent settingsIntent = SliceBuilderUtils.getSettingsIntent(mContext); assertThat(expectedIntent).isEqualTo(settingsIntent); } private SliceData getDummyData() { return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE); } Loading
tests/robotests/src/com/android/settings/testutils/SliceTester.java +2 −14 Original line number Diff line number Diff line Loading @@ -191,20 +191,8 @@ public class SliceTester { assertThat(toggles).isEmpty(); final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction(); final int availabilityStatus = SliceBuilderUtils.getPreferenceController(context, sliceData).getAvailabilityStatus(); switch (availabilityStatus) { case UNSUPPORTED_ON_DEVICE: case CONDITIONALLY_UNAVAILABLE: assertThat(primaryPendingIntent).isEqualTo( SliceBuilderUtils.getSettingsIntent(context)); break; case DISABLED_FOR_USER: case DISABLED_DEPENDENT_SETTING: assertThat(primaryPendingIntent).isEqualTo( SliceBuilderUtils.getContentPendingIntent(context, sliceData)); break; } assertThat(primaryPendingIntent).isEqualTo(SliceBuilderUtils.getContentPendingIntent( context, sliceData)); final List<SliceItem> sliceItems = slice.getItems(); assertTitle(sliceItems, sliceData.getTitle()); Loading
tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -114,7 +114,7 @@ public class WifiCallingSliceHelperTest { final Slice slice = mWfcSliceHelper.createWifiCallingSlice(mWfcURI); testWifiCallingSettingsUnavailableSlice(slice, null, SliceBuilderUtils.getSettingsIntent(mContext)); WifiCallingSliceHelper.getSettingsIntent(mContext)); } @Test Loading @@ -125,7 +125,7 @@ public class WifiCallingSliceHelperTest { assertThat(mWfcSliceHelper.getDefaultVoiceSubId()).isEqualTo(1); testWifiCallingSettingsUnavailableSlice(slice, null, SliceBuilderUtils.getSettingsIntent(mContext)); WifiCallingSliceHelper.getSettingsIntent(mContext)); } @Test Loading