Convert xml based API allowDynamicSummaryInSlice to java

- Add boolean useDynamicSliceSummary() in Sliceable interface. This is
  the switch equivalent to android:allowDynamicSummaryInSlice in xml. It
  moves the setter closer to regular Sliceable APIs, thus less easily to
  miss.
- Coverted all android:allowDynamicSummaryInSlice to use the java API.
  - Except 2 prefs in my_device_info. They incorrectly set this to true
  previously (controller is not sliceable, no point setting
  dynamicSliceSummary to true. They just won't do anything)

Fixes: 128446156
Test: robolectric
Change-Id: Ic57acd590dec3e87dcf4592df137321d14b854d9
This commit is contained in:
Fan Zhang
2019-03-29 15:43:46 -07:00
parent 961f038c4d
commit b1b07e2030
38 changed files with 108 additions and 224 deletions

View File

@@ -72,8 +72,6 @@
<attr name="controller" format="string" /> <attr name="controller" format="string" />
<!-- {@code true} when the controller declared represents a slice from {@link android.app.SettingsSliceContract} --> <!-- {@code true} when the controller declared represents a slice from {@link android.app.SettingsSliceContract} -->
<attr name="platform_slice" format="boolean" /> <attr name="platform_slice" format="boolean" />
<!-- Whether or not dynamic summary text from PreferenceController is allowed when creating slice object, by default it's false. -->
<attr name="allowDynamicSummaryInSlice" format="boolean" />
<!-- customized subtitle if it's an unavailable slice --> <!-- customized subtitle if it's an unavailable slice -->
<attr name="unavailableSliceSubtitle" format="string" /> <attr name="unavailableSliceSubtitle" format="string" />
</declare-styleable> </declare-styleable>

View File

@@ -28,7 +28,6 @@
android:title="@string/firmware_version" android:title="@string/firmware_version"
android:summary="@string/summary_placeholder" android:summary="@string/summary_placeholder"
settings:enableCopying="true" settings:enableCopying="true"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionDetailPreferenceController"/> settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionDetailPreferenceController"/>
<!-- Security patch --> <!-- Security patch -->
@@ -68,7 +67,6 @@
android:title="@string/build_number" android:title="@string/build_number"
android:summary="@string/summary_placeholder" android:summary="@string/summary_placeholder"
settings:enableCopying="true" settings:enableCopying="true"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.deviceinfo.firmwareversion.SimpleBuildNumberPreferenceController"/> settings:controller="com.android.settings.deviceinfo.firmwareversion.SimpleBuildNumberPreferenceController"/>
</PreferenceScreen> </PreferenceScreen>

View File

@@ -27,7 +27,6 @@
android:key="hardware_info_device_model" android:key="hardware_info_device_model"
android:title="@string/model_info" android:title="@string/model_info"
android:summary="@string/summary_placeholder" android:summary="@string/summary_placeholder"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.deviceinfo.hardwareinfo.DeviceModelPreferenceController" settings:controller="com.android.settings.deviceinfo.hardwareinfo.DeviceModelPreferenceController"
settings:enableCopying="true"/> settings:enableCopying="true"/>
@@ -36,7 +35,6 @@
android:key="hardware_info_device_serial" android:key="hardware_info_device_serial"
android:title="@string/status_serial_number" android:title="@string/status_serial_number"
android:summary="@string/summary_placeholder" android:summary="@string/summary_placeholder"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.deviceinfo.hardwareinfo.SerialNumberPreferenceController" settings:controller="com.android.settings.deviceinfo.hardwareinfo.SerialNumberPreferenceController"
settings:enableCopying="true"/> settings:enableCopying="true"/>
@@ -45,7 +43,6 @@
android:key="hardware_info_device_revision" android:key="hardware_info_device_revision"
android:title="@string/hardware_revision" android:title="@string/hardware_revision"
android:summary="@string/summary_placeholder" android:summary="@string/summary_placeholder"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.deviceinfo.hardwareinfo.HardwareRevisionPreferenceController" settings:controller="com.android.settings.deviceinfo.hardwareinfo.HardwareRevisionPreferenceController"
settings:enableCopying="true"/> settings:enableCopying="true"/>

View File

@@ -52,7 +52,6 @@
android:title="@string/status_number" android:title="@string/status_number"
android:summary="@string/summary_placeholder" android:summary="@string/summary_placeholder"
android:selectable="false" android:selectable="false"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController" settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
settings:enableCopying="true"/> settings:enableCopying="true"/>
@@ -104,7 +103,6 @@
android:title="@string/hardware_info" android:title="@string/hardware_info"
settings:keywords="@string/keywords_model_and_hardware" settings:keywords="@string/keywords_model_and_hardware"
android:summary="@string/summary_placeholder" android:summary="@string/summary_placeholder"
settings:allowDynamicSummaryInSlice="true"
android:fragment="com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFragment" android:fragment="com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFragment"
settings:controller="com.android.settings.deviceinfo.HardwareInfoPreferenceController"/> settings:controller="com.android.settings.deviceinfo.HardwareInfoPreferenceController"/>
@@ -115,7 +113,6 @@
android:title="@string/status_imei" android:title="@string/status_imei"
settings:keywords="@string/keywords_imei_info" settings:keywords="@string/keywords_imei_info"
android:summary="@string/summary_placeholder" android:summary="@string/summary_placeholder"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController"/> settings:controller="com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController"/>
<!-- Android version --> <!-- Android version -->
@@ -124,7 +121,6 @@
android:order="32" android:order="32"
android:title="@string/firmware_version" android:title="@string/firmware_version"
android:summary="@string/summary_placeholder" android:summary="@string/summary_placeholder"
settings:allowDynamicSummaryInSlice="true"
android:fragment="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionSettings" android:fragment="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionSettings"
settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController"/> settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController"/>

View File

@@ -28,7 +28,6 @@
android:icon="@drawable/ic_volume_remote" android:icon="@drawable/ic_volume_remote"
android:title="@string/remote_media_volume_option_title" android:title="@string/remote_media_volume_option_title"
android:order="-185" android:order="-185"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.notification.RemoteVolumePreferenceController"/> settings:controller="com.android.settings.notification.RemoteVolumePreferenceController"/>
<!-- Media volume --> <!-- Media volume -->
@@ -37,7 +36,6 @@
android:icon="@drawable/ic_media_stream" android:icon="@drawable/ic_media_stream"
android:title="@string/media_volume_option_title" android:title="@string/media_volume_option_title"
android:order="-180" android:order="-180"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.notification.MediaVolumePreferenceController"/> settings:controller="com.android.settings.notification.MediaVolumePreferenceController"/>
<!-- Media output switcher --> <!-- Media output switcher -->
@@ -54,7 +52,6 @@
android:icon="@drawable/ic_local_phone_24_lib" android:icon="@drawable/ic_local_phone_24_lib"
android:title="@string/call_volume_option_title" android:title="@string/call_volume_option_title"
android:order="-170" android:order="-170"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.notification.CallVolumePreferenceController"/> settings:controller="com.android.settings.notification.CallVolumePreferenceController"/>
<!-- Hands free profile output switcher --> <!-- Hands free profile output switcher -->
@@ -71,7 +68,6 @@
android:icon="@drawable/ic_notifications" android:icon="@drawable/ic_notifications"
android:title="@string/ring_volume_option_title" android:title="@string/ring_volume_option_title"
android:order="-160" android:order="-160"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.notification.RingVolumePreferenceController"/> settings:controller="com.android.settings.notification.RingVolumePreferenceController"/>
@@ -81,7 +77,6 @@
android:icon="@*android:drawable/ic_audio_alarm" android:icon="@*android:drawable/ic_audio_alarm"
android:title="@string/alarm_volume_option_title" android:title="@string/alarm_volume_option_title"
android:order="-150" android:order="-150"
settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.notification.AlarmVolumePreferenceController"/> settings:controller="com.android.settings.notification.AlarmVolumePreferenceController"/>
<!-- Notification volume --> <!-- Notification volume -->

View File

@@ -72,7 +72,6 @@ public class PreferenceXmlParserUtils {
MetadataFlag.FLAG_NEED_PREF_SUMMARY, MetadataFlag.FLAG_NEED_PREF_SUMMARY,
MetadataFlag.FLAG_NEED_PREF_ICON, MetadataFlag.FLAG_NEED_PREF_ICON,
MetadataFlag.FLAG_NEED_SEARCHABLE, MetadataFlag.FLAG_NEED_SEARCHABLE,
MetadataFlag.FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE,
MetadataFlag.FLAG_UNAVAILABLE_SLICE_SUBTITLE}) MetadataFlag.FLAG_UNAVAILABLE_SLICE_SUBTITLE})
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
public @interface MetadataFlag { public @interface MetadataFlag {
@@ -87,9 +86,8 @@ public class PreferenceXmlParserUtils {
int FLAG_NEED_PLATFORM_SLICE_FLAG = 1 << 7; int FLAG_NEED_PLATFORM_SLICE_FLAG = 1 << 7;
int FLAG_NEED_KEYWORDS = 1 << 8; int FLAG_NEED_KEYWORDS = 1 << 8;
int FLAG_NEED_SEARCHABLE = 1 << 9; int FLAG_NEED_SEARCHABLE = 1 << 9;
int FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE = 1 << 10; int FLAG_NEED_PREF_APPEND = 1 << 10;
int FLAG_NEED_PREF_APPEND = 1 << 11; int FLAG_UNAVAILABLE_SLICE_SUBTITLE = 1 << 11;
int FLAG_UNAVAILABLE_SLICE_SUBTITLE = 1 << 12;
} }
public static final String METADATA_PREF_TYPE = "type"; public static final String METADATA_PREF_TYPE = "type";
@@ -101,8 +99,6 @@ public class PreferenceXmlParserUtils {
public static final String METADATA_PLATFORM_SLICE_FLAG = "platform_slice"; public static final String METADATA_PLATFORM_SLICE_FLAG = "platform_slice";
public static final String METADATA_KEYWORDS = "keywords"; public static final String METADATA_KEYWORDS = "keywords";
public static final String METADATA_SEARCHABLE = "searchable"; public static final String METADATA_SEARCHABLE = "searchable";
public static final String METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE =
"allow_dynamic_summary_in_slice";
public static final String METADATA_APPEND = "staticPreferenceLocation"; public static final String METADATA_APPEND = "staticPreferenceLocation";
public static final String METADATA_UNAVAILABLE_SLICE_SUBTITLE = public static final String METADATA_UNAVAILABLE_SLICE_SUBTITLE =
"unavailable_slice_subtitle"; "unavailable_slice_subtitle";
@@ -246,10 +242,6 @@ public class PreferenceXmlParserUtils {
preferenceMetadata.putBoolean(METADATA_SEARCHABLE, preferenceMetadata.putBoolean(METADATA_SEARCHABLE,
isSearchable(preferenceAttributes)); isSearchable(preferenceAttributes));
} }
if (hasFlag(flags, MetadataFlag.FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE)) {
preferenceMetadata.putBoolean(METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE,
isDynamicSummaryAllowed(preferenceAttributes));
}
if (hasFlag(flags, MetadataFlag.FLAG_NEED_PREF_APPEND) && hasPrefScreenFlag) { if (hasFlag(flags, MetadataFlag.FLAG_NEED_PREF_APPEND) && hasPrefScreenFlag) {
preferenceMetadata.putBoolean(METADATA_APPEND, preferenceMetadata.putBoolean(METADATA_APPEND,
isAppended(preferenceScreenAttributes)); isAppended(preferenceScreenAttributes));
@@ -267,14 +259,6 @@ public class PreferenceXmlParserUtils {
return metadata; return metadata;
} }
/**
* Returns the fragment name if this preference launches a child fragment.
*/
public static String getDataChildFragment(Context context, AttributeSet attrs) {
return getStringData(context, attrs, R.styleable.Preference,
R.styleable.Preference_android_fragment);
}
/** /**
* Call {@link #extractMetadata(Context, int, int)} with a {@link MetadataFlag} instead. * Call {@link #extractMetadata(Context, int, int)} with a {@link MetadataFlag} instead.
*/ */
@@ -342,11 +326,6 @@ public class PreferenceXmlParserUtils {
return styledAttributes.getBoolean(R.styleable.Preference_searchable, true /* default */); return styledAttributes.getBoolean(R.styleable.Preference_searchable, true /* default */);
} }
private static boolean isDynamicSummaryAllowed(TypedArray styledAttributes) {
return styledAttributes.getBoolean(R.styleable.Preference_allowDynamicSummaryInSlice,
false /* default */);
}
private static String getKeywords(TypedArray styledAttributes) { private static String getKeywords(TypedArray styledAttributes) {
return styledAttributes.getString(R.styleable.Preference_keywords); return styledAttributes.getString(R.styleable.Preference_keywords);
} }

View File

@@ -101,6 +101,11 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
return true; return true;
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
@Override @Override
public void copy() { public void copy() {
final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService( final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(

View File

@@ -58,6 +58,11 @@ public class FirmwareVersionDetailPreferenceController extends BasePreferenceCon
return AVAILABLE; return AVAILABLE;
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
@Override @Override
public boolean isSliceable() { public boolean isSliceable() {
return true; return true;

View File

@@ -55,6 +55,11 @@ public class SimpleBuildNumberPreferenceController extends BasePreferenceControl
return true; return true;
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
@Override @Override
public void copy() { public void copy() {
final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService( final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(

View File

@@ -44,4 +44,9 @@ public class DeviceModelPreferenceController extends HardwareInfoPreferenceContr
public CharSequence getSummary() { public CharSequence getSummary() {
return HardwareInfoPreferenceController.getDeviceModel(); return HardwareInfoPreferenceController.getDeviceModel();
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
} }

View File

@@ -34,6 +34,11 @@ public class HardwareRevisionPreferenceController extends BasePreferenceControll
? AVAILABLE : UNSUPPORTED_ON_DEVICE; ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
@Override @Override
public boolean isSliceable() { public boolean isSliceable() {
return true; return true;

View File

@@ -45,6 +45,11 @@ public class SerialNumberPreferenceController extends BasePreferenceController {
return true; return true;
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
@Override @Override
public void copy() { public void copy() {
Sliceable.setCopyContent(mContext, getSummary(), Sliceable.setCopyContent(mContext, getSummary(),

View File

@@ -110,6 +110,11 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
return true; return true;
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
@Override @Override
public void copy() { public void copy() {
Sliceable.setCopyContent(mContext, getSummary(), mContext.getText(R.string.status_imei)); Sliceable.setCopyContent(mContext, getSummary(), mContext.getText(R.string.status_imei));

View File

@@ -26,7 +26,6 @@ import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.settings.accounts.AccountRestrictionHelper; import com.android.settings.accounts.AccountRestrictionHelper;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.SliderPreferenceController; import com.android.settings.core.SliderPreferenceController;
import com.android.settingslib.RestrictedPreference; import com.android.settingslib.RestrictedPreference;
@@ -35,7 +34,7 @@ import com.android.settingslib.RestrictedPreference;
* restriction * restriction
*/ */
public abstract class AdjustVolumeRestrictedPreferenceController extends public abstract class AdjustVolumeRestrictedPreferenceController extends
SliderPreferenceController implements PreferenceControllerMixin { SliderPreferenceController {
private AccountRestrictionHelper mHelper; private AccountRestrictionHelper mHelper;

View File

@@ -22,8 +22,7 @@ import android.text.TextUtils;
import com.android.settings.R; import com.android.settings.R;
public class AlarmVolumePreferenceController extends public class AlarmVolumePreferenceController extends VolumeSeekBarPreferenceController {
VolumeSeekBarPreferenceController {
private static final String KEY_ALARM_VOLUME = "alarm_volume"; private static final String KEY_ALARM_VOLUME = "alarm_volume";
@@ -42,6 +41,11 @@ public class AlarmVolumePreferenceController extends
return TextUtils.equals(getPreferenceKey(), "alarm_volume"); return TextUtils.equals(getPreferenceKey(), "alarm_volume");
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
@Override @Override
public String getPreferenceKey() { public String getPreferenceKey() {
return KEY_ALARM_VOLUME; return KEY_ALARM_VOLUME;

View File

@@ -43,6 +43,11 @@ public class CallVolumePreferenceController extends VolumeSeekBarPreferenceContr
return TextUtils.equals(getPreferenceKey(), "call_volume"); return TextUtils.equals(getPreferenceKey(), "call_volume");
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
@Override @Override
public int getAudioStream() { public int getAudioStream() {
if (mAudioManager.isBluetoothScoOn()) { if (mAudioManager.isBluetoothScoOn()) {

View File

@@ -22,8 +22,7 @@ import android.text.TextUtils;
import com.android.settings.R; import com.android.settings.R;
public class MediaVolumePreferenceController extends public class MediaVolumePreferenceController extends VolumeSeekBarPreferenceController {
VolumeSeekBarPreferenceController {
private static final String KEY_MEDIA_VOLUME = "media_volume"; private static final String KEY_MEDIA_VOLUME = "media_volume";
@@ -43,6 +42,11 @@ public class MediaVolumePreferenceController extends
return TextUtils.equals(getPreferenceKey(), KEY_MEDIA_VOLUME); return TextUtils.equals(getPreferenceKey(), KEY_MEDIA_VOLUME);
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
@Override @Override
public String getPreferenceKey() { public String getPreferenceKey() {
return KEY_MEDIA_VOLUME; return KEY_MEDIA_VOLUME;

View File

@@ -37,8 +37,7 @@ import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
public class RemoteVolumePreferenceController extends public class RemoteVolumePreferenceController extends VolumeSeekBarPreferenceController {
VolumeSeekBarPreferenceController {
private static final String KEY_REMOTE_VOLUME = "remote_volume"; private static final String KEY_REMOTE_VOLUME = "remote_volume";
@VisibleForTesting @VisibleForTesting
@@ -167,6 +166,11 @@ public class RemoteVolumePreferenceController extends
return TextUtils.equals(getPreferenceKey(), KEY_REMOTE_VOLUME); return TextUtils.equals(getPreferenceKey(), KEY_REMOTE_VOLUME);
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
@Override @Override
public String getPreferenceKey() { public String getPreferenceKey() {
return KEY_REMOTE_VOLUME; return KEY_REMOTE_VOLUME;

View File

@@ -95,6 +95,11 @@ public class RingVolumePreferenceController extends VolumeSeekBarPreferenceContr
return TextUtils.equals(getPreferenceKey(), KEY_RING_VOLUME); return TextUtils.equals(getPreferenceKey(), KEY_RING_VOLUME);
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
@Override @Override
public int getAudioStream() { public int getAudioStream() {
return AudioManager.STREAM_RING; return AudioManager.STREAM_RING;

View File

@@ -207,7 +207,7 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider {
if (System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) { if (System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
Log.e(TAG, "Error trying to get non-indexable keys from: " + clazz.getName() , e); Log.e(TAG, "Error trying to get non-indexable keys from: " + clazz.getName(), e);
continue; continue;
} }

View File

@@ -188,8 +188,8 @@ public class SliceBuilderUtils {
* @return the summary text for a {@link Slice} built for {@param sliceData}. * @return the summary text for a {@link Slice} built for {@param sliceData}.
*/ */
public static CharSequence getSubtitleText(Context context, public static CharSequence getSubtitleText(Context context,
AbstractPreferenceController controller, SliceData sliceData) { BasePreferenceController controller, SliceData sliceData) {
final boolean isDynamicSummaryAllowed = sliceData.isDynamicSummaryAllowed(); final boolean isDynamicSummaryAllowed = controller.useDynamicSliceSummary();
CharSequence summaryText = controller.getSummary(); CharSequence summaryText = controller.getSummary();
// Priority 1 : User prefers showing the dynamic summary in slice view rather than static // Priority 1 : User prefers showing the dynamic summary in slice view rather than static

View File

@@ -73,8 +73,6 @@ public class SliceData {
private final boolean mIsPlatformDefined; private final boolean mIsPlatformDefined;
private final boolean mIsDynamicSummaryAllowed;
private final String mUnavailableSliceSubtitle; private final String mUnavailableSliceSubtitle;
public String getKey() { public String getKey() {
@@ -121,10 +119,6 @@ public class SliceData {
return mIsPlatformDefined; return mIsPlatformDefined;
} }
public boolean isDynamicSummaryAllowed() {
return mIsDynamicSummaryAllowed;
}
public String getUnavailableSliceSubtitle() { public String getUnavailableSliceSubtitle() {
return mUnavailableSliceSubtitle; return mUnavailableSliceSubtitle;
} }
@@ -141,7 +135,6 @@ public class SliceData {
mPreferenceController = builder.mPrefControllerClassName; mPreferenceController = builder.mPrefControllerClassName;
mSliceType = builder.mSliceType; mSliceType = builder.mSliceType;
mIsPlatformDefined = builder.mIsPlatformDefined; mIsPlatformDefined = builder.mIsPlatformDefined;
mIsDynamicSummaryAllowed = builder.mIsDynamicSummaryAllowed;
mUnavailableSliceSubtitle = builder.mUnavailableSliceSubtitle; mUnavailableSliceSubtitle = builder.mUnavailableSliceSubtitle;
} }
@@ -182,8 +175,6 @@ public class SliceData {
private boolean mIsPlatformDefined; private boolean mIsPlatformDefined;
private boolean mIsDynamicSummaryAllowed;
private String mUnavailableSliceSubtitle; private String mUnavailableSliceSubtitle;
public Builder setKey(String key) { public Builder setKey(String key) {
@@ -241,11 +232,6 @@ public class SliceData {
return this; return this;
} }
public Builder setDynamicSummaryAllowed(boolean isDynamicSummaryAllowed) {
mIsDynamicSummaryAllowed = isDynamicSummaryAllowed;
return this;
}
public Builder setUnavailableSliceSubtitle( public Builder setUnavailableSliceSubtitle(
String unavailableSliceSubtitle) { String unavailableSliceSubtitle) {
mUnavailableSliceSubtitle = unavailableSliceSubtitle; mUnavailableSliceSubtitle = unavailableSliceSubtitle;

View File

@@ -16,7 +16,6 @@
package com.android.settings.slices; package com.android.settings.slices;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_CONTROLLER; import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_CONTROLLER;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_ICON; import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_ICON;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEY; import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEY;
@@ -189,7 +188,6 @@ class SliceDataConverter {
| MetadataFlag.FLAG_NEED_PREF_ICON | MetadataFlag.FLAG_NEED_PREF_ICON
| MetadataFlag.FLAG_NEED_PREF_SUMMARY | MetadataFlag.FLAG_NEED_PREF_SUMMARY
| MetadataFlag.FLAG_NEED_PLATFORM_SLICE_FLAG | MetadataFlag.FLAG_NEED_PLATFORM_SLICE_FLAG
| MetadataFlag.FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE
| MetadataFlag.FLAG_UNAVAILABLE_SLICE_SUBTITLE); | MetadataFlag.FLAG_UNAVAILABLE_SLICE_SUBTITLE);
for (Bundle bundle : metadata) { for (Bundle bundle : metadata) {
@@ -207,8 +205,6 @@ class SliceDataConverter {
final int sliceType = SliceBuilderUtils.getSliceType(mContext, controllerClassName, final int sliceType = SliceBuilderUtils.getSliceType(mContext, controllerClassName,
key); key);
final boolean isPlatformSlice = bundle.getBoolean(METADATA_PLATFORM_SLICE_FLAG); final boolean isPlatformSlice = bundle.getBoolean(METADATA_PLATFORM_SLICE_FLAG);
final boolean isDynamicSummaryAllowed = bundle.getBoolean(
METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE);
final String unavailableSliceSubtitle = bundle.getString( final String unavailableSliceSubtitle = bundle.getString(
METADATA_UNAVAILABLE_SLICE_SUBTITLE); METADATA_UNAVAILABLE_SLICE_SUBTITLE);
@@ -222,7 +218,6 @@ class SliceDataConverter {
.setFragmentName(fragmentName) .setFragmentName(fragmentName)
.setSliceType(sliceType) .setSliceType(sliceType)
.setPlatformDefined(isPlatformSlice) .setPlatformDefined(isPlatformSlice)
.setDynamicSummaryAllowed(isDynamicSummaryAllowed)
.setUnavailableSliceSubtitle(unavailableSliceSubtitle) .setUnavailableSliceSubtitle(unavailableSliceSubtitle)
.build(); .build();

View File

@@ -78,6 +78,13 @@ public interface Sliceable {
return false; return false;
} }
/**
* Whether or not summary comes from something dynamic (ie, not hardcoded in xml)
*/
default boolean useDynamicSliceSummary() {
return false;
}
/** /**
* Set the copy content to the clipboard and show the toast. * Set the copy content to the clipboard and show the toast.
*/ */

View File

@@ -49,7 +49,6 @@ public class SlicesDatabaseAccessor {
IndexColumns.CONTROLLER, IndexColumns.CONTROLLER,
IndexColumns.PLATFORM_SLICE, IndexColumns.PLATFORM_SLICE,
IndexColumns.SLICE_TYPE, IndexColumns.SLICE_TYPE,
IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE,
IndexColumns.UNAVAILABLE_SLICE_SUBTITLE, IndexColumns.UNAVAILABLE_SLICE_SUBTITLE,
}; };
@@ -166,8 +165,6 @@ public class SlicesDatabaseAccessor {
cursor.getColumnIndex(IndexColumns.CONTROLLER)); cursor.getColumnIndex(IndexColumns.CONTROLLER));
final boolean isPlatformDefined = cursor.getInt( final boolean isPlatformDefined = cursor.getInt(
cursor.getColumnIndex(IndexColumns.PLATFORM_SLICE)) == TRUE; cursor.getColumnIndex(IndexColumns.PLATFORM_SLICE)) == TRUE;
final boolean isDynamicSummaryAllowed = cursor.getInt(
cursor.getColumnIndex(IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE)) == TRUE;
int sliceType = cursor.getInt( int sliceType = cursor.getInt(
cursor.getColumnIndex(IndexColumns.SLICE_TYPE)); cursor.getColumnIndex(IndexColumns.SLICE_TYPE));
final String unavailableSliceSubtitle = cursor.getString( final String unavailableSliceSubtitle = cursor.getString(
@@ -189,7 +186,6 @@ public class SlicesDatabaseAccessor {
.setUri(uri) .setUri(uri)
.setPlatformDefined(isPlatformDefined) .setPlatformDefined(isPlatformDefined)
.setSliceType(sliceType) .setSliceType(sliceType)
.setDynamicSummaryAllowed(isDynamicSummaryAllowed)
.setUnavailableSliceSubtitle(unavailableSliceSubtitle) .setUnavailableSliceSubtitle(unavailableSliceSubtitle)
.build(); .build();
} }

View File

@@ -36,7 +36,7 @@ public class SlicesDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "slices_index.db"; private static final String DATABASE_NAME = "slices_index.db";
private static final String SHARED_PREFS_TAG = "slices_shared_prefs"; private static final String SHARED_PREFS_TAG = "slices_shared_prefs";
private static final int DATABASE_VERSION = 4; private static final int DATABASE_VERSION = 5;
public interface Tables { public interface Tables {
String TABLE_SLICES_INDEX = "slices_index"; String TABLE_SLICES_INDEX = "slices_index";
@@ -94,12 +94,6 @@ public class SlicesDatabaseHelper extends SQLiteOpenHelper {
*/ */
String SLICE_TYPE = "slice_type"; String SLICE_TYPE = "slice_type";
/**
* Boolean flag, {@code true} when the slice object prefers using the dynamic summary from
* preference controller.
*/
String ALLOW_DYNAMIC_SUMMARY_IN_SLICE = "allow_dynamic_summary_in_slice";
/** /**
* Customized subtitle if it's a unavailable slice * Customized subtitle if it's a unavailable slice
*/ */
@@ -129,8 +123,6 @@ public class SlicesDatabaseHelper extends SQLiteOpenHelper {
", " + ", " +
IndexColumns.SLICE_TYPE + IndexColumns.SLICE_TYPE +
", " + ", " +
IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE +
", " +
IndexColumns.UNAVAILABLE_SLICE_SUBTITLE + IndexColumns.UNAVAILABLE_SLICE_SUBTITLE +
");"; ");";

View File

@@ -110,8 +110,6 @@ class SlicesIndexer implements Runnable {
values.put(IndexColumns.CONTROLLER, dataRow.getPreferenceController()); values.put(IndexColumns.CONTROLLER, dataRow.getPreferenceController());
values.put(IndexColumns.PLATFORM_SLICE, dataRow.isPlatformDefined()); values.put(IndexColumns.PLATFORM_SLICE, dataRow.isPlatformDefined());
values.put(IndexColumns.SLICE_TYPE, dataRow.getSliceType()); values.put(IndexColumns.SLICE_TYPE, dataRow.getSliceType());
values.put(IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE,
dataRow.isDynamicSummaryAllowed());
values.put(IndexColumns.UNAVAILABLE_SLICE_SUBTITLE, values.put(IndexColumns.UNAVAILABLE_SLICE_SUBTITLE,
dataRow.getUnavailableSliceSubtitle()); dataRow.getUnavailableSliceSubtitle());

View File

@@ -25,15 +25,13 @@
android:title="title" android:title="title"
android:icon="@drawable/ic_android" android:icon="@drawable/ic_android"
android:summary="summary1" android:summary="summary1"
settings:controller="com.android.settings.core.BadPreferenceController" settings:controller="com.android.settings.core.BadPreferenceController"/>
settings:allowDynamicSummaryInSlice="true"/>
<Preference <Preference
android:key="key2" android:key="key2"
android:title="title" android:title="title"
android:icon="@drawable/ic_android" android:icon="@drawable/ic_android"
android:summary="summary2" android:summary="summary2"
settings:controller="com.android.settings.slices.FakePreferenceController" settings:controller="com.android.settings.slices.FakePreferenceController"/>
settings:allowDynamicSummaryInSlice="true"/>
</PreferenceScreen> </PreferenceScreen>

View File

@@ -27,7 +27,6 @@
settings:controller="com.android.settings.slices.FakePreferenceController" settings:controller="com.android.settings.slices.FakePreferenceController"
settings:keywords="a, b, c" settings:keywords="a, b, c"
settings:platform_slice="true" settings:platform_slice="true"
settings:allowDynamicSummaryInSlice="true"
settings:unavailableSliceSubtitle="subtitleOfUnavailableSlice"/> settings:unavailableSliceSubtitle="subtitleOfUnavailableSlice"/>
</PreferenceScreen> </PreferenceScreen>

View File

@@ -29,4 +29,9 @@ public class BadPreferenceController extends BasePreferenceController {
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
return AVAILABLE; return AVAILABLE;
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
} }

View File

@@ -16,7 +16,6 @@
package com.android.settings.core; package com.android.settings.core;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_APPEND; import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_APPEND;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEY; import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEY;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEYWORDS; import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEYWORDS;
@@ -293,30 +292,6 @@ public class PreferenceXmlParserUtilsTest {
assertThat(foundKey).isTrue(); assertThat(foundKey).isTrue();
} }
@Test
@Config(qualifiers = "mcc999")
public void extractMetadata_requestIsDynamicSummaryAllowed_shouldDefaultToFalse()
throws Exception {
final List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(mContext,
R.xml.display_settings, MetadataFlag.FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE);
for (Bundle bundle : metadata) {
assertThat(bundle.getBoolean(METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE)).isFalse();
}
}
@Test
@Config(qualifiers = "mcc998")
public void extractMetadata_requestIsDynamicSummaryAllowed_shouldReturnAttributeValue()
throws Exception {
final List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(mContext,
R.xml.location_settings, MetadataFlag.FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE);
for (Bundle bundle : metadata) {
assertThat(bundle.getBoolean(METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE)).isTrue();
}
}
@Test @Test
@Config(qualifiers = "mcc999") @Config(qualifiers = "mcc999")
public void extractMetadata_requestAppendProperty_shouldDefaultToFalse() public void extractMetadata_requestAppendProperty_shouldDefaultToFalse()

View File

@@ -40,4 +40,9 @@ public class FakePreferenceController extends BasePreferenceController {
public boolean isSliceable() { public boolean isSliceable() {
return true; return true;
} }
@Override
public boolean useDynamicSliceSummary() {
return true;
}
} }

View File

@@ -69,7 +69,6 @@ public class SliceBuilderUtilsTest {
private final Class SLIDER_CONTROLLER = FakeSliderController.class; private final Class SLIDER_CONTROLLER = FakeSliderController.class;
private final Class COPYABLE_CONTROLLER = FakeCopyableController.class; private final Class COPYABLE_CONTROLLER = FakeCopyableController.class;
private final Class CONTEXT_CONTROLLER = FakeContextOnlyPreferenceController.class; private final Class CONTEXT_CONTROLLER = FakeContextOnlyPreferenceController.class;
private final boolean IS_DYNAMIC_SUMMARY_ALLOWED = false;
private final String INTENT_PATH = SettingsSlicesContract.PATH_SETTING_INTENT + "/" + KEY; private final String INTENT_PATH = SettingsSlicesContract.PATH_SETTING_INTENT + "/" + KEY;
private final String ACTION_PATH = SettingsSlicesContract.PATH_SETTING_ACTION + "/" + KEY; private final String ACTION_PATH = SettingsSlicesContract.PATH_SETTING_ACTION + "/" + KEY;
@@ -206,7 +205,7 @@ public class SliceBuilderUtilsTest {
@Test @Test
public void getDynamicSummary_allowDynamicSummary_returnsControllerSummary() { public void getDynamicSummary_allowDynamicSummary_returnsControllerSummary() {
final SliceData data = getDummyData(true /*isDynamicSummaryAllowed*/); final SliceData data = getDummyData();
final FakePreferenceController controller = spy( final FakePreferenceController controller = spy(
new FakePreferenceController(mContext, KEY)); new FakePreferenceController(mContext, KEY));
final String controllerSummary = "new_Summary"; final String controllerSummary = "new_Summary";
@@ -219,27 +218,17 @@ public class SliceBuilderUtilsTest {
@Test @Test
public void getDynamicSummary_allowDynamicSummary_nullSummary_returnsNull() { public void getDynamicSummary_allowDynamicSummary_nullSummary_returnsNull() {
final SliceData data = getDummyData(true /*isDynamicSummaryAllowed*/); final SliceData data = getDummyData();
final FakePreferenceController controller = spy( final FakePreferenceController controller = spy(
new FakePreferenceController(mContext, KEY)); new FakePreferenceController(mContext, KEY));
final String controllerSummary = null;
doReturn(controllerSummary).when(controller).getSummary(); doReturn(null).when(controller).getSummary();
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data); final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
assertThat(summary).isNull(); assertThat(summary).isNull();
} }
@Test
public void getDynamicSummary_returnsScreenTitle() {
final SliceData data = getDummyData();
final FakePreferenceController controller = new FakePreferenceController(mContext, KEY);
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
assertThat(summary).isEqualTo(data.getScreenTitle());
}
@Test @Test
public void getDynamicSummary_noScreenTitle_returnsPrefControllerSummary() { public void getDynamicSummary_noScreenTitle_returnsPrefControllerSummary() {
final SliceData data = getDummyData("", ""); final SliceData data = getDummyData("", "");
@@ -272,17 +261,7 @@ public class SliceBuilderUtilsTest {
final FakePreferenceController controller = new FakePreferenceController(mContext, KEY); final FakePreferenceController controller = new FakePreferenceController(mContext, KEY);
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data); final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
assertThat(summary).isEqualTo(""); assertThat(summary).isNull();
}
@Test
public void
getDynamicSummary_emptyScreenTitle_placeHolderControllerSummary_returnsEmptyString() {
final SliceData data = getDummyData(mContext.getString(R.string.summary_placeholder), null);
final FakePreferenceController controller = new FakePreferenceController(mContext, KEY);
final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
assertThat(summary).isEqualTo("");
} }
@Test @Test
@@ -295,7 +274,7 @@ public class SliceBuilderUtilsTest {
CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data); CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
assertThat(summary).isEqualTo(""); assertThat(summary).isEqualTo(summaryPlaceholder);
} }
@Test @Test
@@ -449,7 +428,7 @@ public class SliceBuilderUtilsTest {
R.drawable.ic_settings_accent).toIcon().getResId(); R.drawable.ic_settings_accent).toIcon().getResId();
final SliceData data = getDummyData(FakeUnavailablePreferenceController.class, final SliceData data = getDummyData(FakeUnavailablePreferenceController.class,
SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE, 0 /* icon */, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE, 0 /* icon */,
IS_DYNAMIC_SUMMARY_ALLOWED, null /* unavailableSliceSubtitle */); null /* unavailableSliceSubtitle */);
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.putInt(mContext.getContentResolver(),
FakeUnavailablePreferenceController.AVAILABILITY_KEY, FakeUnavailablePreferenceController.AVAILABILITY_KEY,
BasePreferenceController.DISABLED_DEPENDENT_SETTING); BasePreferenceController.DISABLED_DEPENDENT_SETTING);
@@ -523,7 +502,7 @@ public class SliceBuilderUtilsTest {
final String subtitleOfUnavailableSlice = "subtitleOfUnavailableSlice"; final String subtitleOfUnavailableSlice = "subtitleOfUnavailableSlice";
final SliceData data = getDummyData(FakeUnavailablePreferenceController.class, final SliceData data = getDummyData(FakeUnavailablePreferenceController.class,
SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE, 0 /* icon */, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE, 0 /* icon */,
IS_DYNAMIC_SUMMARY_ALLOWED, subtitleOfUnavailableSlice); subtitleOfUnavailableSlice);
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.putInt(mContext.getContentResolver(),
FakeUnavailablePreferenceController.AVAILABILITY_KEY, FakeUnavailablePreferenceController.AVAILABILITY_KEY,
BasePreferenceController.DISABLED_DEPENDENT_SETTING); BasePreferenceController.DISABLED_DEPENDENT_SETTING);
@@ -551,32 +530,26 @@ public class SliceBuilderUtilsTest {
private SliceData getDummyData() { private SliceData getDummyData() {
return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE, return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE,
ICON, IS_DYNAMIC_SUMMARY_ALLOWED, null /* unavailableSliceSubtitle */); ICON, null /* unavailableSliceSubtitle */);
}
private SliceData getDummyData(boolean isDynamicSummaryAllowed) {
return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE,
ICON, isDynamicSummaryAllowed, null /* unavailableSliceSubtitle */);
} }
private SliceData getDummyData(Class prefController, int sliceType, int icon) { private SliceData getDummyData(Class prefController, int sliceType, int icon) {
return getDummyData(prefController, SUMMARY, sliceType, SCREEN_TITLE, return getDummyData(prefController, SUMMARY, sliceType, SCREEN_TITLE,
icon, IS_DYNAMIC_SUMMARY_ALLOWED, null /* unavailableSliceSubtitle */); icon, null /* unavailableSliceSubtitle */);
} }
private SliceData getDummyData(String summary, String screenTitle) { private SliceData getDummyData(String summary, String screenTitle) {
return getDummyData(TOGGLE_CONTROLLER, summary, SliceData.SliceType.SWITCH, screenTitle, return getDummyData(TOGGLE_CONTROLLER, summary, SliceData.SliceType.SWITCH, screenTitle,
ICON, IS_DYNAMIC_SUMMARY_ALLOWED, null /* unavailableSliceSubtitle */); ICON, null /* unavailableSliceSubtitle */);
} }
private SliceData getDummyData(Class prefController, int sliceType) { private SliceData getDummyData(Class prefController, int sliceType) {
return getDummyData(prefController, SUMMARY, sliceType, SCREEN_TITLE, ICON, return getDummyData(prefController, SUMMARY, sliceType, SCREEN_TITLE, ICON,
IS_DYNAMIC_SUMMARY_ALLOWED, null /* unavailableSliceSubtitle */); null /* unavailableSliceSubtitle */);
} }
private SliceData getDummyData(Class prefController, String summary, int sliceType, private SliceData getDummyData(Class prefController, String summary, int sliceType,
String screenTitle, int icon, boolean isDynamicSummaryAllowed, String screenTitle, int icon, String unavailableSliceSubtitle) {
String unavailableSliceSubtitle) {
return new SliceData.Builder() return new SliceData.Builder()
.setKey(KEY) .setKey(KEY)
.setTitle(TITLE) .setTitle(TITLE)
@@ -588,7 +561,6 @@ public class SliceBuilderUtilsTest {
.setUri(URI) .setUri(URI)
.setPreferenceControllerClassName(prefController.getName()) .setPreferenceControllerClassName(prefController.getName())
.setSliceType(sliceType) .setSliceType(sliceType)
.setDynamicSummaryAllowed(isDynamicSummaryAllowed)
.setUnavailableSliceSubtitle(unavailableSliceSubtitle) .setUnavailableSliceSubtitle(unavailableSliceSubtitle)
.build(); .build();
} }

View File

@@ -124,7 +124,6 @@ public class SliceDataConverterTest {
assertThat(fakeSlice.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME); assertThat(fakeSlice.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME);
assertThat(fakeSlice.getSliceType()).isEqualTo(SliceData.SliceType.SLIDER); assertThat(fakeSlice.getSliceType()).isEqualTo(SliceData.SliceType.SLIDER);
assertThat(fakeSlice.isPlatformDefined()).isTrue(); // from XML assertThat(fakeSlice.isPlatformDefined()).isTrue(); // from XML
assertThat(fakeSlice.isDynamicSummaryAllowed()).isTrue(); // from XML
assertThat(fakeSlice.getUnavailableSliceSubtitle()).isEqualTo( assertThat(fakeSlice.getUnavailableSliceSubtitle()).isEqualTo(
"subtitleOfUnavailableSlice"); // from XML "subtitleOfUnavailableSlice"); // from XML
} }

View File

@@ -38,7 +38,6 @@ public class SliceDataTest {
private final String PREF_CONTROLLER = "com.android.settings.slices.tester"; private final String PREF_CONTROLLER = "com.android.settings.slices.tester";
private final int SLICE_TYPE = SliceData.SliceType.SWITCH; private final int SLICE_TYPE = SliceData.SliceType.SWITCH;
private final boolean IS_PLATFORM_DEFINED = true; private final boolean IS_PLATFORM_DEFINED = true;
private final boolean IS_DYNAMIC_SUMMARY_ALLOWED = true;
private final String UNAVAILABLE_SLICE_SUBTITLE = "subtitleOfUnavailableSlice"; private final String UNAVAILABLE_SLICE_SUBTITLE = "subtitleOfUnavailableSlice";
@Test @Test
@@ -55,7 +54,6 @@ public class SliceDataTest {
.setPreferenceControllerClassName(PREF_CONTROLLER) .setPreferenceControllerClassName(PREF_CONTROLLER)
.setSliceType(SLICE_TYPE) .setSliceType(SLICE_TYPE)
.setPlatformDefined(IS_PLATFORM_DEFINED) .setPlatformDefined(IS_PLATFORM_DEFINED)
.setDynamicSummaryAllowed(IS_DYNAMIC_SUMMARY_ALLOWED)
.setUnavailableSliceSubtitle(UNAVAILABLE_SLICE_SUBTITLE); .setUnavailableSliceSubtitle(UNAVAILABLE_SLICE_SUBTITLE);
SliceData data = builder.build(); SliceData data = builder.build();
@@ -71,7 +69,6 @@ public class SliceDataTest {
assertThat(data.getPreferenceController()).isEqualTo(PREF_CONTROLLER); assertThat(data.getPreferenceController()).isEqualTo(PREF_CONTROLLER);
assertThat(data.getSliceType()).isEqualTo(SLICE_TYPE); assertThat(data.getSliceType()).isEqualTo(SLICE_TYPE);
assertThat(data.isPlatformDefined()).isEqualTo(IS_PLATFORM_DEFINED); assertThat(data.isPlatformDefined()).isEqualTo(IS_PLATFORM_DEFINED);
assertThat(data.isDynamicSummaryAllowed()).isEqualTo(IS_DYNAMIC_SUMMARY_ALLOWED);
assertThat(data.getUnavailableSliceSubtitle()).isEqualTo(UNAVAILABLE_SLICE_SUBTITLE); assertThat(data.getUnavailableSliceSubtitle()).isEqualTo(UNAVAILABLE_SLICE_SUBTITLE);
} }
@@ -220,31 +217,6 @@ public class SliceDataTest {
assertThat(data.getPreferenceController()).isEqualTo(PREF_CONTROLLER); assertThat(data.getPreferenceController()).isEqualTo(PREF_CONTROLLER);
} }
@Test
public void testBuilder_noDynamicSummaryAllowed_buildsMatchingObject() {
SliceData.Builder builder = new SliceData.Builder()
.setKey(KEY)
.setTitle(TITLE)
.setSummary(SUMMARY)
.setScreenTitle(SCREEN_TITLE)
.setIcon(ICON)
.setFragmentName(FRAGMENT_NAME)
.setUri(URI)
.setPreferenceControllerClassName(PREF_CONTROLLER);
SliceData data = builder.build();
assertThat(data.getKey()).isEqualTo(KEY);
assertThat(data.getTitle()).isEqualTo(TITLE);
assertThat(data.getSummary()).isEqualTo(SUMMARY);
assertThat(data.getScreenTitle()).isEqualTo(SCREEN_TITLE);
assertThat(data.getIconResource()).isEqualTo(ICON);
assertThat(data.getFragmentClassName()).isEqualTo(FRAGMENT_NAME);
assertThat(data.getUri()).isEqualTo(URI);
assertThat(data.getPreferenceController()).isEqualTo(PREF_CONTROLLER);
assertThat(data.isDynamicSummaryAllowed()).isFalse();
}
@Test @Test
public void testEquality_identicalObjects() { public void testEquality_identicalObjects() {
SliceData.Builder builder = new SliceData.Builder() SliceData.Builder builder = new SliceData.Builder()
@@ -255,8 +227,7 @@ public class SliceDataTest {
.setIcon(ICON) .setIcon(ICON)
.setFragmentName(FRAGMENT_NAME) .setFragmentName(FRAGMENT_NAME)
.setUri(URI) .setUri(URI)
.setPreferenceControllerClassName(PREF_CONTROLLER) .setPreferenceControllerClassName(PREF_CONTROLLER);
.setDynamicSummaryAllowed(IS_DYNAMIC_SUMMARY_ALLOWED);
SliceData dataOne = builder.build(); SliceData dataOne = builder.build();
SliceData dataTwo = builder.build(); SliceData dataTwo = builder.build();

View File

@@ -108,14 +108,13 @@ public class SlicesDatabaseAccessorTest {
assertThat(data.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_NAME); assertThat(data.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_NAME);
assertThat(data.getUri()).isNull(); assertThat(data.getUri()).isNull();
assertThat(data.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME); assertThat(data.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME);
assertThat(data.isDynamicSummaryAllowed()).isFalse(); /* default value */
assertThat(data.getUnavailableSliceSubtitle()).isNull(); assertThat(data.getUnavailableSliceSubtitle()).isNull();
} }
@Test @Test
public void testGetSliceDataFromKey_allowDynamicSummary_validSliceReturned() { public void testGetSliceDataFromKey_allowDynamicSummary_validSliceReturned() {
String key = "key"; String key = "key";
insertSpecialCase(key, true /* isPlatformSlice */, true /* isDynamicSummaryAllowed */, insertSpecialCase(key, true /* isPlatformSlice */,
null /* customizedUnavailableSliceSubtitle */); null /* customizedUnavailableSliceSubtitle */);
SliceData data = mAccessor.getSliceDataFromKey(key); SliceData data = mAccessor.getSliceDataFromKey(key);
@@ -129,27 +128,6 @@ public class SlicesDatabaseAccessorTest {
assertThat(data.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_NAME); assertThat(data.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_NAME);
assertThat(data.getUri()).isNull(); assertThat(data.getUri()).isNull();
assertThat(data.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME); assertThat(data.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME);
assertThat(data.isDynamicSummaryAllowed()).isTrue();
}
@Test
public void testGetSliceDataFromKey_doNotAllowDynamicSummary_validSliceReturned() {
String key = "key";
insertSpecialCase(key, true /* isPlatformSlice */, false /* isDynamicSummaryAllowed */,
null /* customizedUnavailableSliceSubtitle */);
SliceData data = mAccessor.getSliceDataFromKey(key);
assertThat(data.getKey()).isEqualTo(key);
assertThat(data.getTitle()).isEqualTo(FAKE_TITLE);
assertThat(data.getSummary()).isEqualTo(FAKE_SUMMARY);
assertThat(data.getScreenTitle()).isEqualTo(FAKE_SCREEN_TITLE);
assertThat(data.getKeywords()).isEqualTo(FAKE_KEYWORDS);
assertThat(data.getIconResource()).isEqualTo(FAKE_ICON);
assertThat(data.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_NAME);
assertThat(data.getUri()).isNull();
assertThat(data.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME);
assertThat(data.isDynamicSummaryAllowed()).isFalse();
} }
@Test(expected = IllegalStateException.class) @Test(expected = IllegalStateException.class)
@@ -249,7 +227,7 @@ public class SlicesDatabaseAccessorTest {
@Test @Test
public void testGetSliceDataFromKey_defaultUnavailableSlice_validSliceReturned() { public void testGetSliceDataFromKey_defaultUnavailableSlice_validSliceReturned() {
String key = "key"; String key = "key";
insertSpecialCase(key, true /* isPlatformSlice */, true /* isDynamicSummaryAllowed */, insertSpecialCase(key, true /* isPlatformSlice */,
null /* customizedUnavailableSliceSubtitle */); null /* customizedUnavailableSliceSubtitle */);
SliceData data = mAccessor.getSliceDataFromKey(key); SliceData data = mAccessor.getSliceDataFromKey(key);
@@ -270,8 +248,7 @@ public class SlicesDatabaseAccessorTest {
public void testGetSliceDataFromKey_customizeSubtitleOfUnavailableSlice_validSliceReturned() { public void testGetSliceDataFromKey_customizeSubtitleOfUnavailableSlice_validSliceReturned() {
String key = "key"; String key = "key";
String subtitle = "subtitle"; String subtitle = "subtitle";
insertSpecialCase(key, true /* isPlatformSlice */, true /* isDynamicSummaryAllowed */, insertSpecialCase(key, true /* isPlatformSlice */, subtitle);
subtitle);
SliceData data = mAccessor.getSliceDataFromKey(key); SliceData data = mAccessor.getSliceDataFromKey(key);
@@ -292,12 +269,11 @@ public class SlicesDatabaseAccessorTest {
} }
private void insertSpecialCase(String key, boolean isPlatformSlice) { private void insertSpecialCase(String key, boolean isPlatformSlice) {
insertSpecialCase(key, isPlatformSlice, false /* isDynamicSummaryAllowed */, insertSpecialCase(key, isPlatformSlice, null /*customizedUnavailableSliceSubtitle*/);
null /*customizedUnavailableSliceSubtitle*/);
} }
private void insertSpecialCase(String key, boolean isPlatformSlice, private void insertSpecialCase(String key, boolean isPlatformSlice,
boolean isDynamicSummaryAllowed, String customizedUnavailableSliceSubtitle) { String customizedUnavailableSliceSubtitle) {
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
values.put(SlicesDatabaseHelper.IndexColumns.KEY, key); values.put(SlicesDatabaseHelper.IndexColumns.KEY, key);
values.put(SlicesDatabaseHelper.IndexColumns.TITLE, FAKE_TITLE); values.put(SlicesDatabaseHelper.IndexColumns.TITLE, FAKE_TITLE);
@@ -308,8 +284,6 @@ public class SlicesDatabaseAccessorTest {
values.put(SlicesDatabaseHelper.IndexColumns.FRAGMENT, FAKE_FRAGMENT_NAME); values.put(SlicesDatabaseHelper.IndexColumns.FRAGMENT, FAKE_FRAGMENT_NAME);
values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, FAKE_CONTROLLER_NAME); values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, FAKE_CONTROLLER_NAME);
values.put(SlicesDatabaseHelper.IndexColumns.PLATFORM_SLICE, isPlatformSlice); values.put(SlicesDatabaseHelper.IndexColumns.PLATFORM_SLICE, isPlatformSlice);
values.put(SlicesDatabaseHelper.IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE,
isDynamicSummaryAllowed);
values.put(SlicesDatabaseHelper.IndexColumns.SLICE_TYPE, SliceData.SliceType.INTENT); values.put(SlicesDatabaseHelper.IndexColumns.SLICE_TYPE, SliceData.SliceType.INTENT);
values.put(SlicesDatabaseHelper.IndexColumns.UNAVAILABLE_SLICE_SUBTITLE, values.put(SlicesDatabaseHelper.IndexColumns.UNAVAILABLE_SLICE_SUBTITLE,
customizedUnavailableSliceSubtitle); customizedUnavailableSliceSubtitle);

View File

@@ -74,7 +74,6 @@ public class SlicesDatabaseHelperTest {
IndexColumns.CONTROLLER, IndexColumns.CONTROLLER,
IndexColumns.PLATFORM_SLICE, IndexColumns.PLATFORM_SLICE,
IndexColumns.SLICE_TYPE, IndexColumns.SLICE_TYPE,
IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE,
IndexColumns.UNAVAILABLE_SLICE_SUBTITLE, IndexColumns.UNAVAILABLE_SLICE_SUBTITLE,
}; };

View File

@@ -53,7 +53,6 @@ public class SlicesIndexerTest {
private final Uri URI = Uri.parse("content://com.android.settings.slices/test"); private final Uri URI = Uri.parse("content://com.android.settings.slices/test");
private final String PREF_CONTROLLER = "com.android.settings.slices.tester"; private final String PREF_CONTROLLER = "com.android.settings.slices.tester";
private final boolean PLATFORM_DEFINED = true; private final boolean PLATFORM_DEFINED = true;
private final boolean IS_DYNAMIC_SUMMARY_ALLOWED = true;
private final int SLICE_TYPE = SliceData.SliceType.SLIDER; private final int SLICE_TYPE = SliceData.SliceType.SLIDER;
private final String UNAVAILABLE_SLICE_SUBTITLE = "subtitleOfUnavailableSlice"; private final String UNAVAILABLE_SLICE_SUBTITLE = "subtitleOfUnavailableSlice";
@@ -142,10 +141,6 @@ public class SlicesIndexerTest {
.isEqualTo(1 /* true */); .isEqualTo(1 /* true */);
assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.SLICE_TYPE))) assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.SLICE_TYPE)))
.isEqualTo(SLICE_TYPE); .isEqualTo(SLICE_TYPE);
assertThat(cursor.getInt(
cursor.getColumnIndex(
IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE)))
.isEqualTo(1 /* true */);
assertThat(cursor.getString( assertThat(cursor.getString(
cursor.getColumnIndex(IndexColumns.UNAVAILABLE_SLICE_SUBTITLE))) cursor.getColumnIndex(IndexColumns.UNAVAILABLE_SLICE_SUBTITLE)))
.isEqualTo(UNAVAILABLE_SLICE_SUBTITLE); .isEqualTo(UNAVAILABLE_SLICE_SUBTITLE);
@@ -183,7 +178,6 @@ public class SlicesIndexerTest {
.setPreferenceControllerClassName(PREF_CONTROLLER) .setPreferenceControllerClassName(PREF_CONTROLLER)
.setPlatformDefined(PLATFORM_DEFINED) .setPlatformDefined(PLATFORM_DEFINED)
.setSliceType(SLICE_TYPE) .setSliceType(SLICE_TYPE)
.setDynamicSummaryAllowed(IS_DYNAMIC_SUMMARY_ALLOWED)
.setUnavailableSliceSubtitle(UNAVAILABLE_SLICE_SUBTITLE); .setUnavailableSliceSubtitle(UNAVAILABLE_SLICE_SUBTITLE);
for (int i = 0; i < KEYS.length; i++) { for (int i = 0; i < KEYS.length; i++) {