Loading core/api/current.txt +47 −0 Original line number Diff line number Diff line Loading @@ -7826,6 +7826,52 @@ package android.app.job { } package android.app.people { public final class ConversationStatus implements android.os.Parcelable { method public int describeContents(); method public int getActivity(); method public int getAvailability(); method @Nullable public CharSequence getDescription(); method public long getEndTimeMillis(); method @Nullable public android.graphics.drawable.Icon getIcon(); method @NonNull public String getId(); method public long getStartTimeMillis(); method public void writeToParcel(@NonNull android.os.Parcel, int); field public static final int ACTIVITY_ANNIVERSARY = 2; // 0x2 field public static final int ACTIVITY_BIRTHDAY = 1; // 0x1 field public static final int ACTIVITY_GAME = 5; // 0x5 field public static final int ACTIVITY_LOCATION = 6; // 0x6 field public static final int ACTIVITY_MEDIA = 4; // 0x4 field public static final int ACTIVITY_NEW_STORY = 3; // 0x3 field public static final int ACTIVITY_OTHER = 0; // 0x0 field public static final int ACTIVITY_UPCOMING_BIRTHDAY = 7; // 0x7 field public static final int AVAILABILITY_AVAILABLE = 0; // 0x0 field public static final int AVAILABILITY_BUSY = 1; // 0x1 field public static final int AVAILABILITY_OFFLINE = 2; // 0x2 field public static final int AVAILABILITY_UNKNOWN = -1; // 0xffffffff field @NonNull public static final android.os.Parcelable.Creator<android.app.people.ConversationStatus> CREATOR; } public static final class ConversationStatus.Builder { ctor public ConversationStatus.Builder(@NonNull String, @NonNull int); method @NonNull public android.app.people.ConversationStatus build(); method @NonNull public android.app.people.ConversationStatus.Builder setAvailability(int); method @NonNull public android.app.people.ConversationStatus.Builder setDescription(@Nullable CharSequence); method @NonNull public android.app.people.ConversationStatus.Builder setEndTimeMillis(long); method @NonNull public android.app.people.ConversationStatus.Builder setIcon(@Nullable android.graphics.drawable.Icon); method @NonNull public android.app.people.ConversationStatus.Builder setStartTimeMillis(long); } public final class PeopleManager { method public void addOrUpdateStatus(@NonNull String, @NonNull android.app.people.ConversationStatus); method public void clearStatus(@NonNull String, @NonNull String); method public void clearStatuses(@NonNull String); method @NonNull public java.util.List<android.app.people.ConversationStatus> getStatuses(@NonNull String); } } package android.app.role { public final class RoleManager { Loading Loading @@ -10315,6 +10361,7 @@ package android.content { field public static final String NFC_SERVICE = "nfc"; field public static final String NOTIFICATION_SERVICE = "notification"; field public static final String NSD_SERVICE = "servicediscovery"; field public static final String PEOPLE_SERVICE = "people"; field public static final String POWER_SERVICE = "power"; field public static final String PRINT_SERVICE = "print"; field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1 core/java/android/app/SystemServiceRegistry.java +8 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.app.blob.BlobStoreManagerFrameworkInitializer; import android.app.contentsuggestions.ContentSuggestionsManager; import android.app.contentsuggestions.IContentSuggestionsManager; import android.app.job.JobSchedulerFrameworkInitializer; import android.app.people.PeopleManager; import android.app.prediction.AppPredictionManager; import android.app.role.RoleControllerManager; import android.app.role.RoleManager; Loading Loading @@ -586,6 +587,13 @@ public final class SystemServiceRegistry { return new NsdManager(ctx.getOuterContext(), service); }}); registerService(Context.PEOPLE_SERVICE, PeopleManager.class, new CachedServiceFetcher<PeopleManager>() { @Override public PeopleManager createService(ContextImpl ctx) throws ServiceNotFoundException { return new PeopleManager(ctx); }}); registerService(Context.POWER_SERVICE, PowerManager.class, new CachedServiceFetcher<PowerManager>() { @Override Loading core/java/android/app/people/ConversationStatus.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /** * Copyright (c) 2021, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.app.people; parcelable ConversationStatus; No newline at end of file core/java/android/app/people/ConversationStatus.java 0 → 100644 +240 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.app.people; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.graphics.drawable.Icon; import android.os.Parcel; import android.os.Parcelable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Objects; public final class ConversationStatus implements Parcelable { private static final String TAG = "ConversationStatus"; /** @hide */ @IntDef(prefix = { "ACTIVITY_" }, value = { ACTIVITY_OTHER, ACTIVITY_BIRTHDAY, ACTIVITY_ANNIVERSARY, ACTIVITY_NEW_STORY, ACTIVITY_MEDIA, ACTIVITY_GAME, ACTIVITY_LOCATION, ACTIVITY_UPCOMING_BIRTHDAY }) @Retention(RetentionPolicy.SOURCE) public @interface ActivityType {} public static final int ACTIVITY_OTHER = 0; public static final int ACTIVITY_BIRTHDAY = 1; public static final int ACTIVITY_ANNIVERSARY = 2; public static final int ACTIVITY_NEW_STORY = 3; public static final int ACTIVITY_MEDIA = 4; public static final int ACTIVITY_GAME = 5; public static final int ACTIVITY_LOCATION = 6; public static final int ACTIVITY_UPCOMING_BIRTHDAY = 7; /** @hide */ @IntDef(prefix = { "AVAILABILITY_" }, value = { AVAILABILITY_UNKNOWN, AVAILABILITY_AVAILABLE, AVAILABILITY_BUSY, AVAILABILITY_OFFLINE }) @Retention(RetentionPolicy.SOURCE) public @interface Availability {} public static final int AVAILABILITY_UNKNOWN = -1; public static final int AVAILABILITY_AVAILABLE = 0; public static final int AVAILABILITY_BUSY = 1; public static final int AVAILABILITY_OFFLINE = 2; private final String mId; private final int mActivity; private int mAvailability; private CharSequence mDescription; private Icon mIcon; private long mStartTimeMs; private long mEndTimeMs; private ConversationStatus(Builder b) { mId = b.mId; mActivity = b.mActivity; mAvailability = b.mAvailability; mDescription = b.mDescription; mIcon = b.mIcon; mStartTimeMs = b.mStartTimeMs; mEndTimeMs = b.mEndTimeMs; } private ConversationStatus(Parcel p) { mId = p.readString(); mActivity = p.readInt(); mAvailability = p.readInt(); mDescription = p.readCharSequence(); mIcon = p.readParcelable(Icon.class.getClassLoader()); mStartTimeMs = p.readLong(); mEndTimeMs = p.readLong(); } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeString(mId); dest.writeInt(mActivity); dest.writeInt(mAvailability); dest.writeCharSequence(mDescription); dest.writeParcelable(mIcon, flags); dest.writeLong(mStartTimeMs); dest.writeLong(mEndTimeMs); } public @NonNull String getId() { return mId; } public @ActivityType int getActivity() { return mActivity; } public @Availability int getAvailability() { return mAvailability; } public @Nullable CharSequence getDescription() { return mDescription; } public @Nullable Icon getIcon() { return mIcon; } public long getStartTimeMillis() { return mStartTimeMs; } public long getEndTimeMillis() { return mEndTimeMs; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ConversationStatus that = (ConversationStatus) o; return mActivity == that.mActivity && mAvailability == that.mAvailability && mStartTimeMs == that.mStartTimeMs && mEndTimeMs == that.mEndTimeMs && mId.equals(that.mId) && Objects.equals(mDescription, that.mDescription) && Objects.equals(mIcon, that.mIcon); } @Override public int hashCode() { return Objects.hash(mId, mActivity, mAvailability, mDescription, mIcon, mStartTimeMs, mEndTimeMs); } @Override public String toString() { return "ConversationStatus{" + "mId='" + mId + '\'' + ", mActivity=" + mActivity + ", mAvailability=" + mAvailability + ", mDescription=" + mDescription + ", mIcon=" + mIcon + ", mStartTimeMs=" + mStartTimeMs + ", mEndTimeMs=" + mEndTimeMs + '}'; } @Override public int describeContents() { return 0; } public static final @NonNull Creator<ConversationStatus> CREATOR = new Creator<ConversationStatus>() { public ConversationStatus createFromParcel(Parcel source) { return new ConversationStatus(source); } public ConversationStatus[] newArray(int size) { return new ConversationStatus[size]; } }; public static final class Builder { final String mId; final int mActivity; int mAvailability = AVAILABILITY_UNKNOWN; CharSequence mDescription; Icon mIcon; long mStartTimeMs = -1; long mEndTimeMs = -1; /** * Creates a new builder. * * @param id The unique id for this status * @param activity The type of status */ public Builder(@NonNull String id, @ActivityType @NonNull int activity) { mId = id; mActivity = activity; } public @NonNull Builder setAvailability(@Availability int availability) { mAvailability = availability; return this; } public @NonNull Builder setDescription(@Nullable CharSequence description) { mDescription = description; return this; } public @NonNull Builder setIcon(@Nullable Icon icon) { mIcon = icon; return this; } public @NonNull Builder setStartTimeMillis(long startTimeMs) { mStartTimeMs = startTimeMs; return this; } public @NonNull Builder setEndTimeMillis(long endTimeMs) { mEndTimeMs = endTimeMs; return this; } public @NonNull ConversationStatus build() { return new ConversationStatus(this); } } } core/java/android/app/people/IPeopleManager.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.app.people; import android.app.people.ConversationStatus; import android.content.pm.ParceledListSlice; import android.net.Uri; import android.os.IBinder; Loading Loading @@ -45,4 +46,9 @@ interface IPeopleManager { * conversation can't be found or no interactions have been recorded, returns 0L. */ long getLastInteraction(in String packageName, int userId, in String shortcutId); void addOrUpdateStatus(in String packageName, int userId, in String conversationId, in ConversationStatus status); void clearStatus(in String packageName, int userId, in String conversationId, in String statusId); void clearStatuses(in String packageName, int userId, in String conversationId); ParceledListSlice getStatuses(in String packageName, int userId, in String conversationId); } Loading
core/api/current.txt +47 −0 Original line number Diff line number Diff line Loading @@ -7826,6 +7826,52 @@ package android.app.job { } package android.app.people { public final class ConversationStatus implements android.os.Parcelable { method public int describeContents(); method public int getActivity(); method public int getAvailability(); method @Nullable public CharSequence getDescription(); method public long getEndTimeMillis(); method @Nullable public android.graphics.drawable.Icon getIcon(); method @NonNull public String getId(); method public long getStartTimeMillis(); method public void writeToParcel(@NonNull android.os.Parcel, int); field public static final int ACTIVITY_ANNIVERSARY = 2; // 0x2 field public static final int ACTIVITY_BIRTHDAY = 1; // 0x1 field public static final int ACTIVITY_GAME = 5; // 0x5 field public static final int ACTIVITY_LOCATION = 6; // 0x6 field public static final int ACTIVITY_MEDIA = 4; // 0x4 field public static final int ACTIVITY_NEW_STORY = 3; // 0x3 field public static final int ACTIVITY_OTHER = 0; // 0x0 field public static final int ACTIVITY_UPCOMING_BIRTHDAY = 7; // 0x7 field public static final int AVAILABILITY_AVAILABLE = 0; // 0x0 field public static final int AVAILABILITY_BUSY = 1; // 0x1 field public static final int AVAILABILITY_OFFLINE = 2; // 0x2 field public static final int AVAILABILITY_UNKNOWN = -1; // 0xffffffff field @NonNull public static final android.os.Parcelable.Creator<android.app.people.ConversationStatus> CREATOR; } public static final class ConversationStatus.Builder { ctor public ConversationStatus.Builder(@NonNull String, @NonNull int); method @NonNull public android.app.people.ConversationStatus build(); method @NonNull public android.app.people.ConversationStatus.Builder setAvailability(int); method @NonNull public android.app.people.ConversationStatus.Builder setDescription(@Nullable CharSequence); method @NonNull public android.app.people.ConversationStatus.Builder setEndTimeMillis(long); method @NonNull public android.app.people.ConversationStatus.Builder setIcon(@Nullable android.graphics.drawable.Icon); method @NonNull public android.app.people.ConversationStatus.Builder setStartTimeMillis(long); } public final class PeopleManager { method public void addOrUpdateStatus(@NonNull String, @NonNull android.app.people.ConversationStatus); method public void clearStatus(@NonNull String, @NonNull String); method public void clearStatuses(@NonNull String); method @NonNull public java.util.List<android.app.people.ConversationStatus> getStatuses(@NonNull String); } } package android.app.role { public final class RoleManager { Loading Loading @@ -10315,6 +10361,7 @@ package android.content { field public static final String NFC_SERVICE = "nfc"; field public static final String NOTIFICATION_SERVICE = "notification"; field public static final String NSD_SERVICE = "servicediscovery"; field public static final String PEOPLE_SERVICE = "people"; field public static final String POWER_SERVICE = "power"; field public static final String PRINT_SERVICE = "print"; field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1
core/java/android/app/SystemServiceRegistry.java +8 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.app.blob.BlobStoreManagerFrameworkInitializer; import android.app.contentsuggestions.ContentSuggestionsManager; import android.app.contentsuggestions.IContentSuggestionsManager; import android.app.job.JobSchedulerFrameworkInitializer; import android.app.people.PeopleManager; import android.app.prediction.AppPredictionManager; import android.app.role.RoleControllerManager; import android.app.role.RoleManager; Loading Loading @@ -586,6 +587,13 @@ public final class SystemServiceRegistry { return new NsdManager(ctx.getOuterContext(), service); }}); registerService(Context.PEOPLE_SERVICE, PeopleManager.class, new CachedServiceFetcher<PeopleManager>() { @Override public PeopleManager createService(ContextImpl ctx) throws ServiceNotFoundException { return new PeopleManager(ctx); }}); registerService(Context.POWER_SERVICE, PowerManager.class, new CachedServiceFetcher<PowerManager>() { @Override Loading
core/java/android/app/people/ConversationStatus.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /** * Copyright (c) 2021, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.app.people; parcelable ConversationStatus; No newline at end of file
core/java/android/app/people/ConversationStatus.java 0 → 100644 +240 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.app.people; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.graphics.drawable.Icon; import android.os.Parcel; import android.os.Parcelable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Objects; public final class ConversationStatus implements Parcelable { private static final String TAG = "ConversationStatus"; /** @hide */ @IntDef(prefix = { "ACTIVITY_" }, value = { ACTIVITY_OTHER, ACTIVITY_BIRTHDAY, ACTIVITY_ANNIVERSARY, ACTIVITY_NEW_STORY, ACTIVITY_MEDIA, ACTIVITY_GAME, ACTIVITY_LOCATION, ACTIVITY_UPCOMING_BIRTHDAY }) @Retention(RetentionPolicy.SOURCE) public @interface ActivityType {} public static final int ACTIVITY_OTHER = 0; public static final int ACTIVITY_BIRTHDAY = 1; public static final int ACTIVITY_ANNIVERSARY = 2; public static final int ACTIVITY_NEW_STORY = 3; public static final int ACTIVITY_MEDIA = 4; public static final int ACTIVITY_GAME = 5; public static final int ACTIVITY_LOCATION = 6; public static final int ACTIVITY_UPCOMING_BIRTHDAY = 7; /** @hide */ @IntDef(prefix = { "AVAILABILITY_" }, value = { AVAILABILITY_UNKNOWN, AVAILABILITY_AVAILABLE, AVAILABILITY_BUSY, AVAILABILITY_OFFLINE }) @Retention(RetentionPolicy.SOURCE) public @interface Availability {} public static final int AVAILABILITY_UNKNOWN = -1; public static final int AVAILABILITY_AVAILABLE = 0; public static final int AVAILABILITY_BUSY = 1; public static final int AVAILABILITY_OFFLINE = 2; private final String mId; private final int mActivity; private int mAvailability; private CharSequence mDescription; private Icon mIcon; private long mStartTimeMs; private long mEndTimeMs; private ConversationStatus(Builder b) { mId = b.mId; mActivity = b.mActivity; mAvailability = b.mAvailability; mDescription = b.mDescription; mIcon = b.mIcon; mStartTimeMs = b.mStartTimeMs; mEndTimeMs = b.mEndTimeMs; } private ConversationStatus(Parcel p) { mId = p.readString(); mActivity = p.readInt(); mAvailability = p.readInt(); mDescription = p.readCharSequence(); mIcon = p.readParcelable(Icon.class.getClassLoader()); mStartTimeMs = p.readLong(); mEndTimeMs = p.readLong(); } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeString(mId); dest.writeInt(mActivity); dest.writeInt(mAvailability); dest.writeCharSequence(mDescription); dest.writeParcelable(mIcon, flags); dest.writeLong(mStartTimeMs); dest.writeLong(mEndTimeMs); } public @NonNull String getId() { return mId; } public @ActivityType int getActivity() { return mActivity; } public @Availability int getAvailability() { return mAvailability; } public @Nullable CharSequence getDescription() { return mDescription; } public @Nullable Icon getIcon() { return mIcon; } public long getStartTimeMillis() { return mStartTimeMs; } public long getEndTimeMillis() { return mEndTimeMs; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ConversationStatus that = (ConversationStatus) o; return mActivity == that.mActivity && mAvailability == that.mAvailability && mStartTimeMs == that.mStartTimeMs && mEndTimeMs == that.mEndTimeMs && mId.equals(that.mId) && Objects.equals(mDescription, that.mDescription) && Objects.equals(mIcon, that.mIcon); } @Override public int hashCode() { return Objects.hash(mId, mActivity, mAvailability, mDescription, mIcon, mStartTimeMs, mEndTimeMs); } @Override public String toString() { return "ConversationStatus{" + "mId='" + mId + '\'' + ", mActivity=" + mActivity + ", mAvailability=" + mAvailability + ", mDescription=" + mDescription + ", mIcon=" + mIcon + ", mStartTimeMs=" + mStartTimeMs + ", mEndTimeMs=" + mEndTimeMs + '}'; } @Override public int describeContents() { return 0; } public static final @NonNull Creator<ConversationStatus> CREATOR = new Creator<ConversationStatus>() { public ConversationStatus createFromParcel(Parcel source) { return new ConversationStatus(source); } public ConversationStatus[] newArray(int size) { return new ConversationStatus[size]; } }; public static final class Builder { final String mId; final int mActivity; int mAvailability = AVAILABILITY_UNKNOWN; CharSequence mDescription; Icon mIcon; long mStartTimeMs = -1; long mEndTimeMs = -1; /** * Creates a new builder. * * @param id The unique id for this status * @param activity The type of status */ public Builder(@NonNull String id, @ActivityType @NonNull int activity) { mId = id; mActivity = activity; } public @NonNull Builder setAvailability(@Availability int availability) { mAvailability = availability; return this; } public @NonNull Builder setDescription(@Nullable CharSequence description) { mDescription = description; return this; } public @NonNull Builder setIcon(@Nullable Icon icon) { mIcon = icon; return this; } public @NonNull Builder setStartTimeMillis(long startTimeMs) { mStartTimeMs = startTimeMs; return this; } public @NonNull Builder setEndTimeMillis(long endTimeMs) { mEndTimeMs = endTimeMs; return this; } public @NonNull ConversationStatus build() { return new ConversationStatus(this); } } }
core/java/android/app/people/IPeopleManager.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.app.people; import android.app.people.ConversationStatus; import android.content.pm.ParceledListSlice; import android.net.Uri; import android.os.IBinder; Loading Loading @@ -45,4 +46,9 @@ interface IPeopleManager { * conversation can't be found or no interactions have been recorded, returns 0L. */ long getLastInteraction(in String packageName, int userId, in String shortcutId); void addOrUpdateStatus(in String packageName, int userId, in String conversationId, in ConversationStatus status); void clearStatus(in String packageName, int userId, in String conversationId, in String statusId); void clearStatuses(in String packageName, int userId, in String conversationId); ParceledListSlice getStatuses(in String packageName, int userId, in String conversationId); }