diff options
| author | 2022-02-09 08:10:06 +0000 | |
|---|---|---|
| committer | 2022-02-10 20:24:57 +0000 | |
| commit | 663abefa00a73a3d532558cdd146d00899fa9096 (patch) | |
| tree | 7f8b816386921fed15bcb1f0c3b9b71810dcb2a0 | |
| parent | e4368e19b85a1d28ff7f7266cc3b36bfca72bcfa (diff) | |
Modify the documentations for the UI template APIs
- Rename the classes to be less verbose;
- Add the template layout descriptions to its corresponding data
classes;
- Documents for all getter/setter methods.
Fixes: 217554855
Test: atest CtsSmartspaceServiceTestCases
Change-Id: Id5abcea0210b19b40c96cc8183e439c8af95bf85
| -rw-r--r-- | core/api/system-current.txt | 266 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/SmartspaceTarget.java | 24 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/SmartspaceUtils.java | 10 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/uitemplatedata/BaseTemplateData.java (renamed from core/java/android/app/smartspace/uitemplatedata/SmartspaceDefaultUiTemplateData.java) | 173 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/uitemplatedata/CarouselTemplateData.java (renamed from core/java/android/app/smartspace/uitemplatedata/SmartspaceCarouselUiTemplateData.java) | 126 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/uitemplatedata/CombinedCardsTemplateData.java (renamed from core/java/android/app/smartspace/uitemplatedata/SmartspaceCombinedCardsUiTemplateData.java) | 71 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/uitemplatedata/HeadToHeadTemplateData.java (renamed from core/java/android/app/smartspace/uitemplatedata/SmartspaceHeadToHeadUiTemplateData.java) | 135 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/uitemplatedata/Icon.java (renamed from core/java/android/app/smartspace/uitemplatedata/SmartspaceIcon.java) | 44 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/uitemplatedata/SubCardTemplateData.java (renamed from core/java/android/app/smartspace/uitemplatedata/SmartspaceSubCardUiTemplateData.java) | 95 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/uitemplatedata/SubImageTemplateData.java (renamed from core/java/android/app/smartspace/uitemplatedata/SmartspaceSubImageUiTemplateData.java) | 99 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/uitemplatedata/SubListTemplateData.java (renamed from core/java/android/app/smartspace/uitemplatedata/SmartspaceSubListUiTemplateData.java) | 97 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/uitemplatedata/TapAction.java (renamed from core/java/android/app/smartspace/uitemplatedata/SmartspaceTapAction.java) | 39 | ||||
| -rw-r--r-- | core/java/android/app/smartspace/uitemplatedata/Text.java (renamed from core/java/android/app/smartspace/uitemplatedata/SmartspaceText.java) | 63 | ||||
| -rw-r--r-- | packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java | 4 |
14 files changed, 688 insertions, 558 deletions
diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 3e58379dea80..8578f4bd71e9 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -1837,7 +1837,7 @@ package android.app.smartspace { method @Nullable public android.net.Uri getSliceUri(); method @NonNull public String getSmartspaceTargetId(); method @Nullable public String getSourceNotificationKey(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData getTemplateData(); + method @Nullable public android.app.smartspace.uitemplatedata.BaseTemplateData getTemplateData(); method @NonNull public android.os.UserHandle getUserHandle(); method @Nullable public android.appwidget.AppWidgetProviderInfo getWidget(); method public boolean isSensitive(); @@ -1894,7 +1894,7 @@ package android.app.smartspace { method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setShouldShowExpanded(boolean); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSliceUri(@NonNull android.net.Uri); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSourceNotificationKey(@NonNull String); - method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setTemplateData(@Nullable android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData); + method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setTemplateData(@Nullable android.app.smartspace.uitemplatedata.BaseTemplateData); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setWidget(@NonNull android.appwidget.AppWidgetProviderInfo); } @@ -1925,156 +1925,156 @@ package android.app.smartspace { package android.app.smartspace.uitemplatedata { - public final class SmartspaceCarouselUiTemplateData extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData { - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceTapAction getCarouselAction(); - method @NonNull public java.util.List<android.app.smartspace.uitemplatedata.SmartspaceCarouselUiTemplateData.CarouselItem> getCarouselItems(); - field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SmartspaceCarouselUiTemplateData> CREATOR; + public class BaseTemplateData implements android.os.Parcelable { + method public int describeContents(); + method @Nullable public android.app.smartspace.uitemplatedata.TapAction getPrimaryTapAction(); + method @Nullable public android.app.smartspace.uitemplatedata.Icon getSubtitleIcon(); + method @Nullable public android.app.smartspace.uitemplatedata.Text getSubtitleText(); + method @Nullable public android.app.smartspace.uitemplatedata.Text getSupplementalAlarmText(); + method @Nullable public android.app.smartspace.uitemplatedata.Icon getSupplementalSubtitleIcon(); + method @Nullable public android.app.smartspace.uitemplatedata.TapAction getSupplementalSubtitleTapAction(); + method @Nullable public android.app.smartspace.uitemplatedata.Text getSupplementalSubtitleText(); + method public int getTemplateType(); + method @Nullable public android.app.smartspace.uitemplatedata.Icon getTitleIcon(); + method @Nullable public android.app.smartspace.uitemplatedata.Text getTitleText(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.BaseTemplateData> CREATOR; + } + + public static class BaseTemplateData.Builder { + ctor public BaseTemplateData.Builder(int); + method @NonNull public android.app.smartspace.uitemplatedata.BaseTemplateData build(); + method @NonNull public android.app.smartspace.uitemplatedata.BaseTemplateData.Builder setPrimaryTapAction(@NonNull android.app.smartspace.uitemplatedata.TapAction); + method @NonNull public android.app.smartspace.uitemplatedata.BaseTemplateData.Builder setSubtitleIcon(@NonNull android.app.smartspace.uitemplatedata.Icon); + method @NonNull public android.app.smartspace.uitemplatedata.BaseTemplateData.Builder setSubtitleText(@NonNull android.app.smartspace.uitemplatedata.Text); + method @NonNull public android.app.smartspace.uitemplatedata.BaseTemplateData.Builder setSupplementalAlarmText(@NonNull android.app.smartspace.uitemplatedata.Text); + method @NonNull public android.app.smartspace.uitemplatedata.BaseTemplateData.Builder setSupplementalSubtitleIcon(@NonNull android.app.smartspace.uitemplatedata.Icon); + method @NonNull public android.app.smartspace.uitemplatedata.BaseTemplateData.Builder setSupplementalSubtitleTapAction(@NonNull android.app.smartspace.uitemplatedata.TapAction); + method @NonNull public android.app.smartspace.uitemplatedata.BaseTemplateData.Builder setSupplementalSubtitleText(@NonNull android.app.smartspace.uitemplatedata.Text); + method @NonNull public android.app.smartspace.uitemplatedata.BaseTemplateData.Builder setTitleIcon(@NonNull android.app.smartspace.uitemplatedata.Icon); + method @NonNull public android.app.smartspace.uitemplatedata.BaseTemplateData.Builder setTitleText(@NonNull android.app.smartspace.uitemplatedata.Text); + } + + public final class CarouselTemplateData extends android.app.smartspace.uitemplatedata.BaseTemplateData { + method @Nullable public android.app.smartspace.uitemplatedata.TapAction getCarouselAction(); + method @NonNull public java.util.List<android.app.smartspace.uitemplatedata.CarouselTemplateData.CarouselItem> getCarouselItems(); + field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.CarouselTemplateData> CREATOR; } - public static final class SmartspaceCarouselUiTemplateData.Builder extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder { - ctor public SmartspaceCarouselUiTemplateData.Builder(@NonNull java.util.List<android.app.smartspace.uitemplatedata.SmartspaceCarouselUiTemplateData.CarouselItem>); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceCarouselUiTemplateData build(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceCarouselUiTemplateData.Builder setCarouselAction(@NonNull android.app.smartspace.uitemplatedata.SmartspaceTapAction); + public static final class CarouselTemplateData.Builder extends android.app.smartspace.uitemplatedata.BaseTemplateData.Builder { + ctor public CarouselTemplateData.Builder(@NonNull java.util.List<android.app.smartspace.uitemplatedata.CarouselTemplateData.CarouselItem>); + method @NonNull public android.app.smartspace.uitemplatedata.CarouselTemplateData build(); + method @NonNull public android.app.smartspace.uitemplatedata.CarouselTemplateData.Builder setCarouselAction(@NonNull android.app.smartspace.uitemplatedata.TapAction); } - public static final class SmartspaceCarouselUiTemplateData.CarouselItem implements android.os.Parcelable { + public static final class CarouselTemplateData.CarouselItem implements android.os.Parcelable { method public int describeContents(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceIcon getImage(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceText getLowerText(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceTapAction getTapAction(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceText getUpperText(); + method @Nullable public android.app.smartspace.uitemplatedata.Icon getImage(); + method @Nullable public android.app.smartspace.uitemplatedata.Text getLowerText(); + method @Nullable public android.app.smartspace.uitemplatedata.TapAction getTapAction(); + method @Nullable public android.app.smartspace.uitemplatedata.Text getUpperText(); method public void writeToParcel(@NonNull android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SmartspaceCarouselUiTemplateData.CarouselItem> CREATOR; + field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.CarouselTemplateData.CarouselItem> CREATOR; } - public static final class SmartspaceCarouselUiTemplateData.CarouselItem.Builder { - ctor public SmartspaceCarouselUiTemplateData.CarouselItem.Builder(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceCarouselUiTemplateData.CarouselItem build(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceCarouselUiTemplateData.CarouselItem.Builder setImage(@Nullable android.app.smartspace.uitemplatedata.SmartspaceIcon); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceCarouselUiTemplateData.CarouselItem.Builder setLowerText(@Nullable android.app.smartspace.uitemplatedata.SmartspaceText); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceCarouselUiTemplateData.CarouselItem.Builder setTapAction(@Nullable android.app.smartspace.uitemplatedata.SmartspaceTapAction); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceCarouselUiTemplateData.CarouselItem.Builder setUpperText(@Nullable android.app.smartspace.uitemplatedata.SmartspaceText); + public static final class CarouselTemplateData.CarouselItem.Builder { + ctor public CarouselTemplateData.CarouselItem.Builder(); + method @NonNull public android.app.smartspace.uitemplatedata.CarouselTemplateData.CarouselItem build(); + method @NonNull public android.app.smartspace.uitemplatedata.CarouselTemplateData.CarouselItem.Builder setImage(@Nullable android.app.smartspace.uitemplatedata.Icon); + method @NonNull public android.app.smartspace.uitemplatedata.CarouselTemplateData.CarouselItem.Builder setLowerText(@Nullable android.app.smartspace.uitemplatedata.Text); + method @NonNull public android.app.smartspace.uitemplatedata.CarouselTemplateData.CarouselItem.Builder setTapAction(@Nullable android.app.smartspace.uitemplatedata.TapAction); + method @NonNull public android.app.smartspace.uitemplatedata.CarouselTemplateData.CarouselItem.Builder setUpperText(@Nullable android.app.smartspace.uitemplatedata.Text); } - public final class SmartspaceCombinedCardsUiTemplateData extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData { - method @NonNull public java.util.List<android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData> getCombinedCardDataList(); - field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SmartspaceCombinedCardsUiTemplateData> CREATOR; + public final class CombinedCardsTemplateData extends android.app.smartspace.uitemplatedata.BaseTemplateData { + method @NonNull public java.util.List<android.app.smartspace.uitemplatedata.BaseTemplateData> getCombinedCardDataList(); + field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.CombinedCardsTemplateData> CREATOR; } - public static final class SmartspaceCombinedCardsUiTemplateData.Builder extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder { - ctor public SmartspaceCombinedCardsUiTemplateData.Builder(@NonNull java.util.List<android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData>); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceCombinedCardsUiTemplateData build(); + public static final class CombinedCardsTemplateData.Builder extends android.app.smartspace.uitemplatedata.BaseTemplateData.Builder { + ctor public CombinedCardsTemplateData.Builder(@NonNull java.util.List<android.app.smartspace.uitemplatedata.BaseTemplateData>); + method @NonNull public android.app.smartspace.uitemplatedata.CombinedCardsTemplateData build(); } - public class SmartspaceDefaultUiTemplateData implements android.os.Parcelable { - method public int describeContents(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceTapAction getPrimaryTapAction(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceIcon getSubtitleIcon(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceText getSubtitleText(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceText getSupplementalAlarmText(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceIcon getSupplementalSubtitleIcon(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceTapAction getSupplementalSubtitleTapAction(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceText getSupplementalSubtitleText(); - method public int getTemplateType(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceIcon getTitleIcon(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceText getTitleText(); - method public void writeToParcel(@NonNull android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData> CREATOR; - } - - public static class SmartspaceDefaultUiTemplateData.Builder { - ctor public SmartspaceDefaultUiTemplateData.Builder(int); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData build(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder setPrimaryTapAction(@NonNull android.app.smartspace.uitemplatedata.SmartspaceTapAction); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder setSubtitleIcon(@NonNull android.app.smartspace.uitemplatedata.SmartspaceIcon); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder setSubtitleText(@NonNull android.app.smartspace.uitemplatedata.SmartspaceText); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder setSupplementalAlarmText(@NonNull android.app.smartspace.uitemplatedata.SmartspaceText); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder setSupplementalSubtitleIcon(@NonNull android.app.smartspace.uitemplatedata.SmartspaceIcon); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder setSupplementalSubtitleTapAction(@NonNull android.app.smartspace.uitemplatedata.SmartspaceTapAction); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder setSupplementalSubtitleText(@NonNull android.app.smartspace.uitemplatedata.SmartspaceText); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder setTitleIcon(@NonNull android.app.smartspace.uitemplatedata.SmartspaceIcon); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder setTitleText(@NonNull android.app.smartspace.uitemplatedata.SmartspaceText); - } - - public final class SmartspaceHeadToHeadUiTemplateData extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData { - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceTapAction getHeadToHeadAction(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceIcon getHeadToHeadFirstCompetitorIcon(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceText getHeadToHeadFirstCompetitorText(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceIcon getHeadToHeadSecondCompetitorIcon(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceText getHeadToHeadSecondCompetitorText(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceText getHeadToHeadTitle(); - field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SmartspaceHeadToHeadUiTemplateData> CREATOR; - } - - public static final class SmartspaceHeadToHeadUiTemplateData.Builder extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder { - ctor public SmartspaceHeadToHeadUiTemplateData.Builder(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceHeadToHeadUiTemplateData build(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceHeadToHeadUiTemplateData.Builder setHeadToHeadAction(@Nullable android.app.smartspace.uitemplatedata.SmartspaceTapAction); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceHeadToHeadUiTemplateData.Builder setHeadToHeadFirstCompetitorIcon(@Nullable android.app.smartspace.uitemplatedata.SmartspaceIcon); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceHeadToHeadUiTemplateData.Builder setHeadToHeadFirstCompetitorText(@Nullable android.app.smartspace.uitemplatedata.SmartspaceText); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceHeadToHeadUiTemplateData.Builder setHeadToHeadSecondCompetitorIcon(@Nullable android.app.smartspace.uitemplatedata.SmartspaceIcon); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceHeadToHeadUiTemplateData.Builder setHeadToHeadSecondCompetitorText(@Nullable android.app.smartspace.uitemplatedata.SmartspaceText); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceHeadToHeadUiTemplateData.Builder setHeadToHeadTitle(@Nullable android.app.smartspace.uitemplatedata.SmartspaceText); - } - - public final class SmartspaceIcon implements android.os.Parcelable { + public final class HeadToHeadTemplateData extends android.app.smartspace.uitemplatedata.BaseTemplateData { + method @Nullable public android.app.smartspace.uitemplatedata.TapAction getHeadToHeadAction(); + method @Nullable public android.app.smartspace.uitemplatedata.Icon getHeadToHeadFirstCompetitorIcon(); + method @Nullable public android.app.smartspace.uitemplatedata.Text getHeadToHeadFirstCompetitorText(); + method @Nullable public android.app.smartspace.uitemplatedata.Icon getHeadToHeadSecondCompetitorIcon(); + method @Nullable public android.app.smartspace.uitemplatedata.Text getHeadToHeadSecondCompetitorText(); + method @Nullable public android.app.smartspace.uitemplatedata.Text getHeadToHeadTitle(); + field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.HeadToHeadTemplateData> CREATOR; + } + + public static final class HeadToHeadTemplateData.Builder extends android.app.smartspace.uitemplatedata.BaseTemplateData.Builder { + ctor public HeadToHeadTemplateData.Builder(); + method @NonNull public android.app.smartspace.uitemplatedata.HeadToHeadTemplateData build(); + method @NonNull public android.app.smartspace.uitemplatedata.HeadToHeadTemplateData.Builder setHeadToHeadAction(@Nullable android.app.smartspace.uitemplatedata.TapAction); + method @NonNull public android.app.smartspace.uitemplatedata.HeadToHeadTemplateData.Builder setHeadToHeadFirstCompetitorIcon(@Nullable android.app.smartspace.uitemplatedata.Icon); + method @NonNull public android.app.smartspace.uitemplatedata.HeadToHeadTemplateData.Builder setHeadToHeadFirstCompetitorText(@Nullable android.app.smartspace.uitemplatedata.Text); + method @NonNull public android.app.smartspace.uitemplatedata.HeadToHeadTemplateData.Builder setHeadToHeadSecondCompetitorIcon(@Nullable android.app.smartspace.uitemplatedata.Icon); + method @NonNull public android.app.smartspace.uitemplatedata.HeadToHeadTemplateData.Builder setHeadToHeadSecondCompetitorText(@Nullable android.app.smartspace.uitemplatedata.Text); + method @NonNull public android.app.smartspace.uitemplatedata.HeadToHeadTemplateData.Builder setHeadToHeadTitle(@Nullable android.app.smartspace.uitemplatedata.Text); + } + + public final class Icon implements android.os.Parcelable { method public int describeContents(); method @Nullable public CharSequence getContentDescription(); method @NonNull public android.graphics.drawable.Icon getIcon(); method public boolean shouldTint(); method public void writeToParcel(@NonNull android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SmartspaceIcon> CREATOR; + field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.Icon> CREATOR; } - public static final class SmartspaceIcon.Builder { - ctor public SmartspaceIcon.Builder(@NonNull android.graphics.drawable.Icon); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceIcon build(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceIcon.Builder setContentDescription(@NonNull CharSequence); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceIcon.Builder setShouldTint(boolean); + public static final class Icon.Builder { + ctor public Icon.Builder(@NonNull android.graphics.drawable.Icon); + method @NonNull public android.app.smartspace.uitemplatedata.Icon build(); + method @NonNull public android.app.smartspace.uitemplatedata.Icon.Builder setContentDescription(@NonNull CharSequence); + method @NonNull public android.app.smartspace.uitemplatedata.Icon.Builder setShouldTint(boolean); } - public final class SmartspaceSubCardUiTemplateData extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData { - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceTapAction getSubCardAction(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceIcon getSubCardIcon(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceText getSubCardText(); - field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SmartspaceSubCardUiTemplateData> CREATOR; + public final class SubCardTemplateData extends android.app.smartspace.uitemplatedata.BaseTemplateData { + method @Nullable public android.app.smartspace.uitemplatedata.TapAction getSubCardAction(); + method @NonNull public android.app.smartspace.uitemplatedata.Icon getSubCardIcon(); + method @Nullable public android.app.smartspace.uitemplatedata.Text getSubCardText(); + field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SubCardTemplateData> CREATOR; } - public static final class SmartspaceSubCardUiTemplateData.Builder extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder { - ctor public SmartspaceSubCardUiTemplateData.Builder(@NonNull android.app.smartspace.uitemplatedata.SmartspaceIcon); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceSubCardUiTemplateData build(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceSubCardUiTemplateData.Builder setSubCardAction(@NonNull android.app.smartspace.uitemplatedata.SmartspaceTapAction); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceSubCardUiTemplateData.Builder setSubCardText(@NonNull android.app.smartspace.uitemplatedata.SmartspaceText); + public static final class SubCardTemplateData.Builder extends android.app.smartspace.uitemplatedata.BaseTemplateData.Builder { + ctor public SubCardTemplateData.Builder(@NonNull android.app.smartspace.uitemplatedata.Icon); + method @NonNull public android.app.smartspace.uitemplatedata.SubCardTemplateData build(); + method @NonNull public android.app.smartspace.uitemplatedata.SubCardTemplateData.Builder setSubCardAction(@NonNull android.app.smartspace.uitemplatedata.TapAction); + method @NonNull public android.app.smartspace.uitemplatedata.SubCardTemplateData.Builder setSubCardText(@NonNull android.app.smartspace.uitemplatedata.Text); } - public final class SmartspaceSubImageUiTemplateData extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData { - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceTapAction getSubImageAction(); - method @NonNull public java.util.List<android.app.smartspace.uitemplatedata.SmartspaceText> getSubImageTexts(); - method @NonNull public java.util.List<android.app.smartspace.uitemplatedata.SmartspaceIcon> getSubImages(); - field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SmartspaceSubImageUiTemplateData> CREATOR; + public final class SubImageTemplateData extends android.app.smartspace.uitemplatedata.BaseTemplateData { + method @Nullable public android.app.smartspace.uitemplatedata.TapAction getSubImageAction(); + method @NonNull public java.util.List<android.app.smartspace.uitemplatedata.Text> getSubImageTexts(); + method @NonNull public java.util.List<android.app.smartspace.uitemplatedata.Icon> getSubImages(); + field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SubImageTemplateData> CREATOR; } - public static final class SmartspaceSubImageUiTemplateData.Builder extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder { - ctor public SmartspaceSubImageUiTemplateData.Builder(@NonNull java.util.List<android.app.smartspace.uitemplatedata.SmartspaceText>, @NonNull java.util.List<android.app.smartspace.uitemplatedata.SmartspaceIcon>); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceSubImageUiTemplateData build(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceSubImageUiTemplateData.Builder setSubImageAction(@NonNull android.app.smartspace.uitemplatedata.SmartspaceTapAction); + public static final class SubImageTemplateData.Builder extends android.app.smartspace.uitemplatedata.BaseTemplateData.Builder { + ctor public SubImageTemplateData.Builder(@NonNull java.util.List<android.app.smartspace.uitemplatedata.Text>, @NonNull java.util.List<android.app.smartspace.uitemplatedata.Icon>); + method @NonNull public android.app.smartspace.uitemplatedata.SubImageTemplateData build(); + method @NonNull public android.app.smartspace.uitemplatedata.SubImageTemplateData.Builder setSubImageAction(@NonNull android.app.smartspace.uitemplatedata.TapAction); } - public final class SmartspaceSubListUiTemplateData extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData { - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceTapAction getSubListAction(); - method @Nullable public android.app.smartspace.uitemplatedata.SmartspaceIcon getSubListIcon(); - method @NonNull public java.util.List<android.app.smartspace.uitemplatedata.SmartspaceText> getSubListTexts(); - field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SmartspaceSubListUiTemplateData> CREATOR; + public final class SubListTemplateData extends android.app.smartspace.uitemplatedata.BaseTemplateData { + method @Nullable public android.app.smartspace.uitemplatedata.TapAction getSubListAction(); + method @Nullable public android.app.smartspace.uitemplatedata.Icon getSubListIcon(); + method @NonNull public java.util.List<android.app.smartspace.uitemplatedata.Text> getSubListTexts(); + field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SubListTemplateData> CREATOR; } - public static final class SmartspaceSubListUiTemplateData.Builder extends android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData.Builder { - ctor public SmartspaceSubListUiTemplateData.Builder(@NonNull java.util.List<android.app.smartspace.uitemplatedata.SmartspaceText>); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceSubListUiTemplateData build(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceSubListUiTemplateData.Builder setSubListAction(@NonNull android.app.smartspace.uitemplatedata.SmartspaceTapAction); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceSubListUiTemplateData.Builder setSubListIcon(@NonNull android.app.smartspace.uitemplatedata.SmartspaceIcon); + public static final class SubListTemplateData.Builder extends android.app.smartspace.uitemplatedata.BaseTemplateData.Builder { + ctor public SubListTemplateData.Builder(@NonNull java.util.List<android.app.smartspace.uitemplatedata.Text>); + method @NonNull public android.app.smartspace.uitemplatedata.SubListTemplateData build(); + method @NonNull public android.app.smartspace.uitemplatedata.SubListTemplateData.Builder setSubListAction(@NonNull android.app.smartspace.uitemplatedata.TapAction); + method @NonNull public android.app.smartspace.uitemplatedata.SubListTemplateData.Builder setSubListIcon(@NonNull android.app.smartspace.uitemplatedata.Icon); } - public final class SmartspaceTapAction implements android.os.Parcelable { + public final class TapAction implements android.os.Parcelable { method public int describeContents(); method @Nullable public android.os.Bundle getExtras(); method @Nullable public CharSequence getId(); @@ -2082,31 +2082,33 @@ package android.app.smartspace.uitemplatedata { method @Nullable public android.app.PendingIntent getPendingIntent(); method @Nullable public android.os.UserHandle getUserHandle(); method public void writeToParcel(@NonNull android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SmartspaceTapAction> CREATOR; + field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.TapAction> CREATOR; } - public static final class SmartspaceTapAction.Builder { - ctor public SmartspaceTapAction.Builder(@NonNull CharSequence); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceTapAction build(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceTapAction.Builder setExtras(@NonNull android.os.Bundle); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceTapAction.Builder setIntent(@NonNull android.content.Intent); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceTapAction.Builder setPendingIntent(@NonNull android.app.PendingIntent); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceTapAction.Builder setUserHandle(@Nullable android.os.UserHandle); + public static final class TapAction.Builder { + ctor public TapAction.Builder(@NonNull CharSequence); + method @NonNull public android.app.smartspace.uitemplatedata.TapAction build(); + method @NonNull public android.app.smartspace.uitemplatedata.TapAction.Builder setExtras(@NonNull android.os.Bundle); + method @NonNull public android.app.smartspace.uitemplatedata.TapAction.Builder setIntent(@NonNull android.content.Intent); + method @NonNull public android.app.smartspace.uitemplatedata.TapAction.Builder setPendingIntent(@NonNull android.app.PendingIntent); + method @NonNull public android.app.smartspace.uitemplatedata.TapAction.Builder setUserHandle(@Nullable android.os.UserHandle); } - public final class SmartspaceText implements android.os.Parcelable { + public final class Text implements android.os.Parcelable { method public int describeContents(); + method public int getMaxLines(); method @NonNull public CharSequence getText(); method @NonNull public android.text.TextUtils.TruncateAt getTruncateAtType(); method public void writeToParcel(@NonNull android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.SmartspaceText> CREATOR; + field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.uitemplatedata.Text> CREATOR; } - public static final class SmartspaceText.Builder { - ctor public SmartspaceText.Builder(@NonNull CharSequence); - ctor public SmartspaceText.Builder(@NonNull CharSequence, @NonNull android.text.TextUtils.TruncateAt); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceText build(); - method @NonNull public android.app.smartspace.uitemplatedata.SmartspaceText.Builder setTruncateAtType(@NonNull android.text.TextUtils.TruncateAt); + public static final class Text.Builder { + ctor public Text.Builder(@NonNull CharSequence); + ctor public Text.Builder(@NonNull CharSequence, @NonNull android.text.TextUtils.TruncateAt); + method @NonNull public android.app.smartspace.uitemplatedata.Text build(); + method @NonNull public android.app.smartspace.uitemplatedata.Text.Builder setMaxLines(int); + method @NonNull public android.app.smartspace.uitemplatedata.Text.Builder setTruncateAtType(@NonNull android.text.TextUtils.TruncateAt); } } diff --git a/core/java/android/app/smartspace/SmartspaceTarget.java b/core/java/android/app/smartspace/SmartspaceTarget.java index 78f51be78828..fd7088f48aed 100644 --- a/core/java/android/app/smartspace/SmartspaceTarget.java +++ b/core/java/android/app/smartspace/SmartspaceTarget.java @@ -20,7 +20,7 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; -import android.app.smartspace.uitemplatedata.SmartspaceDefaultUiTemplateData; +import android.app.smartspace.uitemplatedata.BaseTemplateData; import android.appwidget.AppWidgetProviderInfo; import android.content.ComponentName; import android.net.Uri; @@ -133,7 +133,7 @@ public final class SmartspaceTarget implements Parcelable { private final AppWidgetProviderInfo mWidget; @Nullable - private final SmartspaceDefaultUiTemplateData mTemplateData; + private final BaseTemplateData mTemplateData; public static final int FEATURE_UNDEFINED = 0; public static final int FEATURE_WEATHER = 1; @@ -194,15 +194,25 @@ public final class SmartspaceTarget implements Parcelable { } public static final int UI_TEMPLATE_UNDEFINED = 0; + // Default template whose data is represented by {@link BaseTemplateData}. The default + // template is also a base card for the other types of templates. public static final int UI_TEMPLATE_DEFAULT = 1; + // Sub-image template whose data is represented by {@link SubImageTemplateData} public static final int UI_TEMPLATE_SUB_IMAGE = 2; + // Sub-list template whose data is represented by {@link SubListTemplateData} public static final int UI_TEMPLATE_SUB_LIST = 3; + // Carousel template whose data is represented by {@link CarouselTemplateData} public static final int UI_TEMPLATE_CAROUSEL = 4; + // Head-to-head template whose data is represented by {@link HeadToHeadTemplateData} public static final int UI_TEMPLATE_HEAD_TO_HEAD = 5; + // Combined-cards template whose data is represented by {@link CombinedCardsTemplateData} public static final int UI_TEMPLATE_COMBINED_CARDS = 6; + // Sub-card template whose data is represented by {@link SubCardTemplateData} public static final int UI_TEMPLATE_SUB_CARD = 7; /** + * The types of the Smartspace ui templates. + * * @hide */ @IntDef(prefix = {"UI_TEMPLATE_"}, value = { @@ -237,7 +247,7 @@ public final class SmartspaceTarget implements Parcelable { this.mAssociatedSmartspaceTargetId = in.readString(); this.mSliceUri = in.readTypedObject(Uri.CREATOR); this.mWidget = in.readTypedObject(AppWidgetProviderInfo.CREATOR); - this.mTemplateData = in.readTypedObject(SmartspaceDefaultUiTemplateData.CREATOR); + this.mTemplateData = in.readTypedObject(BaseTemplateData.CREATOR); } private SmartspaceTarget(String smartspaceTargetId, @@ -248,7 +258,7 @@ public final class SmartspaceTarget implements Parcelable { boolean shouldShowExpanded, String sourceNotificationKey, ComponentName componentName, UserHandle userHandle, String associatedSmartspaceTargetId, Uri sliceUri, - AppWidgetProviderInfo widget, SmartspaceDefaultUiTemplateData templateData) { + AppWidgetProviderInfo widget, BaseTemplateData templateData) { mSmartspaceTargetId = smartspaceTargetId; mHeaderAction = headerAction; mBaseAction = baseAction; @@ -406,7 +416,7 @@ public final class SmartspaceTarget implements Parcelable { * Returns the UI template data. */ @Nullable - public SmartspaceDefaultUiTemplateData getTemplateData() { + public BaseTemplateData getTemplateData() { return mTemplateData; } @@ -536,7 +546,7 @@ public final class SmartspaceTarget implements Parcelable { private String mAssociatedSmartspaceTargetId; private Uri mSliceUri; private AppWidgetProviderInfo mWidget; - private SmartspaceDefaultUiTemplateData mTemplateData; + private BaseTemplateData mTemplateData; /** * A builder for {@link SmartspaceTarget}. @@ -689,7 +699,7 @@ public final class SmartspaceTarget implements Parcelable { */ @NonNull public Builder setTemplateData( - @Nullable SmartspaceDefaultUiTemplateData templateData) { + @Nullable BaseTemplateData templateData) { mTemplateData = templateData; return this; } diff --git a/core/java/android/app/smartspace/SmartspaceUtils.java b/core/java/android/app/smartspace/SmartspaceUtils.java index 4545f43a8260..cad44537a007 100644 --- a/core/java/android/app/smartspace/SmartspaceUtils.java +++ b/core/java/android/app/smartspace/SmartspaceUtils.java @@ -17,7 +17,7 @@ package android.app.smartspace; import android.annotation.Nullable; -import android.app.smartspace.uitemplatedata.SmartspaceText; +import android.app.smartspace.uitemplatedata.Text; import android.text.TextUtils; /** @@ -30,13 +30,13 @@ public final class SmartspaceUtils { private SmartspaceUtils() { } - /** Returns true if the passed in {@link SmartspaceText} is null or its content is empty. */ - public static boolean isEmpty(@Nullable SmartspaceText text) { + /** Returns true if the passed in {@link Text} is null or its content is empty. */ + public static boolean isEmpty(@Nullable Text text) { return text == null || TextUtils.isEmpty(text.getText()); } - /** Returns true if the passed-in {@link SmartspaceText}s are equal. */ - public static boolean isEqual(@Nullable SmartspaceText text1, @Nullable SmartspaceText text2) { + /** Returns true if the passed-in {@link Text}s are equal. */ + public static boolean isEqual(@Nullable Text text1, @Nullable Text text2) { if (text1 == null && text2 == null) return true; if (text1 == null || text2 == null) return false; return text1.equals(text2); diff --git a/core/java/android/app/smartspace/uitemplatedata/SmartspaceDefaultUiTemplateData.java b/core/java/android/app/smartspace/uitemplatedata/BaseTemplateData.java index a7ac9c7ed4bf..a07af689e06b 100644 --- a/core/java/android/app/smartspace/uitemplatedata/SmartspaceDefaultUiTemplateData.java +++ b/core/java/android/app/smartspace/uitemplatedata/BaseTemplateData.java @@ -29,12 +29,19 @@ import java.util.Objects; /** * Holds all the relevant data needed to render a Smartspace card with the default Ui Template. + * <ul> + * <li> title_text (may contain a start drawable) </li> + * <li> subtitle_text (may contain a start drawable) . supplemental_subtitle_text (may + * contain a start drawable) </li> + * <li> next_alarm_text (contain a start drawable) + supplemental_alarm_text . + * do_not_disturb_view </li> + * </ul> * * @hide */ @SystemApi @SuppressLint("ParcelNotFinal") -public class SmartspaceDefaultUiTemplateData implements Parcelable { +public class BaseTemplateData implements Parcelable { /** * {@link UiTemplateType} indicating the template type of this template data. @@ -49,17 +56,17 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { * will be used, which has its own tap action applied to the title area. */ @Nullable - private final SmartspaceText mTitleText; + private final Text mTitleText; @Nullable - private final SmartspaceIcon mTitleIcon; + private final Icon mTitleIcon; /** Subtitle text and icon are shown at the second row. */ @Nullable - private final SmartspaceText mSubtitleText; + private final Text mSubtitleText; @Nullable - private final SmartspaceIcon mSubtitleIcon; + private final Icon mSubtitleIcon; /** * Primary tap action for the entire card, including the blank spaces, except: 1. When title is @@ -67,59 +74,59 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { * action if being set; 3. Secondary card uses its own tap action if being set. */ @Nullable - private final SmartspaceTapAction mPrimaryTapAction; + private final TapAction mPrimaryTapAction; /** * Supplemental subtitle text and icon are shown at the second row following the subtitle text. * Mainly used for weather info on non-weather card. */ @Nullable - private final SmartspaceText mSupplementalSubtitleText; + private final Text mSupplementalSubtitleText; @Nullable - private final SmartspaceIcon mSupplementalSubtitleIcon; + private final Icon mSupplementalSubtitleIcon; /** * Tap action for the supplemental subtitle's text and icon. Will use the primary tap action if * not being set. */ @Nullable - private final SmartspaceTapAction mSupplementalSubtitleTapAction; + private final TapAction mSupplementalSubtitleTapAction; /** * Supplemental alarm text is specifically used for holiday alarm, which is appended to "next * alarm". */ @Nullable - private final SmartspaceText mSupplementalAlarmText; + private final Text mSupplementalAlarmText; - SmartspaceDefaultUiTemplateData(@NonNull Parcel in) { + BaseTemplateData(@NonNull Parcel in) { mTemplateType = in.readInt(); - mTitleText = in.readTypedObject(SmartspaceText.CREATOR); - mTitleIcon = in.readTypedObject(SmartspaceIcon.CREATOR); - mSubtitleText = in.readTypedObject(SmartspaceText.CREATOR); - mSubtitleIcon = in.readTypedObject(SmartspaceIcon.CREATOR); - mPrimaryTapAction = in.readTypedObject(SmartspaceTapAction.CREATOR); - mSupplementalSubtitleText = in.readTypedObject(SmartspaceText.CREATOR); - mSupplementalSubtitleIcon = in.readTypedObject(SmartspaceIcon.CREATOR); - mSupplementalSubtitleTapAction = in.readTypedObject(SmartspaceTapAction.CREATOR); - mSupplementalAlarmText = in.readTypedObject(SmartspaceText.CREATOR); + mTitleText = in.readTypedObject(Text.CREATOR); + mTitleIcon = in.readTypedObject(Icon.CREATOR); + mSubtitleText = in.readTypedObject(Text.CREATOR); + mSubtitleIcon = in.readTypedObject(Icon.CREATOR); + mPrimaryTapAction = in.readTypedObject(TapAction.CREATOR); + mSupplementalSubtitleText = in.readTypedObject(Text.CREATOR); + mSupplementalSubtitleIcon = in.readTypedObject(Icon.CREATOR); + mSupplementalSubtitleTapAction = in.readTypedObject(TapAction.CREATOR); + mSupplementalAlarmText = in.readTypedObject(Text.CREATOR); } /** * Should ONLY used by subclasses. For the general instance creation, please use * SmartspaceDefaultUiTemplateData.Builder. */ - SmartspaceDefaultUiTemplateData(@UiTemplateType int templateType, - @Nullable SmartspaceText titleText, - @Nullable SmartspaceIcon titleIcon, - @Nullable SmartspaceText subtitleText, - @Nullable SmartspaceIcon subtitleIcon, - @Nullable SmartspaceTapAction primaryTapAction, - @Nullable SmartspaceText supplementalSubtitleText, - @Nullable SmartspaceIcon supplementalSubtitleIcon, - @Nullable SmartspaceTapAction supplementalSubtitleTapAction, - @Nullable SmartspaceText supplementalAlarmText) { + BaseTemplateData(@UiTemplateType int templateType, + @Nullable Text titleText, + @Nullable Icon titleIcon, + @Nullable Text subtitleText, + @Nullable Icon subtitleIcon, + @Nullable TapAction primaryTapAction, + @Nullable Text supplementalSubtitleText, + @Nullable Icon supplementalSubtitleIcon, + @Nullable TapAction supplementalSubtitleTapAction, + @Nullable Text supplementalAlarmText) { mTemplateType = templateType; mTitleText = titleText; mTitleIcon = titleIcon; @@ -132,53 +139,63 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { mSupplementalAlarmText = supplementalAlarmText; } + /** Returns the template type. By default is UNDEFINED. */ @UiTemplateType public int getTemplateType() { return mTemplateType; } + /** Returns the title's text. */ @Nullable - public SmartspaceText getTitleText() { + public Text getTitleText() { return mTitleText; } + /** Returns the title's icon. */ @Nullable - public SmartspaceIcon getTitleIcon() { + public Icon getTitleIcon() { return mTitleIcon; } + /** Returns the subtitle's text. */ @Nullable - public SmartspaceText getSubtitleText() { + public Text getSubtitleText() { return mSubtitleText; } + /** Returns the subtitle's icon. */ @Nullable - public SmartspaceIcon getSubtitleIcon() { + public Icon getSubtitleIcon() { return mSubtitleIcon; } + /** Returns the card's primary tap action. */ @Nullable - public SmartspaceTapAction getPrimaryTapAction() { + public TapAction getPrimaryTapAction() { return mPrimaryTapAction; } + /** Returns the supplemental subtitle's text. */ @Nullable - public SmartspaceText getSupplementalSubtitleText() { + public Text getSupplementalSubtitleText() { return mSupplementalSubtitleText; } + /** Returns the supplemental subtitle's icon. */ @Nullable - public SmartspaceIcon getSupplementalSubtitleIcon() { + public Icon getSupplementalSubtitleIcon() { return mSupplementalSubtitleIcon; } + /** Returns the supplemental subtitle's tap action. Can be null if not being set. */ @Nullable - public SmartspaceTapAction getSupplementalSubtitleTapAction() { + public TapAction getSupplementalSubtitleTapAction() { return mSupplementalSubtitleTapAction; } + /** Returns the supplemental alarm text. */ @Nullable - public SmartspaceText getSupplementalAlarmText() { + public Text getSupplementalAlarmText() { return mSupplementalAlarmText; } @@ -186,16 +203,16 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { * @see Parcelable.Creator */ @NonNull - public static final Creator<SmartspaceDefaultUiTemplateData> CREATOR = - new Creator<SmartspaceDefaultUiTemplateData>() { + public static final Creator<BaseTemplateData> CREATOR = + new Creator<BaseTemplateData>() { @Override - public SmartspaceDefaultUiTemplateData createFromParcel(Parcel in) { - return new SmartspaceDefaultUiTemplateData(in); + public BaseTemplateData createFromParcel(Parcel in) { + return new BaseTemplateData(in); } @Override - public SmartspaceDefaultUiTemplateData[] newArray(int size) { - return new SmartspaceDefaultUiTemplateData[size]; + public BaseTemplateData[] newArray(int size) { + return new BaseTemplateData[size]; } }; @@ -221,8 +238,8 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof SmartspaceDefaultUiTemplateData)) return false; - SmartspaceDefaultUiTemplateData that = (SmartspaceDefaultUiTemplateData) o; + if (!(o instanceof BaseTemplateData)) return false; + BaseTemplateData that = (BaseTemplateData) o; return mTemplateType == that.mTemplateType && SmartspaceUtils.isEqual(mTitleText, that.mTitleText) && Objects.equals(mTitleIcon, that.mTitleIcon) @@ -261,7 +278,7 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { } /** - * A builder for {@link SmartspaceDefaultUiTemplateData} object. + * A builder for {@link BaseTemplateData} object. * * @hide */ @@ -270,18 +287,18 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { public static class Builder { @UiTemplateType private final int mTemplateType; - private SmartspaceText mTitleText; - private SmartspaceIcon mTitleIcon; - private SmartspaceText mSubtitleText; - private SmartspaceIcon mSubtitleIcon; - private SmartspaceTapAction mPrimaryTapAction; - private SmartspaceText mSupplementalSubtitleText; - private SmartspaceIcon mSupplementalSubtitleIcon; - private SmartspaceTapAction mSupplementalSubtitleTapAction; - private SmartspaceText mSupplementalAlarmText; + private Text mTitleText; + private Icon mTitleIcon; + private Text mSubtitleText; + private Icon mSubtitleIcon; + private TapAction mPrimaryTapAction; + private Text mSupplementalSubtitleText; + private Icon mSupplementalSubtitleIcon; + private TapAction mSupplementalSubtitleTapAction; + private Text mSupplementalAlarmText; /** - * A builder for {@link SmartspaceDefaultUiTemplateData}. + * A builder for {@link BaseTemplateData}. * * @param templateType the {@link UiTemplateType} of this template data. */ @@ -299,63 +316,63 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { /** Should ONLY be used by the subclasses */ @Nullable @SuppressLint("GetterOnBuilder") - SmartspaceText getTitleText() { + Text getTitleText() { return mTitleText; } /** Should ONLY be used by the subclasses */ @Nullable @SuppressLint("GetterOnBuilder") - SmartspaceIcon getTitleIcon() { + Icon getTitleIcon() { return mTitleIcon; } /** Should ONLY be used by the subclasses */ @Nullable @SuppressLint("GetterOnBuilder") - SmartspaceText getSubtitleText() { + Text getSubtitleText() { return mSubtitleText; } /** Should ONLY be used by the subclasses */ @Nullable @SuppressLint("GetterOnBuilder") - SmartspaceIcon getSubtitleIcon() { + Icon getSubtitleIcon() { return mSubtitleIcon; } /** Should ONLY be used by the subclasses */ @Nullable @SuppressLint("GetterOnBuilder") - SmartspaceTapAction getPrimaryTapAction() { + TapAction getPrimaryTapAction() { return mPrimaryTapAction; } /** Should ONLY be used by the subclasses */ @Nullable @SuppressLint("GetterOnBuilder") - SmartspaceText getSupplementalSubtitleText() { + Text getSupplementalSubtitleText() { return mSupplementalSubtitleText; } /** Should ONLY be used by the subclasses */ @Nullable @SuppressLint("GetterOnBuilder") - SmartspaceIcon getSupplementalSubtitleIcon() { + Icon getSupplementalSubtitleIcon() { return mSupplementalSubtitleIcon; } /** Should ONLY be used by the subclasses */ @Nullable @SuppressLint("GetterOnBuilder") - SmartspaceTapAction getSupplementalSubtitleTapAction() { + TapAction getSupplementalSubtitleTapAction() { return mSupplementalSubtitleTapAction; } /** Should ONLY be used by the subclasses */ @Nullable @SuppressLint("GetterOnBuilder") - SmartspaceText getSupplementalAlarmText() { + Text getSupplementalAlarmText() { return mSupplementalAlarmText; } @@ -363,7 +380,7 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { * Sets the card title. */ @NonNull - public Builder setTitleText(@NonNull SmartspaceText titleText) { + public Builder setTitleText(@NonNull Text titleText) { mTitleText = titleText; return this; } @@ -372,7 +389,7 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { * Sets the card title icon. */ @NonNull - public Builder setTitleIcon(@NonNull SmartspaceIcon titleIcon) { + public Builder setTitleIcon(@NonNull Icon titleIcon) { mTitleIcon = titleIcon; return this; } @@ -381,7 +398,7 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { * Sets the card subtitle. */ @NonNull - public Builder setSubtitleText(@NonNull SmartspaceText subtitleText) { + public Builder setSubtitleText(@NonNull Text subtitleText) { mSubtitleText = subtitleText; return this; } @@ -390,7 +407,7 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { * Sets the card subtitle icon. */ @NonNull - public Builder setSubtitleIcon(@NonNull SmartspaceIcon subtitleIcon) { + public Builder setSubtitleIcon(@NonNull Icon subtitleIcon) { mSubtitleIcon = subtitleIcon; return this; } @@ -399,7 +416,7 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { * Sets the card primary tap action. */ @NonNull - public Builder setPrimaryTapAction(@NonNull SmartspaceTapAction primaryTapAction) { + public Builder setPrimaryTapAction(@NonNull TapAction primaryTapAction) { mPrimaryTapAction = primaryTapAction; return this; } @@ -409,7 +426,7 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { */ @NonNull public Builder setSupplementalSubtitleText( - @NonNull SmartspaceText supplementalSubtitleText) { + @NonNull Text supplementalSubtitleText) { mSupplementalSubtitleText = supplementalSubtitleText; return this; } @@ -419,7 +436,7 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { */ @NonNull public Builder setSupplementalSubtitleIcon( - @NonNull SmartspaceIcon supplementalSubtitleIcon) { + @NonNull Icon supplementalSubtitleIcon) { mSupplementalSubtitleIcon = supplementalSubtitleIcon; return this; } @@ -431,7 +448,7 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { */ @NonNull public Builder setSupplementalSubtitleTapAction( - @NonNull SmartspaceTapAction supplementalSubtitleTapAction) { + @NonNull TapAction supplementalSubtitleTapAction) { mSupplementalSubtitleTapAction = supplementalSubtitleTapAction; return this; } @@ -440,7 +457,7 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { * Sets the supplemental alarm text. */ @NonNull - public Builder setSupplementalAlarmText(@NonNull SmartspaceText supplementalAlarmText) { + public Builder setSupplementalAlarmText(@NonNull Text supplementalAlarmText) { mSupplementalAlarmText = supplementalAlarmText; return this; } @@ -449,8 +466,8 @@ public class SmartspaceDefaultUiTemplateData implements Parcelable { * Builds a new SmartspaceDefaultUiTemplateData instance. */ @NonNull - public SmartspaceDefaultUiTemplateData build() { - return new SmartspaceDefaultUiTemplateData(mTemplateType, mTitleText, mTitleIcon, + public BaseTemplateData build() { + return new BaseTemplateData(mTemplateType, mTitleText, mTitleIcon, mSubtitleText, mSubtitleIcon, mPrimaryTapAction, mSupplementalSubtitleText, mSupplementalSubtitleIcon, mSupplementalSubtitleTapAction, mSupplementalAlarmText); diff --git a/core/java/android/app/smartspace/uitemplatedata/SmartspaceCarouselUiTemplateData.java b/core/java/android/app/smartspace/uitemplatedata/CarouselTemplateData.java index e996056291bc..feb1c34337fb 100644 --- a/core/java/android/app/smartspace/uitemplatedata/SmartspaceCarouselUiTemplateData.java +++ b/core/java/android/app/smartspace/uitemplatedata/CarouselTemplateData.java @@ -30,10 +30,16 @@ import java.util.Objects; /** * Holds all the relevant data needed to render a Smartspace card with the carousel Ui Template. * + * This template will add a sub-card displaying a list of carousel items within the default-template + * card: + * <ul> + * <li> carouselItem1, carouselItem2, carouselItem3... </li> + * </ul> + * * @hide */ @SystemApi -public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiTemplateData { +public final class CarouselTemplateData extends BaseTemplateData { /** Lists of {@link CarouselItem}. */ @NonNull @@ -41,26 +47,26 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT /** Tap action for the entire carousel secondary card, including the blank space */ @Nullable - private final SmartspaceTapAction mCarouselAction; + private final TapAction mCarouselAction; - SmartspaceCarouselUiTemplateData(@NonNull Parcel in) { + CarouselTemplateData(@NonNull Parcel in) { super(in); mCarouselItems = in.createTypedArrayList(CarouselItem.CREATOR); - mCarouselAction = in.readTypedObject(SmartspaceTapAction.CREATOR); + mCarouselAction = in.readTypedObject(TapAction.CREATOR); } - private SmartspaceCarouselUiTemplateData(@SmartspaceTarget.UiTemplateType int templateType, - @Nullable SmartspaceText titleText, - @Nullable SmartspaceIcon titleIcon, - @Nullable SmartspaceText subtitleText, - @Nullable SmartspaceIcon subTitleIcon, - @Nullable SmartspaceTapAction primaryTapAction, - @Nullable SmartspaceText supplementalSubtitleText, - @Nullable SmartspaceIcon supplementalSubtitleIcon, - @Nullable SmartspaceTapAction supplementalSubtitleTapAction, - @Nullable SmartspaceText supplementalAlarmText, + private CarouselTemplateData(@SmartspaceTarget.UiTemplateType int templateType, + @Nullable Text titleText, + @Nullable Icon titleIcon, + @Nullable Text subtitleText, + @Nullable Icon subTitleIcon, + @Nullable TapAction primaryTapAction, + @Nullable Text supplementalSubtitleText, + @Nullable Icon supplementalSubtitleIcon, + @Nullable TapAction supplementalSubtitleTapAction, + @Nullable Text supplementalAlarmText, @NonNull List<CarouselItem> carouselItems, - @Nullable SmartspaceTapAction carouselAction) { + @Nullable TapAction carouselAction) { super(templateType, titleText, titleIcon, subtitleText, subTitleIcon, primaryTapAction, supplementalSubtitleText, supplementalSubtitleIcon, supplementalSubtitleTapAction, supplementalAlarmText); @@ -68,13 +74,15 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT mCarouselAction = carouselAction; } + /** Returns the list of {@link CarouselItem}. Can be empty if not being set. */ @NonNull public List<CarouselItem> getCarouselItems() { return mCarouselItems; } + /** Returns the card's tap action. */ @Nullable - public SmartspaceTapAction getCarouselAction() { + public TapAction getCarouselAction() { return mCarouselAction; } @@ -82,16 +90,16 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT * @see Parcelable.Creator */ @NonNull - public static final Creator<SmartspaceCarouselUiTemplateData> CREATOR = - new Creator<SmartspaceCarouselUiTemplateData>() { + public static final Creator<CarouselTemplateData> CREATOR = + new Creator<CarouselTemplateData>() { @Override - public SmartspaceCarouselUiTemplateData createFromParcel(Parcel in) { - return new SmartspaceCarouselUiTemplateData(in); + public CarouselTemplateData createFromParcel(Parcel in) { + return new CarouselTemplateData(in); } @Override - public SmartspaceCarouselUiTemplateData[] newArray(int size) { - return new SmartspaceCarouselUiTemplateData[size]; + public CarouselTemplateData[] newArray(int size) { + return new CarouselTemplateData[size]; } }; @@ -111,9 +119,9 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof SmartspaceCarouselUiTemplateData)) return false; + if (!(o instanceof CarouselTemplateData)) return false; if (!super.equals(o)) return false; - SmartspaceCarouselUiTemplateData that = (SmartspaceCarouselUiTemplateData) o; + CarouselTemplateData that = (CarouselTemplateData) o; return mCarouselItems.equals(that.mCarouselItems) && Objects.equals(mCarouselAction, that.mCarouselAction); } @@ -132,18 +140,18 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT } /** - * A builder for {@link SmartspaceCarouselUiTemplateData} object. + * A builder for {@link CarouselTemplateData} object. * * @hide */ @SystemApi - public static final class Builder extends SmartspaceDefaultUiTemplateData.Builder { + public static final class Builder extends BaseTemplateData.Builder { private final List<CarouselItem> mCarouselItems; - private SmartspaceTapAction mCarouselAction; + private TapAction mCarouselAction; /** - * A builder for {@link SmartspaceCarouselUiTemplateData}. + * A builder for {@link CarouselTemplateData}. */ public Builder(@NonNull List<CarouselItem> carouselItems) { super(SmartspaceTarget.UI_TEMPLATE_CAROUSEL); @@ -154,23 +162,23 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT * Sets the card tap action. */ @NonNull - public Builder setCarouselAction(@NonNull SmartspaceTapAction carouselAction) { + public Builder setCarouselAction(@NonNull TapAction carouselAction) { mCarouselAction = carouselAction; return this; } /** - * Builds a new SmartspaceCarouselUiTemplateData instance. + * Builds a new {@link CarouselTemplateData} instance. * * @throws IllegalStateException if the carousel data is invalid. */ @NonNull - public SmartspaceCarouselUiTemplateData build() { + public CarouselTemplateData build() { if (mCarouselItems.isEmpty()) { throw new IllegalStateException("Carousel data is empty"); } - return new SmartspaceCarouselUiTemplateData(getTemplateType(), getTitleText(), + return new CarouselTemplateData(getTemplateType(), getTitleText(), getTitleIcon(), getSubtitleText(), getSubtitleIcon(), getPrimaryTapAction(), getSupplementalSubtitleText(), getSupplementalSubtitleIcon(), getSupplementalSubtitleTapAction(), getSupplementalAlarmText(), mCarouselItems, @@ -178,37 +186,45 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT } } - /** Holds all the relevant data needed to render a carousel item. */ + /** + * Holds all the relevant data needed to render a carousel item. + * + * <ul> + * <li> upper text </li> + * <li> image </li> + * <li> lower text </li> + * </ul> + */ public static final class CarouselItem implements Parcelable { /** Text which is above the image item. */ @Nullable - private final SmartspaceText mUpperText; + private final Text mUpperText; /** Image item. Can be empty. */ @Nullable - private final SmartspaceIcon mImage; + private final Icon mImage; /** Text which is under the image item. */ @Nullable - private final SmartspaceText mLowerText; + private final Text mLowerText; /** * Tap action for this {@link CarouselItem} instance. {@code mCarouselAction} is used if not * being set. */ @Nullable - private final SmartspaceTapAction mTapAction; + private final TapAction mTapAction; CarouselItem(@NonNull Parcel in) { - mUpperText = in.readTypedObject(SmartspaceText.CREATOR); - mImage = in.readTypedObject(SmartspaceIcon.CREATOR); - mLowerText = in.readTypedObject(SmartspaceText.CREATOR); - mTapAction = in.readTypedObject(SmartspaceTapAction.CREATOR); + mUpperText = in.readTypedObject(Text.CREATOR); + mImage = in.readTypedObject(Icon.CREATOR); + mLowerText = in.readTypedObject(Text.CREATOR); + mTapAction = in.readTypedObject(TapAction.CREATOR); } - private CarouselItem(@Nullable SmartspaceText upperText, @Nullable SmartspaceIcon image, - @Nullable SmartspaceText lowerText, @Nullable SmartspaceTapAction tapAction) { + private CarouselItem(@Nullable Text upperText, @Nullable Icon image, + @Nullable Text lowerText, @Nullable TapAction tapAction) { mUpperText = upperText; mImage = image; mLowerText = lowerText; @@ -216,22 +232,22 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT } @Nullable - public SmartspaceText getUpperText() { + public Text getUpperText() { return mUpperText; } @Nullable - public SmartspaceIcon getImage() { + public Icon getImage() { return mImage; } @Nullable - public SmartspaceText getLowerText() { + public Text getLowerText() { return mLowerText; } @Nullable - public SmartspaceTapAction getTapAction() { + public TapAction getTapAction() { return mTapAction; } @@ -299,16 +315,16 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT @SystemApi public static final class Builder { - private SmartspaceText mUpperText; - private SmartspaceIcon mImage; - private SmartspaceText mLowerText; - private SmartspaceTapAction mTapAction; + private Text mUpperText; + private Icon mImage; + private Text mLowerText; + private TapAction mTapAction; /** * Sets the upper text. */ @NonNull - public Builder setUpperText(@Nullable SmartspaceText upperText) { + public Builder setUpperText(@Nullable Text upperText) { mUpperText = upperText; return this; } @@ -317,7 +333,7 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT * Sets the image. */ @NonNull - public Builder setImage(@Nullable SmartspaceIcon image) { + public Builder setImage(@Nullable Icon image) { mImage = image; return this; } @@ -327,7 +343,7 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT * Sets the lower text. */ @NonNull - public Builder setLowerText(@Nullable SmartspaceText lowerText) { + public Builder setLowerText(@Nullable Text lowerText) { mLowerText = lowerText; return this; } @@ -336,7 +352,7 @@ public final class SmartspaceCarouselUiTemplateData extends SmartspaceDefaultUiT * Sets the tap action. */ @NonNull - public Builder setTapAction(@Nullable SmartspaceTapAction tapAction) { + public Builder setTapAction(@Nullable TapAction tapAction) { mTapAction = tapAction; return this; } diff --git a/core/java/android/app/smartspace/uitemplatedata/SmartspaceCombinedCardsUiTemplateData.java b/core/java/android/app/smartspace/uitemplatedata/CombinedCardsTemplateData.java index 9d4c8e23242c..13091e2c530d 100644 --- a/core/java/android/app/smartspace/uitemplatedata/SmartspaceCombinedCardsUiTemplateData.java +++ b/core/java/android/app/smartspace/uitemplatedata/CombinedCardsTemplateData.java @@ -29,42 +29,47 @@ import java.util.Objects; * Holds all the relevant data needed to render a Smartspace card with the combined-card Ui * Template. * - * We only support 1 sub-list card combined with 1 carousel card. And we may expand our supported - * combinations in the future. + * We only support adding a 1 sub-list card combined with 1 sub-card card (may expand our supported + * combinations in the future) within the default-template card: + * + * <ul> + * <li> sub-list card, sub-card card </li> + * </ul> * * @hide */ @SystemApi -public final class SmartspaceCombinedCardsUiTemplateData extends SmartspaceDefaultUiTemplateData { +public final class CombinedCardsTemplateData extends BaseTemplateData { /** A list of secondary cards. */ @NonNull - private final List<SmartspaceDefaultUiTemplateData> mCombinedCardDataList; + private final List<BaseTemplateData> mCombinedCardDataList; - SmartspaceCombinedCardsUiTemplateData(@NonNull Parcel in) { + CombinedCardsTemplateData(@NonNull Parcel in) { super(in); - mCombinedCardDataList = in.createTypedArrayList(SmartspaceDefaultUiTemplateData.CREATOR); + mCombinedCardDataList = in.createTypedArrayList(BaseTemplateData.CREATOR); } - private SmartspaceCombinedCardsUiTemplateData(@SmartspaceTarget.UiTemplateType int templateType, - @Nullable SmartspaceText titleText, - @Nullable SmartspaceIcon titleIcon, - @Nullable SmartspaceText subtitleText, - @Nullable SmartspaceIcon subTitleIcon, - @Nullable SmartspaceTapAction primaryTapAction, - @Nullable SmartspaceText supplementalSubtitleText, - @Nullable SmartspaceIcon supplementalSubtitleIcon, - @Nullable SmartspaceTapAction supplementalSubtitleTapAction, - @Nullable SmartspaceText supplementalAlarmText, - @NonNull List<SmartspaceDefaultUiTemplateData> combinedCardDataList) { + private CombinedCardsTemplateData(@SmartspaceTarget.UiTemplateType int templateType, + @Nullable Text titleText, + @Nullable Icon titleIcon, + @Nullable Text subtitleText, + @Nullable Icon subTitleIcon, + @Nullable TapAction primaryTapAction, + @Nullable Text supplementalSubtitleText, + @Nullable Icon supplementalSubtitleIcon, + @Nullable TapAction supplementalSubtitleTapAction, + @Nullable Text supplementalAlarmText, + @NonNull List<BaseTemplateData> combinedCardDataList) { super(templateType, titleText, titleIcon, subtitleText, subTitleIcon, primaryTapAction, supplementalSubtitleText, supplementalSubtitleIcon, supplementalSubtitleTapAction, supplementalAlarmText); mCombinedCardDataList = combinedCardDataList; } + /** Returns the list of secondary cards. Can be null if not being set. */ @NonNull - public List<SmartspaceDefaultUiTemplateData> getCombinedCardDataList() { + public List<BaseTemplateData> getCombinedCardDataList() { return mCombinedCardDataList; } @@ -72,16 +77,16 @@ public final class SmartspaceCombinedCardsUiTemplateData extends SmartspaceDefau * @see Parcelable.Creator */ @NonNull - public static final Creator<SmartspaceCombinedCardsUiTemplateData> CREATOR = - new Creator<SmartspaceCombinedCardsUiTemplateData>() { + public static final Creator<CombinedCardsTemplateData> CREATOR = + new Creator<CombinedCardsTemplateData>() { @Override - public SmartspaceCombinedCardsUiTemplateData createFromParcel(Parcel in) { - return new SmartspaceCombinedCardsUiTemplateData(in); + public CombinedCardsTemplateData createFromParcel(Parcel in) { + return new CombinedCardsTemplateData(in); } @Override - public SmartspaceCombinedCardsUiTemplateData[] newArray(int size) { - return new SmartspaceCombinedCardsUiTemplateData[size]; + public CombinedCardsTemplateData[] newArray(int size) { + return new CombinedCardsTemplateData[size]; } }; @@ -99,9 +104,9 @@ public final class SmartspaceCombinedCardsUiTemplateData extends SmartspaceDefau @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof SmartspaceCombinedCardsUiTemplateData)) return false; + if (!(o instanceof CombinedCardsTemplateData)) return false; if (!super.equals(o)) return false; - SmartspaceCombinedCardsUiTemplateData that = (SmartspaceCombinedCardsUiTemplateData) o; + CombinedCardsTemplateData that = (CombinedCardsTemplateData) o; return mCombinedCardDataList.equals(that.mCombinedCardDataList); } @@ -118,19 +123,19 @@ public final class SmartspaceCombinedCardsUiTemplateData extends SmartspaceDefau } /** - * A builder for {@link SmartspaceCombinedCardsUiTemplateData} object. + * A builder for {@link CombinedCardsTemplateData} object. * * @hide */ @SystemApi - public static final class Builder extends SmartspaceDefaultUiTemplateData.Builder { + public static final class Builder extends BaseTemplateData.Builder { - private final List<SmartspaceDefaultUiTemplateData> mCombinedCardDataList; + private final List<BaseTemplateData> mCombinedCardDataList; /** - * A builder for {@link SmartspaceCombinedCardsUiTemplateData}. + * A builder for {@link CombinedCardsTemplateData}. */ - public Builder(@NonNull List<SmartspaceDefaultUiTemplateData> combinedCardDataList) { + public Builder(@NonNull List<BaseTemplateData> combinedCardDataList) { super(SmartspaceTarget.UI_TEMPLATE_COMBINED_CARDS); mCombinedCardDataList = Objects.requireNonNull(combinedCardDataList); } @@ -141,11 +146,11 @@ public final class SmartspaceCombinedCardsUiTemplateData extends SmartspaceDefau * @throws IllegalStateException if any required non-null field is null */ @NonNull - public SmartspaceCombinedCardsUiTemplateData build() { + public CombinedCardsTemplateData build() { if (mCombinedCardDataList == null) { throw new IllegalStateException("Please assign a value to all @NonNull args."); } - return new SmartspaceCombinedCardsUiTemplateData(getTemplateType(), getTitleText(), + return new CombinedCardsTemplateData(getTemplateType(), getTitleText(), getTitleIcon(), getSubtitleText(), getSubtitleIcon(), getPrimaryTapAction(), getSupplementalSubtitleText(), getSupplementalSubtitleIcon(), getSupplementalSubtitleTapAction(), getSupplementalAlarmText(), diff --git a/core/java/android/app/smartspace/uitemplatedata/SmartspaceHeadToHeadUiTemplateData.java b/core/java/android/app/smartspace/uitemplatedata/HeadToHeadTemplateData.java index bcd12eb0f527..eb56e93e6c1b 100644 --- a/core/java/android/app/smartspace/uitemplatedata/SmartspaceHeadToHeadUiTemplateData.java +++ b/core/java/android/app/smartspace/uitemplatedata/HeadToHeadTemplateData.java @@ -28,52 +28,59 @@ import java.util.Objects; /** * Holds all the relevant data needed to render a Smartspace card with the head-to-head Ui Template. * + * This template will add a head-to-head card within the default-template card: + * <ul> + * <li> head-to-head title </li> + * <li> first-competitor icon second-competitor icon </li> + * <li> first-competitor text second-competitor text </li> + * </ul> + * * @hide */ @SystemApi -public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultUiTemplateData { +public final class HeadToHeadTemplateData extends BaseTemplateData { @Nullable - private final SmartspaceText mHeadToHeadTitle; + private final Text mHeadToHeadTitle; @Nullable - private final SmartspaceIcon mHeadToHeadFirstCompetitorIcon; + private final Icon mHeadToHeadFirstCompetitorIcon; @Nullable - private final SmartspaceIcon mHeadToHeadSecondCompetitorIcon; + private final Icon mHeadToHeadSecondCompetitorIcon; @Nullable - private final SmartspaceText mHeadToHeadFirstCompetitorText; + private final Text mHeadToHeadFirstCompetitorText; @Nullable - private final SmartspaceText mHeadToHeadSecondCompetitorText; + private final Text mHeadToHeadSecondCompetitorText; /** Tap action for the head-to-head secondary card. */ @Nullable - private final SmartspaceTapAction mHeadToHeadAction; + private final TapAction mHeadToHeadAction; - SmartspaceHeadToHeadUiTemplateData(@NonNull Parcel in) { + HeadToHeadTemplateData(@NonNull Parcel in) { super(in); - mHeadToHeadTitle = in.readTypedObject(SmartspaceText.CREATOR); - mHeadToHeadFirstCompetitorIcon = in.readTypedObject(SmartspaceIcon.CREATOR); - mHeadToHeadSecondCompetitorIcon = in.readTypedObject(SmartspaceIcon.CREATOR); - mHeadToHeadFirstCompetitorText = in.readTypedObject(SmartspaceText.CREATOR); - mHeadToHeadSecondCompetitorText = in.readTypedObject(SmartspaceText.CREATOR); - mHeadToHeadAction = in.readTypedObject(SmartspaceTapAction.CREATOR); + mHeadToHeadTitle = in.readTypedObject(Text.CREATOR); + mHeadToHeadFirstCompetitorIcon = in.readTypedObject(Icon.CREATOR); + mHeadToHeadSecondCompetitorIcon = in.readTypedObject(Icon.CREATOR); + mHeadToHeadFirstCompetitorText = in.readTypedObject(Text.CREATOR); + mHeadToHeadSecondCompetitorText = in.readTypedObject(Text.CREATOR); + mHeadToHeadAction = in.readTypedObject(TapAction.CREATOR); } - private SmartspaceHeadToHeadUiTemplateData(@SmartspaceTarget.UiTemplateType int templateType, - @Nullable SmartspaceText titleText, - @Nullable SmartspaceIcon titleIcon, - @Nullable SmartspaceText subtitleText, - @Nullable SmartspaceIcon subTitleIcon, - @Nullable SmartspaceTapAction primaryTapAction, - @Nullable SmartspaceText supplementalSubtitleText, - @Nullable SmartspaceIcon supplementalSubtitleIcon, - @Nullable SmartspaceTapAction supplementalSubtitleTapAction, - @Nullable SmartspaceText supplementalAlarmText, - @Nullable SmartspaceText headToHeadTitle, - @Nullable SmartspaceIcon headToHeadFirstCompetitorIcon, - @Nullable SmartspaceIcon headToHeadSecondCompetitorIcon, - @Nullable SmartspaceText headToHeadFirstCompetitorText, - @Nullable SmartspaceText headToHeadSecondCompetitorText, - @Nullable SmartspaceTapAction headToHeadAction) { + private HeadToHeadTemplateData(@SmartspaceTarget.UiTemplateType int templateType, + @Nullable Text titleText, + @Nullable Icon titleIcon, + @Nullable Text subtitleText, + @Nullable Icon subTitleIcon, + @Nullable TapAction primaryTapAction, + @Nullable Text supplementalSubtitleText, + @Nullable Icon supplementalSubtitleIcon, + @Nullable TapAction supplementalSubtitleTapAction, + @Nullable Text supplementalAlarmText, + @Nullable Text headToHeadTitle, + @Nullable Icon headToHeadFirstCompetitorIcon, + @Nullable Icon headToHeadSecondCompetitorIcon, + @Nullable Text headToHeadFirstCompetitorText, + @Nullable Text headToHeadSecondCompetitorText, + @Nullable TapAction headToHeadAction) { super(templateType, titleText, titleIcon, subtitleText, subTitleIcon, primaryTapAction, supplementalSubtitleText, supplementalSubtitleIcon, supplementalSubtitleTapAction, supplementalAlarmText); @@ -85,33 +92,39 @@ public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultU mHeadToHeadAction = headToHeadAction; } + /** Returns the head-to-head card's title. */ @Nullable - public SmartspaceText getHeadToHeadTitle() { + public Text getHeadToHeadTitle() { return mHeadToHeadTitle; } + /** Returns the first competitor's icon. */ @Nullable - public SmartspaceIcon getHeadToHeadFirstCompetitorIcon() { + public Icon getHeadToHeadFirstCompetitorIcon() { return mHeadToHeadFirstCompetitorIcon; } + /** Returns the second competitor's icon. */ @Nullable - public SmartspaceIcon getHeadToHeadSecondCompetitorIcon() { + public Icon getHeadToHeadSecondCompetitorIcon() { return mHeadToHeadSecondCompetitorIcon; } + /** Returns the first competitor's text. */ @Nullable - public SmartspaceText getHeadToHeadFirstCompetitorText() { + public Text getHeadToHeadFirstCompetitorText() { return mHeadToHeadFirstCompetitorText; } + /** Returns the second competitor's text. */ @Nullable - public SmartspaceText getHeadToHeadSecondCompetitorText() { + public Text getHeadToHeadSecondCompetitorText() { return mHeadToHeadSecondCompetitorText; } + /** Returns the head-to-head card's tap action. */ @Nullable - public SmartspaceTapAction getHeadToHeadAction() { + public TapAction getHeadToHeadAction() { return mHeadToHeadAction; } @@ -119,16 +132,16 @@ public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultU * @see Parcelable.Creator */ @NonNull - public static final Creator<SmartspaceHeadToHeadUiTemplateData> CREATOR = - new Creator<SmartspaceHeadToHeadUiTemplateData>() { + public static final Creator<HeadToHeadTemplateData> CREATOR = + new Creator<HeadToHeadTemplateData>() { @Override - public SmartspaceHeadToHeadUiTemplateData createFromParcel(Parcel in) { - return new SmartspaceHeadToHeadUiTemplateData(in); + public HeadToHeadTemplateData createFromParcel(Parcel in) { + return new HeadToHeadTemplateData(in); } @Override - public SmartspaceHeadToHeadUiTemplateData[] newArray(int size) { - return new SmartspaceHeadToHeadUiTemplateData[size]; + public HeadToHeadTemplateData[] newArray(int size) { + return new HeadToHeadTemplateData[size]; } }; @@ -151,9 +164,9 @@ public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultU @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof SmartspaceHeadToHeadUiTemplateData)) return false; + if (!(o instanceof HeadToHeadTemplateData)) return false; if (!super.equals(o)) return false; - SmartspaceHeadToHeadUiTemplateData that = (SmartspaceHeadToHeadUiTemplateData) o; + HeadToHeadTemplateData that = (HeadToHeadTemplateData) o; return SmartspaceUtils.isEqual(mHeadToHeadTitle, that.mHeadToHeadTitle) && Objects.equals( mHeadToHeadFirstCompetitorIcon, that.mHeadToHeadFirstCompetitorIcon) && Objects.equals( @@ -187,22 +200,22 @@ public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultU } /** - * A builder for {@link SmartspaceHeadToHeadUiTemplateData} object. + * A builder for {@link HeadToHeadTemplateData} object. * * @hide */ @SystemApi - public static final class Builder extends SmartspaceDefaultUiTemplateData.Builder { + public static final class Builder extends BaseTemplateData.Builder { - private SmartspaceText mHeadToHeadTitle; - private SmartspaceIcon mHeadToHeadFirstCompetitorIcon; - private SmartspaceIcon mHeadToHeadSecondCompetitorIcon; - private SmartspaceText mHeadToHeadFirstCompetitorText; - private SmartspaceText mHeadToHeadSecondCompetitorText; - private SmartspaceTapAction mHeadToHeadAction; + private Text mHeadToHeadTitle; + private Icon mHeadToHeadFirstCompetitorIcon; + private Icon mHeadToHeadSecondCompetitorIcon; + private Text mHeadToHeadFirstCompetitorText; + private Text mHeadToHeadSecondCompetitorText; + private TapAction mHeadToHeadAction; /** - * A builder for {@link SmartspaceHeadToHeadUiTemplateData}. + * A builder for {@link HeadToHeadTemplateData}. */ public Builder() { super(SmartspaceTarget.UI_TEMPLATE_HEAD_TO_HEAD); @@ -212,7 +225,7 @@ public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultU * Sets the head-to-head card's title */ @NonNull - public Builder setHeadToHeadTitle(@Nullable SmartspaceText headToHeadTitle) { + public Builder setHeadToHeadTitle(@Nullable Text headToHeadTitle) { mHeadToHeadTitle = headToHeadTitle; return this; } @@ -222,7 +235,7 @@ public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultU */ @NonNull public Builder setHeadToHeadFirstCompetitorIcon( - @Nullable SmartspaceIcon headToHeadFirstCompetitorIcon) { + @Nullable Icon headToHeadFirstCompetitorIcon) { mHeadToHeadFirstCompetitorIcon = headToHeadFirstCompetitorIcon; return this; } @@ -232,7 +245,7 @@ public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultU */ @NonNull public Builder setHeadToHeadSecondCompetitorIcon( - @Nullable SmartspaceIcon headToHeadSecondCompetitorIcon) { + @Nullable Icon headToHeadSecondCompetitorIcon) { mHeadToHeadSecondCompetitorIcon = headToHeadSecondCompetitorIcon; return this; } @@ -242,7 +255,7 @@ public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultU */ @NonNull public Builder setHeadToHeadFirstCompetitorText( - @Nullable SmartspaceText headToHeadFirstCompetitorText) { + @Nullable Text headToHeadFirstCompetitorText) { mHeadToHeadFirstCompetitorText = headToHeadFirstCompetitorText; return this; } @@ -252,7 +265,7 @@ public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultU */ @NonNull public Builder setHeadToHeadSecondCompetitorText( - @Nullable SmartspaceText headToHeadSecondCompetitorText) { + @Nullable Text headToHeadSecondCompetitorText) { mHeadToHeadSecondCompetitorText = headToHeadSecondCompetitorText; return this; } @@ -261,7 +274,7 @@ public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultU * Sets the head-to-head card's tap action */ @NonNull - public Builder setHeadToHeadAction(@Nullable SmartspaceTapAction headToHeadAction) { + public Builder setHeadToHeadAction(@Nullable TapAction headToHeadAction) { mHeadToHeadAction = headToHeadAction; return this; } @@ -270,8 +283,8 @@ public final class SmartspaceHeadToHeadUiTemplateData extends SmartspaceDefaultU * Builds a new SmartspaceHeadToHeadUiTemplateData instance. */ @NonNull - public SmartspaceHeadToHeadUiTemplateData build() { - return new SmartspaceHeadToHeadUiTemplateData(getTemplateType(), getTitleText(), + public HeadToHeadTemplateData build() { + return new HeadToHeadTemplateData(getTemplateType(), getTitleText(), getTitleIcon(), getSubtitleText(), getSubtitleIcon(), getPrimaryTapAction(), getSupplementalSubtitleText(), getSupplementalSubtitleIcon(), getSupplementalSubtitleTapAction(), getSupplementalAlarmText(), diff --git a/core/java/android/app/smartspace/uitemplatedata/SmartspaceIcon.java b/core/java/android/app/smartspace/uitemplatedata/Icon.java index 1efbaeb8bd3c..2b1f420f0d1d 100644 --- a/core/java/android/app/smartspace/uitemplatedata/SmartspaceIcon.java +++ b/core/java/android/app/smartspace/uitemplatedata/Icon.java @@ -20,7 +20,6 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.app.smartspace.SmartspaceUtils; -import android.graphics.drawable.Icon; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; @@ -34,34 +33,37 @@ import java.util.Objects; * @hide */ @SystemApi -public final class SmartspaceIcon implements Parcelable { +public final class Icon implements Parcelable { @NonNull - private final Icon mIcon; + private final android.graphics.drawable.Icon mIcon; @Nullable private final CharSequence mContentDescription; private final boolean mShouldTint; - SmartspaceIcon(@NonNull Parcel in) { - mIcon = in.readTypedObject(Icon.CREATOR); + Icon(@NonNull Parcel in) { + mIcon = in.readTypedObject(android.graphics.drawable.Icon.CREATOR); mContentDescription = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); mShouldTint = in.readBoolean(); } - private SmartspaceIcon(@NonNull Icon icon, @Nullable CharSequence contentDescription, + private Icon(@NonNull android.graphics.drawable.Icon icon, + @Nullable CharSequence contentDescription, boolean shouldTint) { mIcon = icon; mContentDescription = contentDescription; mShouldTint = shouldTint; } + /** Returns the icon image. */ @NonNull - public Icon getIcon() { + public android.graphics.drawable.Icon getIcon() { return mIcon; } + /** Returns the content description of the icon image. */ @Nullable public CharSequence getContentDescription() { return mContentDescription; @@ -73,23 +75,23 @@ public final class SmartspaceIcon implements Parcelable { } @NonNull - public static final Creator<SmartspaceIcon> CREATOR = new Creator<SmartspaceIcon>() { + public static final Creator<Icon> CREATOR = new Creator<Icon>() { @Override - public SmartspaceIcon createFromParcel(Parcel in) { - return new SmartspaceIcon(in); + public Icon createFromParcel(Parcel in) { + return new Icon(in); } @Override - public SmartspaceIcon[] newArray(int size) { - return new SmartspaceIcon[size]; + public Icon[] newArray(int size) { + return new Icon[size]; } }; @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof SmartspaceIcon)) return false; - SmartspaceIcon that = (SmartspaceIcon) o; + if (!(o instanceof Icon)) return false; + Icon that = (Icon) o; return mIcon.toString().equals(that.mIcon.toString()) && SmartspaceUtils.isEqual( mContentDescription, that.mContentDescription) && mShouldTint == that.mShouldTint; @@ -122,23 +124,23 @@ public final class SmartspaceIcon implements Parcelable { } /** - * A builder for {@link SmartspaceIcon} object. + * A builder for {@link Icon} object. * * @hide */ @SystemApi public static final class Builder { - private Icon mIcon; + private android.graphics.drawable.Icon mIcon; private CharSequence mContentDescription; private boolean mShouldTint; /** - * A builder for {@link SmartspaceIcon}, which sets shouldTint to true by default. + * A builder for {@link Icon}, which sets shouldTint to true by default. * - * @param icon the icon image of this {@link SmartspaceIcon} instance. + * @param icon the icon image of this {@link Icon} instance. */ - public Builder(@NonNull Icon icon) { + public Builder(@NonNull android.graphics.drawable.Icon icon) { mIcon = Objects.requireNonNull(icon); mShouldTint = true; } @@ -165,8 +167,8 @@ public final class SmartspaceIcon implements Parcelable { * Builds a new SmartspaceIcon instance. */ @NonNull - public SmartspaceIcon build() { - return new SmartspaceIcon(mIcon, mContentDescription, mShouldTint); + public Icon build() { + return new Icon(mIcon, mContentDescription, mShouldTint); } } } diff --git a/core/java/android/app/smartspace/uitemplatedata/SmartspaceSubCardUiTemplateData.java b/core/java/android/app/smartspace/uitemplatedata/SubCardTemplateData.java index 2db13d31bba1..9c8330d1fcc6 100644 --- a/core/java/android/app/smartspace/uitemplatedata/SmartspaceSubCardUiTemplateData.java +++ b/core/java/android/app/smartspace/uitemplatedata/SubCardTemplateData.java @@ -28,43 +28,49 @@ import java.util.Objects; /** * Holds all the relevant data needed to render a Smartspace card with the sub-card Ui Template. * + * This template will add a sub-card card within the default-template card: + * <ul> + * <li> sub-card icon </li> + * <li> sub-card text </li> + * </ul> + * * @hide */ @SystemApi -public final class SmartspaceSubCardUiTemplateData extends SmartspaceDefaultUiTemplateData { +public final class SubCardTemplateData extends BaseTemplateData { /** Icon for the sub-card. */ @NonNull - private final SmartspaceIcon mSubCardIcon; + private final Icon mSubCardIcon; /** Text for the sub-card, which shows below the icon when being set. */ @Nullable - private final SmartspaceText mSubCardText; + private final Text mSubCardText; /** Tap action for the sub-card secondary card. */ @Nullable - private final SmartspaceTapAction mSubCardAction; + private final TapAction mSubCardAction; - SmartspaceSubCardUiTemplateData(@NonNull Parcel in) { + SubCardTemplateData(@NonNull Parcel in) { super(in); - mSubCardIcon = in.readTypedObject(SmartspaceIcon.CREATOR); - mSubCardText = in.readTypedObject(SmartspaceText.CREATOR); - mSubCardAction = in.readTypedObject(SmartspaceTapAction.CREATOR); + mSubCardIcon = in.readTypedObject(Icon.CREATOR); + mSubCardText = in.readTypedObject(Text.CREATOR); + mSubCardAction = in.readTypedObject(TapAction.CREATOR); } - private SmartspaceSubCardUiTemplateData(int templateType, - @Nullable SmartspaceText titleText, - @Nullable SmartspaceIcon titleIcon, - @Nullable SmartspaceText subtitleText, - @Nullable SmartspaceIcon subTitleIcon, - @Nullable SmartspaceTapAction primaryTapAction, - @Nullable SmartspaceText supplementalSubtitleText, - @Nullable SmartspaceIcon supplementalSubtitleIcon, - @Nullable SmartspaceTapAction supplementalSubtitleTapAction, - @Nullable SmartspaceText supplementalAlarmText, - @NonNull SmartspaceIcon subCardIcon, - @Nullable SmartspaceText subCardText, - @Nullable SmartspaceTapAction subCardAction) { + private SubCardTemplateData(int templateType, + @Nullable Text titleText, + @Nullable Icon titleIcon, + @Nullable Text subtitleText, + @Nullable Icon subTitleIcon, + @Nullable TapAction primaryTapAction, + @Nullable Text supplementalSubtitleText, + @Nullable Icon supplementalSubtitleIcon, + @Nullable TapAction supplementalSubtitleTapAction, + @Nullable Text supplementalAlarmText, + @NonNull Icon subCardIcon, + @Nullable Text subCardText, + @Nullable TapAction subCardAction) { super(templateType, titleText, titleIcon, subtitleText, subTitleIcon, primaryTapAction, supplementalSubtitleText, supplementalSubtitleIcon, supplementalSubtitleTapAction, supplementalAlarmText); @@ -73,18 +79,21 @@ public final class SmartspaceSubCardUiTemplateData extends SmartspaceDefaultUiTe mSubCardAction = subCardAction; } + /** Returns the sub-card card's icon. */ @NonNull - public SmartspaceIcon getSubCardIcon() { + public Icon getSubCardIcon() { return mSubCardIcon; } + /** Returns the sub-card card's text. */ @Nullable - public SmartspaceText getSubCardText() { + public Text getSubCardText() { return mSubCardText; } + /** Returns the sub-card card's tap action. */ @Nullable - public SmartspaceTapAction getSubCardAction() { + public TapAction getSubCardAction() { return mSubCardAction; } @@ -92,16 +101,16 @@ public final class SmartspaceSubCardUiTemplateData extends SmartspaceDefaultUiTe * @see Parcelable.Creator */ @NonNull - public static final Creator<SmartspaceSubCardUiTemplateData> CREATOR = - new Creator<SmartspaceSubCardUiTemplateData>() { + public static final Creator<SubCardTemplateData> CREATOR = + new Creator<SubCardTemplateData>() { @Override - public SmartspaceSubCardUiTemplateData createFromParcel(Parcel in) { - return new SmartspaceSubCardUiTemplateData(in); + public SubCardTemplateData createFromParcel(Parcel in) { + return new SubCardTemplateData(in); } @Override - public SmartspaceSubCardUiTemplateData[] newArray(int size) { - return new SmartspaceSubCardUiTemplateData[size]; + public SubCardTemplateData[] newArray(int size) { + return new SubCardTemplateData[size]; } }; @@ -121,9 +130,9 @@ public final class SmartspaceSubCardUiTemplateData extends SmartspaceDefaultUiTe @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof SmartspaceSubCardUiTemplateData)) return false; + if (!(o instanceof SubCardTemplateData)) return false; if (!super.equals(o)) return false; - SmartspaceSubCardUiTemplateData that = (SmartspaceSubCardUiTemplateData) o; + SubCardTemplateData that = (SubCardTemplateData) o; return mSubCardIcon.equals(that.mSubCardIcon) && SmartspaceUtils.isEqual(mSubCardText, that.mSubCardText) && Objects.equals(mSubCardAction, that.mSubCardAction); @@ -144,21 +153,21 @@ public final class SmartspaceSubCardUiTemplateData extends SmartspaceDefaultUiTe } /** - * A builder for {@link SmartspaceSubCardUiTemplateData} object. + * A builder for {@link SubCardTemplateData} object. * * @hide */ @SystemApi - public static final class Builder extends SmartspaceDefaultUiTemplateData.Builder { + public static final class Builder extends BaseTemplateData.Builder { - private final SmartspaceIcon mSubCardIcon; - private SmartspaceText mSubCardText; - private SmartspaceTapAction mSubCardAction; + private final Icon mSubCardIcon; + private Text mSubCardText; + private TapAction mSubCardAction; /** - * A builder for {@link SmartspaceSubCardUiTemplateData}. + * A builder for {@link SubCardTemplateData}. */ - public Builder(@NonNull SmartspaceIcon subCardIcon) { + public Builder(@NonNull Icon subCardIcon) { super(SmartspaceTarget.UI_TEMPLATE_SUB_CARD); mSubCardIcon = Objects.requireNonNull(subCardIcon); } @@ -167,7 +176,7 @@ public final class SmartspaceSubCardUiTemplateData extends SmartspaceDefaultUiTe * Sets the card text. */ @NonNull - public Builder setSubCardText(@NonNull SmartspaceText subCardText) { + public Builder setSubCardText(@NonNull Text subCardText) { mSubCardText = subCardText; return this; } @@ -176,7 +185,7 @@ public final class SmartspaceSubCardUiTemplateData extends SmartspaceDefaultUiTe * Sets the card tap action. */ @NonNull - public Builder setSubCardAction(@NonNull SmartspaceTapAction subCardAction) { + public Builder setSubCardAction(@NonNull TapAction subCardAction) { mSubCardAction = subCardAction; return this; } @@ -185,8 +194,8 @@ public final class SmartspaceSubCardUiTemplateData extends SmartspaceDefaultUiTe * Builds a new SmartspaceSubCardUiTemplateData instance. */ @NonNull - public SmartspaceSubCardUiTemplateData build() { - return new SmartspaceSubCardUiTemplateData(getTemplateType(), getTitleText(), + public SubCardTemplateData build() { + return new SubCardTemplateData(getTemplateType(), getTitleText(), getTitleIcon(), getSubtitleText(), getSubtitleIcon(), getPrimaryTapAction(), getSupplementalSubtitleText(), getSupplementalSubtitleIcon(), getSupplementalSubtitleTapAction(), getSupplementalAlarmText(), mSubCardIcon, diff --git a/core/java/android/app/smartspace/uitemplatedata/SmartspaceSubImageUiTemplateData.java b/core/java/android/app/smartspace/uitemplatedata/SubImageTemplateData.java index 2fe4cf87984a..7df523858a76 100644 --- a/core/java/android/app/smartspace/uitemplatedata/SmartspaceSubImageUiTemplateData.java +++ b/core/java/android/app/smartspace/uitemplatedata/SubImageTemplateData.java @@ -28,43 +28,50 @@ import java.util.Objects; /** * Holds all the relevant data needed to render a Smartspace card with the sub-image Ui Template. * + * This template will add a sub-image card within the default-template card: + * <ul> + * <li> sub-image text1 </li> <ul> + * <li> sub-image text2 </li> image (can be a GIF) + * ... </ul> + * </ul> + * * @hide */ @SystemApi -public final class SmartspaceSubImageUiTemplateData extends SmartspaceDefaultUiTemplateData { +public final class SubImageTemplateData extends BaseTemplateData { /** Texts are shown next to the image as a vertical list */ @NonNull - private final List<SmartspaceText> mSubImageTexts; + private final List<Text> mSubImageTexts; /** If multiple images are passed in, they will be rendered as GIF. */ @NonNull - private final List<SmartspaceIcon> mSubImages; + private final List<Icon> mSubImages; /** Tap action for the sub-image secondary card. */ @Nullable - private final SmartspaceTapAction mSubImageAction; + private final TapAction mSubImageAction; - SmartspaceSubImageUiTemplateData(@NonNull Parcel in) { + SubImageTemplateData(@NonNull Parcel in) { super(in); - mSubImageTexts = in.createTypedArrayList(SmartspaceText.CREATOR); - mSubImages = in.createTypedArrayList(SmartspaceIcon.CREATOR); - mSubImageAction = in.readTypedObject(SmartspaceTapAction.CREATOR); + mSubImageTexts = in.createTypedArrayList(Text.CREATOR); + mSubImages = in.createTypedArrayList(Icon.CREATOR); + mSubImageAction = in.readTypedObject(TapAction.CREATOR); } - private SmartspaceSubImageUiTemplateData(@SmartspaceTarget.UiTemplateType int templateType, - @Nullable SmartspaceText titleText, - @Nullable SmartspaceIcon titleIcon, - @Nullable SmartspaceText subtitleText, - @Nullable SmartspaceIcon subTitleIcon, - @Nullable SmartspaceTapAction primaryTapAction, - @Nullable SmartspaceText supplementalSubtitleText, - @Nullable SmartspaceIcon supplementalSubtitleIcon, - @Nullable SmartspaceTapAction supplementalSubtitleTapAction, - @Nullable SmartspaceText supplementalAlarmText, - @NonNull List<SmartspaceText> subImageTexts, - @NonNull List<SmartspaceIcon> subImages, - @Nullable SmartspaceTapAction subImageAction) { + private SubImageTemplateData(@SmartspaceTarget.UiTemplateType int templateType, + @Nullable Text titleText, + @Nullable Icon titleIcon, + @Nullable Text subtitleText, + @Nullable Icon subTitleIcon, + @Nullable TapAction primaryTapAction, + @Nullable Text supplementalSubtitleText, + @Nullable Icon supplementalSubtitleIcon, + @Nullable TapAction supplementalSubtitleTapAction, + @Nullable Text supplementalAlarmText, + @NonNull List<Text> subImageTexts, + @NonNull List<Icon> subImages, + @Nullable TapAction subImageAction) { super(templateType, titleText, titleIcon, subtitleText, subTitleIcon, primaryTapAction, supplementalSubtitleText, supplementalSubtitleIcon, supplementalSubtitleTapAction, supplementalAlarmText); @@ -73,18 +80,24 @@ public final class SmartspaceSubImageUiTemplateData extends SmartspaceDefaultUiT mSubImageAction = subImageAction; } + /** Returns the list of sub-image card's texts. Can be empty if not being set. */ @NonNull - public List<SmartspaceText> getSubImageTexts() { + public List<Text> getSubImageTexts() { return mSubImageTexts; } + /** + * Returns the list of sub-image card's image. It's a single-element list if it's a static + * image, or a multi-elements list if it's a GIF. + */ @NonNull - public List<SmartspaceIcon> getSubImages() { + public List<Icon> getSubImages() { return mSubImages; } + /** Returns the sub-image card's tap action. */ @Nullable - public SmartspaceTapAction getSubImageAction() { + public TapAction getSubImageAction() { return mSubImageAction; } @@ -92,16 +105,16 @@ public final class SmartspaceSubImageUiTemplateData extends SmartspaceDefaultUiT * @see Parcelable.Creator */ @NonNull - public static final Creator<SmartspaceSubImageUiTemplateData> CREATOR = - new Creator<SmartspaceSubImageUiTemplateData>() { + public static final Creator<SubImageTemplateData> CREATOR = + new Creator<SubImageTemplateData>() { @Override - public SmartspaceSubImageUiTemplateData createFromParcel(Parcel in) { - return new SmartspaceSubImageUiTemplateData(in); + public SubImageTemplateData createFromParcel(Parcel in) { + return new SubImageTemplateData(in); } @Override - public SmartspaceSubImageUiTemplateData[] newArray(int size) { - return new SmartspaceSubImageUiTemplateData[size]; + public SubImageTemplateData[] newArray(int size) { + return new SubImageTemplateData[size]; } }; @@ -121,9 +134,9 @@ public final class SmartspaceSubImageUiTemplateData extends SmartspaceDefaultUiT @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof SmartspaceSubImageUiTemplateData)) return false; + if (!(o instanceof SubImageTemplateData)) return false; if (!super.equals(o)) return false; - SmartspaceSubImageUiTemplateData that = (SmartspaceSubImageUiTemplateData) o; + SubImageTemplateData that = (SubImageTemplateData) o; return Objects.equals(mSubImageTexts, that.mSubImageTexts) && Objects.equals(mSubImages, that.mSubImages) && Objects.equals( mSubImageAction, that.mSubImageAction); @@ -144,22 +157,22 @@ public final class SmartspaceSubImageUiTemplateData extends SmartspaceDefaultUiT } /** - * A builder for {@link SmartspaceSubImageUiTemplateData} object. + * A builder for {@link SubImageTemplateData} object. * * @hide */ @SystemApi - public static final class Builder extends SmartspaceDefaultUiTemplateData.Builder { + public static final class Builder extends BaseTemplateData.Builder { - private final List<SmartspaceText> mSubImageTexts; - private final List<SmartspaceIcon> mSubImages; - private SmartspaceTapAction mSubImageAction; + private final List<Text> mSubImageTexts; + private final List<Icon> mSubImages; + private TapAction mSubImageAction; /** - * A builder for {@link SmartspaceSubImageUiTemplateData}. + * A builder for {@link SubImageTemplateData}. */ - public Builder(@NonNull List<SmartspaceText> subImageTexts, - @NonNull List<SmartspaceIcon> subImages) { + public Builder(@NonNull List<Text> subImageTexts, + @NonNull List<Icon> subImages) { super(SmartspaceTarget.UI_TEMPLATE_SUB_IMAGE); mSubImageTexts = Objects.requireNonNull(subImageTexts); mSubImages = Objects.requireNonNull(subImages); @@ -169,7 +182,7 @@ public final class SmartspaceSubImageUiTemplateData extends SmartspaceDefaultUiT * Sets the card tap action. */ @NonNull - public Builder setSubImageAction(@NonNull SmartspaceTapAction subImageAction) { + public Builder setSubImageAction(@NonNull TapAction subImageAction) { mSubImageAction = subImageAction; return this; } @@ -178,8 +191,8 @@ public final class SmartspaceSubImageUiTemplateData extends SmartspaceDefaultUiT * Builds a new SmartspaceSubImageUiTemplateData instance. */ @NonNull - public SmartspaceSubImageUiTemplateData build() { - return new SmartspaceSubImageUiTemplateData(getTemplateType(), getTitleText(), + public SubImageTemplateData build() { + return new SubImageTemplateData(getTemplateType(), getTitleText(), getTitleIcon(), getSubtitleText(), getSubtitleIcon(), getPrimaryTapAction(), getSupplementalSubtitleText(), getSupplementalSubtitleIcon(), getSupplementalSubtitleTapAction(), getSupplementalAlarmText(), mSubImageTexts, diff --git a/core/java/android/app/smartspace/uitemplatedata/SmartspaceSubListUiTemplateData.java b/core/java/android/app/smartspace/uitemplatedata/SubListTemplateData.java index 9512c7fb130e..6f6034da55dd 100644 --- a/core/java/android/app/smartspace/uitemplatedata/SmartspaceSubListUiTemplateData.java +++ b/core/java/android/app/smartspace/uitemplatedata/SubListTemplateData.java @@ -29,40 +29,48 @@ import java.util.Objects; /** * Holds all the relevant data needed to render a Smartspace card with the sub-list Ui Template. * + * This template will add a sub-list card within the default-template card: + * <ul> + * <li> sub-list text1 sub-list icon </li> + * <li> sub-list text2 </li> + * <li> sub-list text3 </li> + * ... + * </ul> + * * @hide */ @SystemApi -public final class SmartspaceSubListUiTemplateData extends SmartspaceDefaultUiTemplateData { +public final class SubListTemplateData extends BaseTemplateData { @Nullable - private final SmartspaceIcon mSubListIcon; + private final Icon mSubListIcon; @NonNull - private final List<SmartspaceText> mSubListTexts; + private final List<Text> mSubListTexts; /** Tap action for the sub-list secondary card. */ @Nullable - private final SmartspaceTapAction mSubListAction; + private final TapAction mSubListAction; - SmartspaceSubListUiTemplateData(@NonNull Parcel in) { + SubListTemplateData(@NonNull Parcel in) { super(in); - mSubListIcon = in.readTypedObject(SmartspaceIcon.CREATOR); - mSubListTexts = in.createTypedArrayList(SmartspaceText.CREATOR); - mSubListAction = in.readTypedObject(SmartspaceTapAction.CREATOR); + mSubListIcon = in.readTypedObject(Icon.CREATOR); + mSubListTexts = in.createTypedArrayList(Text.CREATOR); + mSubListAction = in.readTypedObject(TapAction.CREATOR); } - private SmartspaceSubListUiTemplateData(@SmartspaceTarget.UiTemplateType int templateType, - @Nullable SmartspaceText titleText, - @Nullable SmartspaceIcon titleIcon, - @Nullable SmartspaceText subtitleText, - @Nullable SmartspaceIcon subTitleIcon, - @Nullable SmartspaceTapAction primaryTapAction, - @Nullable SmartspaceText supplementalSubtitleText, - @Nullable SmartspaceIcon supplementalSubtitleIcon, - @Nullable SmartspaceTapAction supplementalSubtitleTapAction, - @Nullable SmartspaceText supplementalAlarmText, - @Nullable SmartspaceIcon subListIcon, - @NonNull List<SmartspaceText> subListTexts, - @Nullable SmartspaceTapAction subListAction) { + private SubListTemplateData(@SmartspaceTarget.UiTemplateType int templateType, + @Nullable Text titleText, + @Nullable Icon titleIcon, + @Nullable Text subtitleText, + @Nullable Icon subTitleIcon, + @Nullable TapAction primaryTapAction, + @Nullable Text supplementalSubtitleText, + @Nullable Icon supplementalSubtitleIcon, + @Nullable TapAction supplementalSubtitleTapAction, + @Nullable Text supplementalAlarmText, + @Nullable Icon subListIcon, + @NonNull List<Text> subListTexts, + @Nullable TapAction subListAction) { super(templateType, titleText, titleIcon, subtitleText, subTitleIcon, primaryTapAction, supplementalSubtitleText, supplementalSubtitleIcon, supplementalSubtitleTapAction, supplementalAlarmText); @@ -71,18 +79,21 @@ public final class SmartspaceSubListUiTemplateData extends SmartspaceDefaultUiTe mSubListAction = subListAction; } + /** Returns the sub-list card's icon. */ @Nullable - public SmartspaceIcon getSubListIcon() { + public Icon getSubListIcon() { return mSubListIcon; } + /** Returns the sub-list card's texts list. */ @NonNull - public List<SmartspaceText> getSubListTexts() { + public List<Text> getSubListTexts() { return mSubListTexts; } + /** Returns the sub-list card's tap action. */ @Nullable - public SmartspaceTapAction getSubListAction() { + public TapAction getSubListAction() { return mSubListAction; } @@ -90,16 +101,16 @@ public final class SmartspaceSubListUiTemplateData extends SmartspaceDefaultUiTe * @see Parcelable.Creator */ @NonNull - public static final Creator<SmartspaceSubListUiTemplateData> CREATOR = - new Creator<SmartspaceSubListUiTemplateData>() { + public static final Creator<SubListTemplateData> CREATOR = + new Creator<SubListTemplateData>() { @Override - public SmartspaceSubListUiTemplateData createFromParcel(Parcel in) { - return new SmartspaceSubListUiTemplateData(in); + public SubListTemplateData createFromParcel(Parcel in) { + return new SubListTemplateData(in); } @Override - public SmartspaceSubListUiTemplateData[] newArray(int size) { - return new SmartspaceSubListUiTemplateData[size]; + public SubListTemplateData[] newArray(int size) { + return new SubListTemplateData[size]; } }; @@ -119,9 +130,9 @@ public final class SmartspaceSubListUiTemplateData extends SmartspaceDefaultUiTe @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof SmartspaceSubListUiTemplateData)) return false; + if (!(o instanceof SubListTemplateData)) return false; if (!super.equals(o)) return false; - SmartspaceSubListUiTemplateData that = (SmartspaceSubListUiTemplateData) o; + SubListTemplateData that = (SubListTemplateData) o; return Objects.equals(mSubListIcon, that.mSubListIcon) && Objects.equals( mSubListTexts, that.mSubListTexts) && Objects.equals(mSubListAction, that.mSubListAction); @@ -142,21 +153,21 @@ public final class SmartspaceSubListUiTemplateData extends SmartspaceDefaultUiTe } /** - * A builder for {@link SmartspaceSubListUiTemplateData} object. + * A builder for {@link SubListTemplateData} object. * * @hide */ @SystemApi - public static final class Builder extends SmartspaceDefaultUiTemplateData.Builder { + public static final class Builder extends BaseTemplateData.Builder { - private SmartspaceIcon mSubListIcon; - private final List<SmartspaceText> mSubListTexts; - private SmartspaceTapAction mSubListAction; + private Icon mSubListIcon; + private final List<Text> mSubListTexts; + private TapAction mSubListAction; /** - * A builder for {@link SmartspaceSubListUiTemplateData}. + * A builder for {@link SubListTemplateData}. */ - public Builder(@NonNull List<SmartspaceText> subListTexts) { + public Builder(@NonNull List<Text> subListTexts) { super(SmartspaceTarget.UI_TEMPLATE_SUB_LIST); mSubListTexts = Objects.requireNonNull(subListTexts); } @@ -165,7 +176,7 @@ public final class SmartspaceSubListUiTemplateData extends SmartspaceDefaultUiTe * Sets the sub-list card icon. */ @NonNull - public Builder setSubListIcon(@NonNull SmartspaceIcon subListIcon) { + public Builder setSubListIcon(@NonNull Icon subListIcon) { mSubListIcon = subListIcon; return this; } @@ -174,7 +185,7 @@ public final class SmartspaceSubListUiTemplateData extends SmartspaceDefaultUiTe * Sets the card tap action. */ @NonNull - public Builder setSubListAction(@NonNull SmartspaceTapAction subListAction) { + public Builder setSubListAction(@NonNull TapAction subListAction) { mSubListAction = subListAction; return this; } @@ -183,8 +194,8 @@ public final class SmartspaceSubListUiTemplateData extends SmartspaceDefaultUiTe * Builds a new SmartspaceSubListUiTemplateData instance. */ @NonNull - public SmartspaceSubListUiTemplateData build() { - return new SmartspaceSubListUiTemplateData(getTemplateType(), getTitleText(), + public SubListTemplateData build() { + return new SubListTemplateData(getTemplateType(), getTitleText(), getTitleIcon(), getSubtitleText(), getSubtitleIcon(), getPrimaryTapAction(), getSupplementalSubtitleText(), getSupplementalSubtitleIcon(), getSupplementalSubtitleTapAction(), getSupplementalAlarmText(), mSubListIcon, diff --git a/core/java/android/app/smartspace/uitemplatedata/SmartspaceTapAction.java b/core/java/android/app/smartspace/uitemplatedata/TapAction.java index 27d8e5fed3b1..83ff6abfa7dd 100644 --- a/core/java/android/app/smartspace/uitemplatedata/SmartspaceTapAction.java +++ b/core/java/android/app/smartspace/uitemplatedata/TapAction.java @@ -33,7 +33,7 @@ import android.text.TextUtils; import java.util.Objects; /** - * A {@link SmartspaceTapAction} represents an action which can be taken by a user by tapping on + * A {@link TapAction} represents an action which can be taken by a user by tapping on * either the title, the subtitle or on the icon. Supported instances are Intents and * PendingIntents. These actions can be called from another process or within the client process. * @@ -42,9 +42,9 @@ import java.util.Objects; * @hide */ @SystemApi -public final class SmartspaceTapAction implements Parcelable { +public final class TapAction implements Parcelable { - /** A unique Id of this {@link SmartspaceTapAction}. */ + /** A unique Id of this {@link TapAction}. */ @Nullable private final CharSequence mId; @@ -60,7 +60,7 @@ public final class SmartspaceTapAction implements Parcelable { @Nullable private Bundle mExtras; - SmartspaceTapAction(@NonNull Parcel in) { + TapAction(@NonNull Parcel in) { mId = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); mIntent = in.readTypedObject(Intent.CREATOR); mPendingIntent = in.readTypedObject(PendingIntent.CREATOR); @@ -68,7 +68,7 @@ public final class SmartspaceTapAction implements Parcelable { mExtras = in.readBundle(); } - private SmartspaceTapAction(@Nullable CharSequence id, @Nullable Intent intent, + private TapAction(@Nullable CharSequence id, @Nullable Intent intent, @Nullable PendingIntent pendingIntent, @Nullable UserHandle userHandle, @Nullable Bundle extras) { mId = id; @@ -78,27 +78,32 @@ public final class SmartspaceTapAction implements Parcelable { mExtras = extras; } + /** Returns the unique id of the tap action. */ @Nullable public CharSequence getId() { return mId; } + /** Returns the intent of the tap action. */ @SuppressLint("IntentBuilderName") @Nullable public Intent getIntent() { return mIntent; } + /** Returns the pending intent of the tap action. */ @Nullable public PendingIntent getPendingIntent() { return mPendingIntent; } + /** Returns the user handle of the tap action. */ @Nullable public UserHandle getUserHandle() { return mUserHandle; } + /** Returns the extras bundle of the tap action. */ @Nullable @SuppressLint("NullableCollection") public Bundle getExtras() { @@ -120,23 +125,23 @@ public final class SmartspaceTapAction implements Parcelable { } @NonNull - public static final Creator<SmartspaceTapAction> CREATOR = new Creator<SmartspaceTapAction>() { + public static final Creator<TapAction> CREATOR = new Creator<TapAction>() { @Override - public SmartspaceTapAction createFromParcel(Parcel in) { - return new SmartspaceTapAction(in); + public TapAction createFromParcel(Parcel in) { + return new TapAction(in); } @Override - public SmartspaceTapAction[] newArray(int size) { - return new SmartspaceTapAction[size]; + public TapAction[] newArray(int size) { + return new TapAction[size]; } }; @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof SmartspaceTapAction)) return false; - SmartspaceTapAction that = (SmartspaceTapAction) o; + if (!(o instanceof TapAction)) return false; + TapAction that = (TapAction) o; return SmartspaceUtils.isEqual(mId, that.mId); } @@ -157,7 +162,7 @@ public final class SmartspaceTapAction implements Parcelable { } /** - * A builder for {@link SmartspaceTapAction} object. + * A builder for {@link TapAction} object. * * @hide */ @@ -171,9 +176,9 @@ public final class SmartspaceTapAction implements Parcelable { private Bundle mExtras; /** - * A builder for {@link SmartspaceTapAction}. + * A builder for {@link TapAction}. * - * @param id A unique Id of this {@link SmartspaceTapAction}. + * @param id A unique Id of this {@link TapAction}. */ public Builder(@NonNull CharSequence id) { mId = Objects.requireNonNull(id); @@ -222,11 +227,11 @@ public final class SmartspaceTapAction implements Parcelable { * @throws IllegalStateException if the tap action is empty. */ @NonNull - public SmartspaceTapAction build() { + public TapAction build() { if (mIntent == null && mPendingIntent == null && mExtras == null) { throw new IllegalStateException("Please assign at least 1 valid tap field"); } - return new SmartspaceTapAction(mId, mIntent, mPendingIntent, mUserHandle, mExtras); + return new TapAction(mId, mIntent, mPendingIntent, mUserHandle, mExtras); } } } diff --git a/core/java/android/app/smartspace/uitemplatedata/SmartspaceText.java b/core/java/android/app/smartspace/uitemplatedata/Text.java index 25d13e6521c6..b733394a1ae6 100644 --- a/core/java/android/app/smartspace/uitemplatedata/SmartspaceText.java +++ b/core/java/android/app/smartspace/uitemplatedata/Text.java @@ -32,43 +32,54 @@ import java.util.Objects; * @hide */ @SystemApi -public final class SmartspaceText implements Parcelable { +public final class Text implements Parcelable { @NonNull private final CharSequence mText; private final TextUtils.TruncateAt mTruncateAtType; - SmartspaceText(Parcel in) { + private final int mMaxLines; + + Text(Parcel in) { mText = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); mTruncateAtType = TextUtils.TruncateAt.valueOf(in.readString()); + mMaxLines = in.readInt(); } - private SmartspaceText(@NonNull CharSequence text, TextUtils.TruncateAt truncateAtType) { + private Text(@NonNull CharSequence text, TextUtils.TruncateAt truncateAtType, int maxLines) { mText = text; mTruncateAtType = truncateAtType; + mMaxLines = maxLines; } + /** Returns the text content. */ @NonNull public CharSequence getText() { return mText; } + /** Returns the {@link TextUtils.TruncateAt} type of the text content. */ @NonNull public TextUtils.TruncateAt getTruncateAtType() { return mTruncateAtType; } + /** Returns the allowed max lines for presenting the text content. */ + public int getMaxLines() { + return mMaxLines; + } + @NonNull - public static final Creator<SmartspaceText> CREATOR = new Creator<SmartspaceText>() { + public static final Creator<Text> CREATOR = new Creator<Text>() { @Override - public SmartspaceText createFromParcel(Parcel in) { - return new SmartspaceText(in); + public Text createFromParcel(Parcel in) { + return new Text(in); } @Override - public SmartspaceText[] newArray(int size) { - return new SmartspaceText[size]; + public Text[] newArray(int size) { + return new Text[size]; } }; @@ -80,25 +91,26 @@ public final class SmartspaceText implements Parcelable { @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof SmartspaceText)) return false; - SmartspaceText that = (SmartspaceText) o; + if (!(o instanceof Text)) return false; + Text that = (Text) o; return mTruncateAtType == that.mTruncateAtType && SmartspaceUtils.isEqual(mText, - that.mText); + that.mText) && mMaxLines == that.mMaxLines; } @Override public int hashCode() { - return Objects.hash(mText, mTruncateAtType); + return Objects.hash(mText, mTruncateAtType, mMaxLines); } @Override public void writeToParcel(@NonNull Parcel out, int flags) { TextUtils.writeToParcel(mText, out, flags); out.writeString(mTruncateAtType.name()); + out.writeInt(mMaxLines); } /** - * A builder for {@link SmartspaceText} object. + * A builder for {@link Text} object. * * @hide */ @@ -106,25 +118,31 @@ public final class SmartspaceText implements Parcelable { public static final class Builder { private final CharSequence mText; private TextUtils.TruncateAt mTruncateAtType; + private int mMaxLines; /** - * A builder for {@link SmartspaceText}, which sets TruncateAtType to AT_END by default. + * A builder for {@link Text}, which by default sets TruncateAtType to AT_END, and the max + * lines to 1. */ public Builder(@NonNull CharSequence text) { mText = Objects.requireNonNull(text); mTruncateAtType = TextUtils.TruncateAt.END; + mMaxLines = 1; } /** - * A builder for {@link SmartspaceText}. + * A builder for {@link Text} with specifying {@link TextUtils.TruncateAt} type, and by + * default set the max lines to 1. */ public Builder(@NonNull CharSequence text, @NonNull TextUtils.TruncateAt truncateAtType) { mText = Objects.requireNonNull(text); mTruncateAtType = Objects.requireNonNull(truncateAtType); + mMaxLines = 1; } /** - * Sets truncateAtType. + * Sets truncateAtType, where the text content should be truncated if not all the content + * can be presented. */ @NonNull public Builder setTruncateAtType(@NonNull TextUtils.TruncateAt truncateAtType) { @@ -133,11 +151,20 @@ public final class SmartspaceText implements Parcelable { } /** + * Sets the allowed max lines for the text content. + */ + @NonNull + public Builder setMaxLines(int maxLines) { + mMaxLines = maxLines; + return this; + } + + /** * Builds a new SmartspaceText instance. */ @NonNull - public SmartspaceText build() { - return new SmartspaceText(mText, mTruncateAtType); + public Text build() { + return new Text(mText, mTruncateAtType, mMaxLines); } } } diff --git a/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java b/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java index ce3c599067ca..d3f4ab017fd7 100644 --- a/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java +++ b/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java @@ -20,7 +20,7 @@ import android.app.PendingIntent; import android.app.smartspace.SmartspaceAction; import android.app.smartspace.SmartspaceTarget; import android.app.smartspace.SmartspaceTargetEvent; -import android.app.smartspace.uitemplatedata.SmartspaceTapAction; +import android.app.smartspace.uitemplatedata.TapAction; import android.content.ActivityNotFoundException; import android.content.Intent; import android.graphics.drawable.Drawable; @@ -139,7 +139,7 @@ public interface BcSmartspaceDataPlugin extends Plugin { } } - default void startFromAction(SmartspaceTapAction action, View v, boolean showOnLockscreen) { + default void startFromAction(TapAction action, View v, boolean showOnLockscreen) { try { if (action.getIntent() != null) { startIntent(v, action.getIntent(), showOnLockscreen); |