Loading api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -10343,6 +10343,7 @@ package android.content { field public static final java.lang.String EXTRA_RETURN_RESULT = "android.intent.extra.RETURN_RESULT"; field public static final deprecated java.lang.String EXTRA_SHORTCUT_ICON = "android.intent.extra.shortcut.ICON"; field public static final deprecated java.lang.String EXTRA_SHORTCUT_ICON_RESOURCE = "android.intent.extra.shortcut.ICON_RESOURCE"; field public static final java.lang.String EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID"; field public static final deprecated java.lang.String EXTRA_SHORTCUT_INTENT = "android.intent.extra.shortcut.INTENT"; field public static final deprecated java.lang.String EXTRA_SHORTCUT_NAME = "android.intent.extra.shortcut.NAME"; field public static final java.lang.String EXTRA_SHUTDOWN_USERSPACE_ONLY = "android.intent.extra.SHUTDOWN_USERSPACE_ONLY"; api/system-current.txt +12 −0 Original line number Diff line number Diff line Loading @@ -1351,6 +1351,18 @@ package android.content.pm { field public int requestRes; } public class ShortcutManager { method public java.util.List<android.content.pm.ShortcutManager.ShareShortcutInfo> getShareTargets(android.content.IntentFilter); } public static final class ShortcutManager.ShareShortcutInfo implements android.os.Parcelable { method public int describeContents(); method public android.content.pm.ShortcutInfo getShortcutInfo(); method public android.content.ComponentName getTargetComponent(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.content.pm.ShortcutManager.ShareShortcutInfo> CREATOR; } public final class SuspendDialogInfo implements android.os.Parcelable { method public int describeContents(); method public void writeToParcel(android.os.Parcel, int); Loading core/java/android/content/Intent.java +12 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.ComponentInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ShortcutInfo; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Rect; Loading Loading @@ -1905,6 +1906,17 @@ public class Intent implements Parcelable, Cloneable { */ public static final String EXTRA_LAUNCHER_EXTRAS = "android.intent.extra.LAUNCHER_EXTRAS"; /** * Intent extra: ID of the shortcut used to send the share intent. * * @see ShortcutInfo#getId() * * <p> * Type: String * </p> */ public static final String EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID"; /** * Activity action: Launch UI to manage which apps have a given permission. * <p> Loading core/java/android/content/pm/IShortcutService.aidl +4 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.content.pm; import android.content.Intent; import android.content.IntentFilter; import android.content.IntentSender; import android.content.pm.ParceledListSlice; import android.content.pm.ShortcutInfo; Loading Loading @@ -72,4 +73,7 @@ interface IShortcutService { void applyRestore(in byte[] payload, int user); boolean isRequestPinItemSupported(int user, int requestType); // System API used by framework's ShareSheet (ChooserActivity) ParceledListSlice getShareTargets(String packageName, in IntentFilter filter, int userId); } No newline at end of file core/java/android/content/pm/ShortcutManager.java +86 −0 Original line number Diff line number Diff line Loading @@ -17,17 +17,22 @@ package android.content.pm; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.annotation.UserIdInt; import android.app.usage.UsageStatsManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.IntentSender; import android.graphics.drawable.AdaptiveIconDrawable; import android.os.Build; import android.os.Build.VERSION_CODES; import android.os.Parcel; import android.os.Parcelable; import android.os.RemoteException; import android.os.ServiceManager; Loading Loading @@ -549,4 +554,85 @@ public class ShortcutManager { protected int injectMyUserId() { return mContext.getUserId(); } /** * Used by framework's ShareSheet (ChooserActivity.java) to retrieve all of the direct share * targets that match the given IntentFilter. * * @param filter IntentFilter that will be used to retrieve the matching {@link ShortcutInfo}s. * @return List of {@link ShareShortcutInfo}s that match the given IntentFilter. * @hide */ @NonNull @SystemApi public List<ShareShortcutInfo> getShareTargets(@NonNull IntentFilter filter) { try { return mService.getShareTargets(mContext.getPackageName(), filter, injectMyUserId()).getList(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Represents the result of a query return by {@link #getShareTargets(IntentFilter)}. * * @hide */ @SystemApi public static final class ShareShortcutInfo implements Parcelable { private final ShortcutInfo mShortcutInfo; private final ComponentName mTargetComponent; /** * @hide */ public ShareShortcutInfo(@NonNull ShortcutInfo shortcutInfo, @NonNull ComponentName targetComponent) { if (shortcutInfo == null) { throw new NullPointerException("shortcut info is null"); } if (targetComponent == null) { throw new NullPointerException("target component is null"); } mShortcutInfo = shortcutInfo; mTargetComponent = targetComponent; } private ShareShortcutInfo(Parcel in) { mShortcutInfo = in.readParcelable(ShortcutInfo.class.getClassLoader()); mTargetComponent = in.readParcelable(ComponentName.class.getClassLoader()); } public ShortcutInfo getShortcutInfo() { return mShortcutInfo; } public ComponentName getTargetComponent() { return mTargetComponent; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(mShortcutInfo, flags); dest.writeParcelable(mTargetComponent, flags); } public static final Parcelable.Creator<ShareShortcutInfo> CREATOR = new Parcelable.Creator<ShareShortcutInfo>() { public ShareShortcutInfo createFromParcel(Parcel in) { return new ShareShortcutInfo(in); } public ShareShortcutInfo[] newArray(int size) { return new ShareShortcutInfo[size]; } }; } } Loading
api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -10343,6 +10343,7 @@ package android.content { field public static final java.lang.String EXTRA_RETURN_RESULT = "android.intent.extra.RETURN_RESULT"; field public static final deprecated java.lang.String EXTRA_SHORTCUT_ICON = "android.intent.extra.shortcut.ICON"; field public static final deprecated java.lang.String EXTRA_SHORTCUT_ICON_RESOURCE = "android.intent.extra.shortcut.ICON_RESOURCE"; field public static final java.lang.String EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID"; field public static final deprecated java.lang.String EXTRA_SHORTCUT_INTENT = "android.intent.extra.shortcut.INTENT"; field public static final deprecated java.lang.String EXTRA_SHORTCUT_NAME = "android.intent.extra.shortcut.NAME"; field public static final java.lang.String EXTRA_SHUTDOWN_USERSPACE_ONLY = "android.intent.extra.SHUTDOWN_USERSPACE_ONLY";
api/system-current.txt +12 −0 Original line number Diff line number Diff line Loading @@ -1351,6 +1351,18 @@ package android.content.pm { field public int requestRes; } public class ShortcutManager { method public java.util.List<android.content.pm.ShortcutManager.ShareShortcutInfo> getShareTargets(android.content.IntentFilter); } public static final class ShortcutManager.ShareShortcutInfo implements android.os.Parcelable { method public int describeContents(); method public android.content.pm.ShortcutInfo getShortcutInfo(); method public android.content.ComponentName getTargetComponent(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.content.pm.ShortcutManager.ShareShortcutInfo> CREATOR; } public final class SuspendDialogInfo implements android.os.Parcelable { method public int describeContents(); method public void writeToParcel(android.os.Parcel, int); Loading
core/java/android/content/Intent.java +12 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.ComponentInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ShortcutInfo; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Rect; Loading Loading @@ -1905,6 +1906,17 @@ public class Intent implements Parcelable, Cloneable { */ public static final String EXTRA_LAUNCHER_EXTRAS = "android.intent.extra.LAUNCHER_EXTRAS"; /** * Intent extra: ID of the shortcut used to send the share intent. * * @see ShortcutInfo#getId() * * <p> * Type: String * </p> */ public static final String EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID"; /** * Activity action: Launch UI to manage which apps have a given permission. * <p> Loading
core/java/android/content/pm/IShortcutService.aidl +4 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.content.pm; import android.content.Intent; import android.content.IntentFilter; import android.content.IntentSender; import android.content.pm.ParceledListSlice; import android.content.pm.ShortcutInfo; Loading Loading @@ -72,4 +73,7 @@ interface IShortcutService { void applyRestore(in byte[] payload, int user); boolean isRequestPinItemSupported(int user, int requestType); // System API used by framework's ShareSheet (ChooserActivity) ParceledListSlice getShareTargets(String packageName, in IntentFilter filter, int userId); } No newline at end of file
core/java/android/content/pm/ShortcutManager.java +86 −0 Original line number Diff line number Diff line Loading @@ -17,17 +17,22 @@ package android.content.pm; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.annotation.UserIdInt; import android.app.usage.UsageStatsManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.IntentSender; import android.graphics.drawable.AdaptiveIconDrawable; import android.os.Build; import android.os.Build.VERSION_CODES; import android.os.Parcel; import android.os.Parcelable; import android.os.RemoteException; import android.os.ServiceManager; Loading Loading @@ -549,4 +554,85 @@ public class ShortcutManager { protected int injectMyUserId() { return mContext.getUserId(); } /** * Used by framework's ShareSheet (ChooserActivity.java) to retrieve all of the direct share * targets that match the given IntentFilter. * * @param filter IntentFilter that will be used to retrieve the matching {@link ShortcutInfo}s. * @return List of {@link ShareShortcutInfo}s that match the given IntentFilter. * @hide */ @NonNull @SystemApi public List<ShareShortcutInfo> getShareTargets(@NonNull IntentFilter filter) { try { return mService.getShareTargets(mContext.getPackageName(), filter, injectMyUserId()).getList(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Represents the result of a query return by {@link #getShareTargets(IntentFilter)}. * * @hide */ @SystemApi public static final class ShareShortcutInfo implements Parcelable { private final ShortcutInfo mShortcutInfo; private final ComponentName mTargetComponent; /** * @hide */ public ShareShortcutInfo(@NonNull ShortcutInfo shortcutInfo, @NonNull ComponentName targetComponent) { if (shortcutInfo == null) { throw new NullPointerException("shortcut info is null"); } if (targetComponent == null) { throw new NullPointerException("target component is null"); } mShortcutInfo = shortcutInfo; mTargetComponent = targetComponent; } private ShareShortcutInfo(Parcel in) { mShortcutInfo = in.readParcelable(ShortcutInfo.class.getClassLoader()); mTargetComponent = in.readParcelable(ComponentName.class.getClassLoader()); } public ShortcutInfo getShortcutInfo() { return mShortcutInfo; } public ComponentName getTargetComponent() { return mTargetComponent; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(mShortcutInfo, flags); dest.writeParcelable(mTargetComponent, flags); } public static final Parcelable.Creator<ShareShortcutInfo> CREATOR = new Parcelable.Creator<ShareShortcutInfo>() { public ShareShortcutInfo createFromParcel(Parcel in) { return new ShareShortcutInfo(in); } public ShareShortcutInfo[] newArray(int size) { return new ShareShortcutInfo[size]; } }; } }