Loading api/system-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -40890,17 +40890,22 @@ package android.service.settings.suggestions { public final class Suggestion implements android.os.Parcelable { method public int describeContents(); method public int getFlags(); method public android.graphics.drawable.Icon getIcon(); method public java.lang.String getId(); method public android.app.PendingIntent getPendingIntent(); method public java.lang.CharSequence getSummary(); method public java.lang.CharSequence getTitle(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.service.settings.suggestions.Suggestion> CREATOR; field public static final int FLAG_HAS_BUTTON = 1; // 0x1 } public static class Suggestion.Builder { ctor public Suggestion.Builder(java.lang.String); method public android.service.settings.suggestions.Suggestion build(); method public android.service.settings.suggestions.Suggestion.Builder setFlags(int); method public android.service.settings.suggestions.Suggestion.Builder setIcon(android.graphics.drawable.Icon); method public android.service.settings.suggestions.Suggestion.Builder setPendingIntent(android.app.PendingIntent); method public android.service.settings.suggestions.Suggestion.Builder setSummary(java.lang.CharSequence); method public android.service.settings.suggestions.Suggestion.Builder setTitle(java.lang.CharSequence); core/java/android/service/settings/suggestions/Suggestion.java +65 −0 Original line number Diff line number Diff line Loading @@ -16,12 +16,17 @@ package android.service.settings.suggestions; import android.annotation.IntDef; import android.annotation.SystemApi; import android.app.PendingIntent; import android.graphics.drawable.Icon; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * Data object that has information about a device suggestion. * Loading @@ -30,9 +35,27 @@ import android.text.TextUtils; @SystemApi public final class Suggestion implements Parcelable { /** * @hide */ @IntDef(flag = true, value = { FLAG_HAS_BUTTON, }) @Retention(RetentionPolicy.SOURCE) public @interface Flags { } /** * Flag for suggestion type with a single button */ public static final int FLAG_HAS_BUTTON = 1 << 0; private final String mId; private final CharSequence mTitle; private final CharSequence mSummary; private final Icon mIcon; @Flags private final int mFlags; private final PendingIntent mPendingIntent; /** Loading @@ -56,6 +79,22 @@ public final class Suggestion implements Parcelable { return mSummary; } /** * Optional icon for this suggestion. */ public Icon getIcon() { return mIcon; } /** * Optional flags for this suggestion. This will influence UI when rendering suggestion in * different style. */ @Flags public int getFlags() { return mFlags; } /** * The Intent to launch when the suggestion is activated. */ Loading @@ -67,6 +106,8 @@ public final class Suggestion implements Parcelable { mId = builder.mId; mTitle = builder.mTitle; mSummary = builder.mSummary; mIcon = builder.mIcon; mFlags = builder.mFlags; mPendingIntent = builder.mPendingIntent; } Loading @@ -74,6 +115,8 @@ public final class Suggestion implements Parcelable { mId = in.readString(); mTitle = in.readCharSequence(); mSummary = in.readCharSequence(); mIcon = in.readParcelable(Icon.class.getClassLoader()); mFlags = in.readInt(); mPendingIntent = in.readParcelable(PendingIntent.class.getClassLoader()); } Loading @@ -99,6 +142,8 @@ public final class Suggestion implements Parcelable { dest.writeString(mId); dest.writeCharSequence(mTitle); dest.writeCharSequence(mSummary); dest.writeParcelable(mIcon, flags); dest.writeInt(mFlags); dest.writeParcelable(mPendingIntent, flags); } Loading @@ -109,6 +154,9 @@ public final class Suggestion implements Parcelable { private final String mId; private CharSequence mTitle; private CharSequence mSummary; private Icon mIcon; @Flags private int mFlags; private PendingIntent mPendingIntent; public Builder(String id) { Loading @@ -134,6 +182,23 @@ public final class Suggestion implements Parcelable { return this; } /** * Sets icon for the suggestion. */ public Builder setIcon(Icon icon) { mIcon = icon; return this; } /** * Sets a UI type for this suggestion. This will influence UI when rendering suggestion in * different style. */ public Builder setFlags(@Flags int flags) { mFlags = flags; return this; } /** * Sets suggestion intent */ Loading core/tests/coretests/src/android/service/settings/suggestions/SuggestionTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import static com.google.common.truth.Truth.assertThat; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.Icon; import android.os.Parcel; import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; Loading @@ -36,6 +38,8 @@ public class SuggestionTest { private static final String TEST_ID = "id"; private static final String TEST_TITLE = "title"; private static final String TEST_SUMMARY = "summary"; private Icon mIcon; private PendingIntent mTestIntent; Loading @@ -44,6 +48,7 @@ public class SuggestionTest { final Context context = InstrumentationRegistry.getContext(); mTestIntent = PendingIntent.getActivity(context, 0 /* requestCode */, new Intent(), 0 /* flags */); mIcon = Icon.createWithBitmap(Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888)); } @Test Loading @@ -51,12 +56,15 @@ public class SuggestionTest { final Suggestion suggestion = new Suggestion.Builder(TEST_ID) .setTitle(TEST_TITLE) .setSummary(TEST_SUMMARY) .setIcon(mIcon) .setPendingIntent(mTestIntent) .build(); assertThat(suggestion.getId()).isEqualTo(TEST_ID); assertThat(suggestion.getTitle()).isEqualTo(TEST_TITLE); assertThat(suggestion.getSummary()).isEqualTo(TEST_SUMMARY); assertThat(suggestion.getIcon()).isEqualTo(mIcon); assertThat(suggestion.getFlags()).isEqualTo(0); assertThat(suggestion.getPendingIntent()).isEqualTo(mTestIntent); } Loading @@ -66,6 +74,7 @@ public class SuggestionTest { .setTitle(TEST_TITLE) .setSummary(TEST_SUMMARY) .setPendingIntent(mTestIntent) .setIcon(mIcon) .build(); } Loading @@ -75,6 +84,8 @@ public class SuggestionTest { final Suggestion oldSuggestion = new Suggestion.Builder(TEST_ID) .setTitle(TEST_TITLE) .setSummary(TEST_SUMMARY) .setIcon(mIcon) .setFlags(Suggestion.FLAG_HAS_BUTTON) .setPendingIntent(mTestIntent) .build(); Loading @@ -85,6 +96,9 @@ public class SuggestionTest { assertThat(newSuggestion.getId()).isEqualTo(TEST_ID); assertThat(newSuggestion.getTitle()).isEqualTo(TEST_TITLE); assertThat(newSuggestion.getSummary()).isEqualTo(TEST_SUMMARY); assertThat(newSuggestion.getIcon().toString()).isEqualTo(mIcon.toString()); assertThat(newSuggestion.getFlags()) .isEqualTo(Suggestion.FLAG_HAS_BUTTON); assertThat(newSuggestion.getPendingIntent()).isEqualTo(mTestIntent); } } Loading
api/system-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -40890,17 +40890,22 @@ package android.service.settings.suggestions { public final class Suggestion implements android.os.Parcelable { method public int describeContents(); method public int getFlags(); method public android.graphics.drawable.Icon getIcon(); method public java.lang.String getId(); method public android.app.PendingIntent getPendingIntent(); method public java.lang.CharSequence getSummary(); method public java.lang.CharSequence getTitle(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.service.settings.suggestions.Suggestion> CREATOR; field public static final int FLAG_HAS_BUTTON = 1; // 0x1 } public static class Suggestion.Builder { ctor public Suggestion.Builder(java.lang.String); method public android.service.settings.suggestions.Suggestion build(); method public android.service.settings.suggestions.Suggestion.Builder setFlags(int); method public android.service.settings.suggestions.Suggestion.Builder setIcon(android.graphics.drawable.Icon); method public android.service.settings.suggestions.Suggestion.Builder setPendingIntent(android.app.PendingIntent); method public android.service.settings.suggestions.Suggestion.Builder setSummary(java.lang.CharSequence); method public android.service.settings.suggestions.Suggestion.Builder setTitle(java.lang.CharSequence);
core/java/android/service/settings/suggestions/Suggestion.java +65 −0 Original line number Diff line number Diff line Loading @@ -16,12 +16,17 @@ package android.service.settings.suggestions; import android.annotation.IntDef; import android.annotation.SystemApi; import android.app.PendingIntent; import android.graphics.drawable.Icon; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * Data object that has information about a device suggestion. * Loading @@ -30,9 +35,27 @@ import android.text.TextUtils; @SystemApi public final class Suggestion implements Parcelable { /** * @hide */ @IntDef(flag = true, value = { FLAG_HAS_BUTTON, }) @Retention(RetentionPolicy.SOURCE) public @interface Flags { } /** * Flag for suggestion type with a single button */ public static final int FLAG_HAS_BUTTON = 1 << 0; private final String mId; private final CharSequence mTitle; private final CharSequence mSummary; private final Icon mIcon; @Flags private final int mFlags; private final PendingIntent mPendingIntent; /** Loading @@ -56,6 +79,22 @@ public final class Suggestion implements Parcelable { return mSummary; } /** * Optional icon for this suggestion. */ public Icon getIcon() { return mIcon; } /** * Optional flags for this suggestion. This will influence UI when rendering suggestion in * different style. */ @Flags public int getFlags() { return mFlags; } /** * The Intent to launch when the suggestion is activated. */ Loading @@ -67,6 +106,8 @@ public final class Suggestion implements Parcelable { mId = builder.mId; mTitle = builder.mTitle; mSummary = builder.mSummary; mIcon = builder.mIcon; mFlags = builder.mFlags; mPendingIntent = builder.mPendingIntent; } Loading @@ -74,6 +115,8 @@ public final class Suggestion implements Parcelable { mId = in.readString(); mTitle = in.readCharSequence(); mSummary = in.readCharSequence(); mIcon = in.readParcelable(Icon.class.getClassLoader()); mFlags = in.readInt(); mPendingIntent = in.readParcelable(PendingIntent.class.getClassLoader()); } Loading @@ -99,6 +142,8 @@ public final class Suggestion implements Parcelable { dest.writeString(mId); dest.writeCharSequence(mTitle); dest.writeCharSequence(mSummary); dest.writeParcelable(mIcon, flags); dest.writeInt(mFlags); dest.writeParcelable(mPendingIntent, flags); } Loading @@ -109,6 +154,9 @@ public final class Suggestion implements Parcelable { private final String mId; private CharSequence mTitle; private CharSequence mSummary; private Icon mIcon; @Flags private int mFlags; private PendingIntent mPendingIntent; public Builder(String id) { Loading @@ -134,6 +182,23 @@ public final class Suggestion implements Parcelable { return this; } /** * Sets icon for the suggestion. */ public Builder setIcon(Icon icon) { mIcon = icon; return this; } /** * Sets a UI type for this suggestion. This will influence UI when rendering suggestion in * different style. */ public Builder setFlags(@Flags int flags) { mFlags = flags; return this; } /** * Sets suggestion intent */ Loading
core/tests/coretests/src/android/service/settings/suggestions/SuggestionTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import static com.google.common.truth.Truth.assertThat; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.Icon; import android.os.Parcel; import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; Loading @@ -36,6 +38,8 @@ public class SuggestionTest { private static final String TEST_ID = "id"; private static final String TEST_TITLE = "title"; private static final String TEST_SUMMARY = "summary"; private Icon mIcon; private PendingIntent mTestIntent; Loading @@ -44,6 +48,7 @@ public class SuggestionTest { final Context context = InstrumentationRegistry.getContext(); mTestIntent = PendingIntent.getActivity(context, 0 /* requestCode */, new Intent(), 0 /* flags */); mIcon = Icon.createWithBitmap(Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888)); } @Test Loading @@ -51,12 +56,15 @@ public class SuggestionTest { final Suggestion suggestion = new Suggestion.Builder(TEST_ID) .setTitle(TEST_TITLE) .setSummary(TEST_SUMMARY) .setIcon(mIcon) .setPendingIntent(mTestIntent) .build(); assertThat(suggestion.getId()).isEqualTo(TEST_ID); assertThat(suggestion.getTitle()).isEqualTo(TEST_TITLE); assertThat(suggestion.getSummary()).isEqualTo(TEST_SUMMARY); assertThat(suggestion.getIcon()).isEqualTo(mIcon); assertThat(suggestion.getFlags()).isEqualTo(0); assertThat(suggestion.getPendingIntent()).isEqualTo(mTestIntent); } Loading @@ -66,6 +74,7 @@ public class SuggestionTest { .setTitle(TEST_TITLE) .setSummary(TEST_SUMMARY) .setPendingIntent(mTestIntent) .setIcon(mIcon) .build(); } Loading @@ -75,6 +84,8 @@ public class SuggestionTest { final Suggestion oldSuggestion = new Suggestion.Builder(TEST_ID) .setTitle(TEST_TITLE) .setSummary(TEST_SUMMARY) .setIcon(mIcon) .setFlags(Suggestion.FLAG_HAS_BUTTON) .setPendingIntent(mTestIntent) .build(); Loading @@ -85,6 +96,9 @@ public class SuggestionTest { assertThat(newSuggestion.getId()).isEqualTo(TEST_ID); assertThat(newSuggestion.getTitle()).isEqualTo(TEST_TITLE); assertThat(newSuggestion.getSummary()).isEqualTo(TEST_SUMMARY); assertThat(newSuggestion.getIcon().toString()).isEqualTo(mIcon.toString()); assertThat(newSuggestion.getFlags()) .isEqualTo(Suggestion.FLAG_HAS_BUTTON); assertThat(newSuggestion.getPendingIntent()).isEqualTo(mTestIntent); } }