Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1d616f0d authored by Makoto Onuki's avatar Makoto Onuki Committed by Android (Google) Code Review
Browse files

Merge "ShortcutManager: Address API review feedback." into nyc-dev

parents 65136ac6 b6d3523d
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -9499,8 +9499,6 @@ package android.content.pm {
    method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle);
    method public android.os.ParcelFileDescriptor getShortcutIconFd(android.content.pm.ShortcutInfo);
    method public android.os.ParcelFileDescriptor getShortcutIconFd(java.lang.String, java.lang.String, android.os.UserHandle);
    method public int getShortcutIconResId(android.content.pm.ShortcutInfo);
    method public int getShortcutIconResId(java.lang.String, java.lang.String, android.os.UserHandle);
    method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle);
    method public boolean hasShortcutHostPermission();
    method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle);
@@ -10041,7 +10039,9 @@ package android.content.pm {
  public final class ShortcutInfo implements android.os.Parcelable {
    method public int describeContents();
    method public android.content.ComponentName getActivityComponent();
    method public java.util.List<java.lang.String> getCategories();
    method public android.os.PersistableBundle getExtras();
    method public int getIconResourceId();
    method public java.lang.String getId();
    method public android.content.Intent getIntent();
    method public long getLastChangedTimestamp();
@@ -10065,12 +10065,14 @@ package android.content.pm {
    field public static final int FLAG_HAS_ICON_RES = 4; // 0x4
    field public static final int FLAG_KEY_FIELDS_ONLY = 16; // 0x10
    field public static final int FLAG_PINNED = 2; // 0x2
    field public static final java.lang.String SHORTCUT_CATEGORY_CONVERSATION = "android.shortcut.conversation";
  }
  public static class ShortcutInfo.Builder {
    ctor public ShortcutInfo.Builder(android.content.Context);
    method public android.content.pm.ShortcutInfo build();
    method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName);
    method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>);
    method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle);
    method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon);
    method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String);
@@ -10081,15 +10083,15 @@ package android.content.pm {
  }
  public class ShortcutManager {
    method public boolean addDynamicShortcut(android.content.pm.ShortcutInfo);
    method public void deleteAllDynamicShortcuts();
    method public void deleteDynamicShortcut(java.lang.String);
    method public boolean addDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
    method public java.util.List<android.content.pm.ShortcutInfo> getDynamicShortcuts();
    method public int getIconMaxDimensions();
    method public int getMaxDynamicShortcutCount();
    method public java.util.List<android.content.pm.ShortcutInfo> getPinnedShortcuts();
    method public long getRateLimitResetTime();
    method public int getRemainingCallCount();
    method public void removeAllDynamicShortcuts();
    method public void removeDynamicShortcuts(java.util.List<java.lang.String>);
    method public boolean setDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
    method public boolean updateShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
  }
+7 −5
Original line number Diff line number Diff line
@@ -9837,8 +9837,6 @@ package android.content.pm {
    method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle);
    method public android.os.ParcelFileDescriptor getShortcutIconFd(android.content.pm.ShortcutInfo);
    method public android.os.ParcelFileDescriptor getShortcutIconFd(java.lang.String, java.lang.String, android.os.UserHandle);
    method public int getShortcutIconResId(android.content.pm.ShortcutInfo);
    method public int getShortcutIconResId(java.lang.String, java.lang.String, android.os.UserHandle);
    method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle);
    method public boolean hasShortcutHostPermission();
    method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle);
@@ -10441,7 +10439,9 @@ package android.content.pm {
  public final class ShortcutInfo implements android.os.Parcelable {
    method public int describeContents();
    method public android.content.ComponentName getActivityComponent();
    method public java.util.List<java.lang.String> getCategories();
    method public android.os.PersistableBundle getExtras();
    method public int getIconResourceId();
    method public java.lang.String getId();
    method public android.content.Intent getIntent();
    method public long getLastChangedTimestamp();
@@ -10465,12 +10465,14 @@ package android.content.pm {
    field public static final int FLAG_HAS_ICON_RES = 4; // 0x4
    field public static final int FLAG_KEY_FIELDS_ONLY = 16; // 0x10
    field public static final int FLAG_PINNED = 2; // 0x2
    field public static final java.lang.String SHORTCUT_CATEGORY_CONVERSATION = "android.shortcut.conversation";
  }
  public static class ShortcutInfo.Builder {
    ctor public ShortcutInfo.Builder(android.content.Context);
    method public android.content.pm.ShortcutInfo build();
    method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName);
    method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>);
    method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle);
    method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon);
    method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String);
@@ -10481,15 +10483,15 @@ package android.content.pm {
  }
  public class ShortcutManager {
    method public boolean addDynamicShortcut(android.content.pm.ShortcutInfo);
    method public void deleteAllDynamicShortcuts();
    method public void deleteDynamicShortcut(java.lang.String);
    method public boolean addDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
    method public java.util.List<android.content.pm.ShortcutInfo> getDynamicShortcuts();
    method public int getIconMaxDimensions();
    method public int getMaxDynamicShortcutCount();
    method public java.util.List<android.content.pm.ShortcutInfo> getPinnedShortcuts();
    method public long getRateLimitResetTime();
    method public int getRemainingCallCount();
    method public void removeAllDynamicShortcuts();
    method public void removeDynamicShortcuts(java.util.List<java.lang.String>);
    method public boolean setDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
    method public boolean updateShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
  }
