Remove sub-text from slice builder

We would like to remove all sub-text from Settings Search. But slice
view does not support API to configure the sub-text visibility.
Therefore, the only way is to remove the sub-text from slices directly.

Since Settings slices are also invoked by other apps, we can not
directly remove the sub-text.

Finally, we decide to check the caller's uid. If it comes from Settings
Search, we will return the slice without the sub-text.

Bug: 143118037
Test: visual, robotests
Change-Id: Iac72f1683a2c930592634e0599058890d86f669d
This commit is contained in:
Yanting Yang
2020-03-20 12:04:09 +08:00
parent 5c3f71859e
commit 96127fe621
7 changed files with 101 additions and 77 deletions

View File

@@ -269,14 +269,17 @@ public class WifiCallingSliceHelper {
// Top row shows information on current preference state
final ListBuilder listBuilder = new ListBuilder(mContext, sliceUri, ListBuilder.INFINITY)
.setAccentColor(Utils.getColorAccentDefaultColor(mContext));
listBuilder.setHeader(new ListBuilder.HeaderBuilder()
final ListBuilder.HeaderBuilder headerBuilder = new ListBuilder.HeaderBuilder()
.setTitle(res.getText(R.string.wifi_calling_mode_title))
.setSubtitle(getWifiCallingPreferenceSummary(currentWfcPref, subId))
.setPrimaryAction(SliceAction.createDeeplink(
getActivityIntent(ACTION_WIFI_CALLING_SETTINGS_ACTIVITY),
icon,
ListBuilder.ICON_IMAGE,
res.getText(R.string.wifi_calling_mode_title))));
res.getText(R.string.wifi_calling_mode_title)));
if (!Utils.isSettingsIntelligence(mContext)) {
headerBuilder.setSubtitle(getWifiCallingPreferenceSummary(currentWfcPref, subId));
}
listBuilder.setHeader(headerBuilder);
if (isWifiOnlySupported) {
listBuilder.addRow(wifiPreferenceRowBuilder(listBuilder,
@@ -458,14 +461,17 @@ public class WifiCallingSliceHelper {
private Slice getNonActionableWifiCallingSlice(CharSequence title, CharSequence subtitle,
Uri sliceUri, PendingIntent primaryActionIntent) {
final IconCompat icon = IconCompat.createWithResource(mContext, R.drawable.wifi_signal);
final RowBuilder rowBuilder = new RowBuilder()
.setTitle(title)
.setPrimaryAction(SliceAction.createDeeplink(
primaryActionIntent, icon, ListBuilder.SMALL_IMAGE,
title));
if (!Utils.isSettingsIntelligence(mContext)) {
rowBuilder.setSubtitle(subtitle);
}
return new ListBuilder(mContext, sliceUri, ListBuilder.INFINITY)
.setAccentColor(Utils.getColorAccentDefaultColor(mContext))
.addRow(new RowBuilder()
.setTitle(title)
.setSubtitle(subtitle)
.setPrimaryAction(SliceAction.createDeeplink(
primaryActionIntent, icon, ListBuilder.SMALL_IMAGE,
title)))
.addRow(rowBuilder)
.build();
}