Loading core/api/system-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -2066,6 +2066,10 @@ package android.content.pm { field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.LauncherApps.AppUsageLimit> CREATOR; } public static class LauncherApps.ShortcutQuery { field public static final int FLAG_GET_PERSONS_DATA = 2048; // 0x800 } public class PackageInstaller { method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setPermissionsResult(int, boolean); field public static final int DATA_LOADER_TYPE_INCREMENTAL = 2; // 0x2 Loading core/java/android/content/pm/LauncherApps.java +11 −0 Original line number Diff line number Diff line Loading @@ -433,6 +433,16 @@ public class LauncherApps { */ public static final int FLAG_GET_KEY_FIELDS_ONLY = 1 << 2; /** * Populate the persons field in the result. See {@link ShortcutInfo#getPersons()}. * * <p>The caller must have the system {@code ACCESS_SHORTCUTS} permission. * * @hide */ @SystemApi public static final int FLAG_GET_PERSONS_DATA = 1 << 11; /** @hide */ @IntDef(flag = true, prefix = { "FLAG_" }, value = { FLAG_MATCH_DYNAMIC, Loading @@ -440,6 +450,7 @@ public class LauncherApps { FLAG_MATCH_MANIFEST, FLAG_MATCH_CACHED, FLAG_GET_KEY_FIELDS_ONLY, FLAG_GET_PERSONS_DATA, }) @Retention(RetentionPolicy.SOURCE) public @interface QueryFlags {} Loading services/core/java/com/android/server/pm/LauncherAppsService.java +3 −0 Original line number Diff line number Diff line Loading @@ -774,6 +774,9 @@ public class LauncherAppsService extends SystemService { throw new IllegalArgumentException( "To query by locus ID, package name must also be set"); } if ((query.getQueryFlags() & ShortcutQuery.FLAG_GET_PERSONS_DATA) != 0) { ensureStrictAccessShortcutsPermission(callingPackage); } // TODO(b/29399275): Eclipse compiler requires explicit List<ShortcutInfo> cast below. return new ParceledListSlice<>((List<ShortcutInfo>) Loading services/core/java/com/android/server/pm/ShortcutService.java +8 −4 Original line number Diff line number Diff line Loading @@ -2837,10 +2837,14 @@ public class ShortcutService extends IShortcutService.Stub { int queryFlags, int userId, int callingPid, int callingUid) { final ArrayList<ShortcutInfo> ret = new ArrayList<>(); final boolean cloneKeyFieldOnly = ((queryFlags & ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY) != 0); final int cloneFlag = cloneKeyFieldOnly ? ShortcutInfo.CLONE_REMOVE_NON_KEY_INFO : ShortcutInfo.CLONE_REMOVE_FOR_LAUNCHER; int flags = ShortcutInfo.CLONE_REMOVE_FOR_LAUNCHER; if ((queryFlags & ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY) != 0) { flags = ShortcutInfo.CLONE_REMOVE_NON_KEY_INFO; } else if ((queryFlags & ShortcutQuery.FLAG_GET_PERSONS_DATA) != 0) { flags &= ~ShortcutInfo.CLONE_REMOVE_PERSON; } final int cloneFlag = flags; if (packageName == null) { shortcutIds = null; // LauncherAppsService already threw for it though. } Loading services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -586,7 +586,7 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { @Override boolean injectHasAccessShortcutsPermission(int callingPid, int callingUid) { return true; return mInjectCheckAccessShortcutsPermission; } @Override Loading Loading
core/api/system-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -2066,6 +2066,10 @@ package android.content.pm { field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.LauncherApps.AppUsageLimit> CREATOR; } public static class LauncherApps.ShortcutQuery { field public static final int FLAG_GET_PERSONS_DATA = 2048; // 0x800 } public class PackageInstaller { method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setPermissionsResult(int, boolean); field public static final int DATA_LOADER_TYPE_INCREMENTAL = 2; // 0x2 Loading
core/java/android/content/pm/LauncherApps.java +11 −0 Original line number Diff line number Diff line Loading @@ -433,6 +433,16 @@ public class LauncherApps { */ public static final int FLAG_GET_KEY_FIELDS_ONLY = 1 << 2; /** * Populate the persons field in the result. See {@link ShortcutInfo#getPersons()}. * * <p>The caller must have the system {@code ACCESS_SHORTCUTS} permission. * * @hide */ @SystemApi public static final int FLAG_GET_PERSONS_DATA = 1 << 11; /** @hide */ @IntDef(flag = true, prefix = { "FLAG_" }, value = { FLAG_MATCH_DYNAMIC, Loading @@ -440,6 +450,7 @@ public class LauncherApps { FLAG_MATCH_MANIFEST, FLAG_MATCH_CACHED, FLAG_GET_KEY_FIELDS_ONLY, FLAG_GET_PERSONS_DATA, }) @Retention(RetentionPolicy.SOURCE) public @interface QueryFlags {} Loading
services/core/java/com/android/server/pm/LauncherAppsService.java +3 −0 Original line number Diff line number Diff line Loading @@ -774,6 +774,9 @@ public class LauncherAppsService extends SystemService { throw new IllegalArgumentException( "To query by locus ID, package name must also be set"); } if ((query.getQueryFlags() & ShortcutQuery.FLAG_GET_PERSONS_DATA) != 0) { ensureStrictAccessShortcutsPermission(callingPackage); } // TODO(b/29399275): Eclipse compiler requires explicit List<ShortcutInfo> cast below. return new ParceledListSlice<>((List<ShortcutInfo>) Loading
services/core/java/com/android/server/pm/ShortcutService.java +8 −4 Original line number Diff line number Diff line Loading @@ -2837,10 +2837,14 @@ public class ShortcutService extends IShortcutService.Stub { int queryFlags, int userId, int callingPid, int callingUid) { final ArrayList<ShortcutInfo> ret = new ArrayList<>(); final boolean cloneKeyFieldOnly = ((queryFlags & ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY) != 0); final int cloneFlag = cloneKeyFieldOnly ? ShortcutInfo.CLONE_REMOVE_NON_KEY_INFO : ShortcutInfo.CLONE_REMOVE_FOR_LAUNCHER; int flags = ShortcutInfo.CLONE_REMOVE_FOR_LAUNCHER; if ((queryFlags & ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY) != 0) { flags = ShortcutInfo.CLONE_REMOVE_NON_KEY_INFO; } else if ((queryFlags & ShortcutQuery.FLAG_GET_PERSONS_DATA) != 0) { flags &= ~ShortcutInfo.CLONE_REMOVE_PERSON; } final int cloneFlag = flags; if (packageName == null) { shortcutIds = null; // LauncherAppsService already threw for it though. } Loading
services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -586,7 +586,7 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { @Override boolean injectHasAccessShortcutsPermission(int callingPid, int callingUid) { return true; return mInjectCheckAccessShortcutsPermission; } @Override Loading