Merge "Add more fields in Suggestion model"
This commit is contained in:
committed by
Android (Google) Code Review
commit
a4fabd3ef2
@@ -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);
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
@@ -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.
|
||||
*/
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -66,6 +74,7 @@ public class SuggestionTest {
|
||||
.setTitle(TEST_TITLE)
|
||||
.setSummary(TEST_SUMMARY)
|
||||
.setPendingIntent(mTestIntent)
|
||||
.setIcon(mIcon)
|
||||
.build();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user