diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 3a5954dfb58d1..d21b525aab362 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -1395,7 +1395,10 @@ package android.app.ambientcontext { package android.app.assist { - public class ActivityId { + public final class ActivityId implements android.os.Parcelable { + method public int describeContents(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; } public static class AssistStructure.ViewNode { diff --git a/core/api/test-current.txt b/core/api/test-current.txt index fd5e23f2e9864..5ad106c78697f 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -569,9 +569,13 @@ package android.app.admin { package android.app.assist { - public class ActivityId { + public final class ActivityId implements android.os.Parcelable { + ctor public ActivityId(int, @Nullable android.os.IBinder); + method public int describeContents(); method public int getTaskId(); method @Nullable public android.os.IBinder getToken(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; } } diff --git a/core/java/android/app/assist/ActivityId.java b/core/java/android/app/assist/ActivityId.java index fb0d056c2a34e..1cc4b024d42df 100644 --- a/core/java/android/app/assist/ActivityId.java +++ b/core/java/android/app/assist/ActivityId.java @@ -22,6 +22,7 @@ import android.annotation.SystemApi; import android.annotation.TestApi; import android.os.IBinder; import android.os.Parcel; +import android.os.Parcelable; import android.service.contentcapture.ContentCaptureService; import android.view.contentcapture.ContentCaptureContext; import android.view.translation.UiTranslationManager; @@ -38,7 +39,8 @@ import com.android.internal.annotations.Immutable; */ @Immutable @SystemApi -public class ActivityId { +@TestApi +public final class ActivityId implements Parcelable { /** * The identifier of the task this activity is in. @@ -53,6 +55,7 @@ public class ActivityId { /** * @hide */ + @TestApi public ActivityId(int taskId, @Nullable IBinder activityId) { mTaskId = taskId; mActivityId = activityId; @@ -87,13 +90,39 @@ public class ActivityId { } /** - * @hide + * {@inheritDoc} */ - public void writeToParcel(@NonNull Parcel dest, int parcelableFlags) { + @Override + public int describeContents() { + return 0; + } + + /** + * {@inheritDoc} + */ + @Override + public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mTaskId); dest.writeStrongBinder(mActivityId); } + /** + * Creates {@link ActivityId} instances from parcels. + */ + @NonNull + public static final Parcelable.Creator CREATOR = + new Parcelable.Creator() { + @Override + public ActivityId createFromParcel(Parcel parcel) { + return new ActivityId(parcel); + } + + @Override + public ActivityId[] newArray(int size) { + return new ActivityId[size]; + } + }; + @Override public String toString() { return "ActivityId { taskId = " + mTaskId + ", activityId = " + mActivityId + " }";