+7 −5
Original line number Diff line number Diff line
@@ -9509,8 +9509,6 @@ package android.content.pm {
    method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle);
    method public android.os.ParcelFileDescriptor getShortcutIconFd(android.content.pm.ShortcutInfo);
    method public android.os.ParcelFileDescriptor getShortcutIconFd(java.lang.String, java.lang.String, android.os.UserHandle);
    method public int getShortcutIconResId(android.content.pm.ShortcutInfo);
    method public int getShortcutIconResId(java.lang.String, java.lang.String, android.os.UserHandle);
    method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle);
    method public boolean hasShortcutHostPermission();
    method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle);
@@ -10052,7 +10050,9 @@ package android.content.pm {
  public final class ShortcutInfo implements android.os.Parcelable {
    method public int describeContents();
    method public android.content.ComponentName getActivityComponent();
    method public java.util.List<java.lang.String> getCategories();
    method public android.os.PersistableBundle getExtras();
    method public int getIconResourceId();
    method public java.lang.String getId();
    method public android.content.Intent getIntent();
    method public long getLastChangedTimestamp();
@@ -10076,12 +10076,14 @@ package android.content.pm {
    field public static final int FLAG_HAS_ICON_RES = 4; // 0x4
    field public static final int FLAG_KEY_FIELDS_ONLY = 16; // 0x10
    field public static final int FLAG_PINNED = 2; // 0x2
    field public static final java.lang.String SHORTCUT_CATEGORY_CONVERSATION = "android.shortcut.conversation";
  }
  public static class ShortcutInfo.Builder {
    ctor public ShortcutInfo.Builder(android.content.Context);
    method public android.content.pm.ShortcutInfo build();
    method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName);
    method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>);
    method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle);
    method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon);
    method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String);
@@ -10093,15 +10095,15 @@ package android.content.pm {
  public class ShortcutManager {
    ctor public ShortcutManager(android.content.Context);
    method public boolean addDynamicShortcut(android.content.pm.ShortcutInfo);
    method public void deleteAllDynamicShortcuts();
    method public void deleteDynamicShortcut(java.lang.String);
    method public boolean addDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
    method public java.util.List<android.content.pm.ShortcutInfo> getDynamicShortcuts();
    method public int getIconMaxDimensions();
    method public int getMaxDynamicShortcutCount();
    method public java.util.List<android.content.pm.ShortcutInfo> getPinnedShortcuts();
    method public long getRateLimitResetTime();
    method public int getRemainingCallCount();
    method public void removeAllDynamicShortcuts();
    method public void removeDynamicShortcuts(java.util.List<java.lang.String>);
    method public boolean setDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
    method public boolean updateShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
  }
+4 −3
Original line number Diff line number Diff line
@@ -28,11 +28,12 @@ interface IShortcutService {

    ParceledListSlice getDynamicShortcuts(String packageName, int userId);

    boolean addDynamicShortcut(String packageName, in ShortcutInfo shortcutInfo, int userId);
    boolean addDynamicShortcuts(String packageName, in ParceledListSlice shortcutInfoList,
            int userId);

    void deleteDynamicShortcut(String packageName, in String shortcutId, int userId);
    void removeDynamicShortcuts(String packageName, in List shortcutIds, int userId);

    void deleteAllDynamicShortcuts(String packageName, int userId);
    void removeAllDynamicShortcuts(String packageName, int userId);

    ParceledListSlice getPinnedShortcuts(String packageName, int userId);

+10 −28
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.util.Log;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

@@ -490,43 +491,24 @@ public class LauncherApps {
    }

    /**
     * Return the icon resource ID, if {@code shortcut} has one
     * (i.e. when {@link ShortcutInfo#hasIconResource()} returns {@code true}).
     *
     * <p>Callers must be allowed to access the shortcut information, as defined in {@link
     * #hasShortcutHostPermission()}.
     *
     * @param shortcut The target shortcut.
     * @hide kept for testing.
     */
    public int getShortcutIconResId(@NonNull ShortcutInfo shortcut) {
        return getShortcutIconResId(shortcut.getPackageName(), shortcut.getId(),
                shortcut.getUserId());
        return shortcut.getIconResourceId();
    }

    /**
     * Return the icon resource ID, if {@code shortcut} has one
     * (i.e. when {@link ShortcutInfo#hasIconResource()} returns {@code true}).
     *
     * <p>Callers must be allowed to access the shortcut information, as defined in {@link
     * #hasShortcutHostPermission()}.
     *
     * @param packageName The target package name.
     * @param shortcutId The ID of the shortcut to lad rom.
     * @param user The UserHandle of the profile.
     * @hide kept for testing.
     */
    public int getShortcutIconResId(@NonNull String packageName, @NonNull String shortcutId,
            @NonNull UserHandle user) {
        return getShortcutIconResId(packageName, shortcutId, user.getIdentifier());
    }
        final ShortcutQuery q = new ShortcutQuery();
        q.setPackage(packageName);
        q.setShortcutIds(Arrays.asList(shortcutId));
        q.setQueryFlags(ShortcutQuery.FLAG_GET_DYNAMIC | ShortcutQuery.FLAG_GET_PINNED);
        final List<ShortcutInfo> shortcuts = getShortcuts(q, user);

    private int getShortcutIconResId(@NonNull String packageName, @NonNull String shortcutId,
            int userId) {
        try {
            return mService.getShortcutIconResId(mContext.getPackageName(),
                    packageName, shortcutId, userId);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
        return shortcuts.size() > 0 ? shortcuts.get(0).getIconResourceId() : 0;
    }

    /**
Loading