16f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki/* 26f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * Copyright (C) 2016 The Android Open Source Project 36f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * 46f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * Licensed under the Apache License, Version 2.0 (the "License"); 56f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * you may not use this file except in compliance with the License. 66f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * You may obtain a copy of the License at 76f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * 86f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * http://www.apache.org/licenses/LICENSE-2.0 96f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * 106f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * Unless required by applicable law or agreed to in writing, software 116f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * distributed under the License is distributed on an "AS IS" BASIS, 126f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * See the License for the specific language governing permissions and 146f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * limitations under the License. 156f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki */ 166f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki 176f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onukipackage android.content.pm; 186f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki 196f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onukiimport android.annotation.NonNull; 206f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onukiimport android.annotation.Nullable; 216f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onukiimport android.annotation.UserIdInt; 226f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onukiimport android.content.ComponentName; 236f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onukiimport android.content.Intent; 246f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onukiimport android.content.pm.LauncherApps.ShortcutQuery; 255504622fb01ab9774b5e73d05f86ee03a8b68ab7Makoto Onukiimport android.os.ParcelFileDescriptor; 266f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki 276f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onukiimport java.util.List; 286f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki 296f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki/** 306f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * Entry points used by {@link LauncherApps}. 316f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * 326f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * <p>No permission / argument checks will be performed inside. 336f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * Callers must check the calling app permission and the calling package name. 346f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki * @hide 356f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki */ 366f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onukipublic abstract class ShortcutServiceInternal { 376f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki public interface ShortcutChangeListener { 384dbe0ded4ae9faaef580be80184fca0749e27198Makoto Onuki void onShortcutChanged(@NonNull String packageName, @UserIdInt int userId); 396f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki } 406f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki 416f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki public abstract List<ShortcutInfo> 42d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki getShortcuts(int launcherUserId, 43d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki @NonNull String callingPackage, long changedSince, 44abe8442951ff88aa01ed882adb54fb1b3472ca3eMakoto Onuki @Nullable String packageName, @Nullable List<String> shortcutIds, 45abe8442951ff88aa01ed882adb54fb1b3472ca3eMakoto Onuki @Nullable ComponentName componentName, @ShortcutQuery.QueryFlags int flags, 466f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki int userId); 476f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki 48d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki public abstract boolean 49d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki isPinnedByCaller(int launcherUserId, @NonNull String callingPackage, 50d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki @NonNull String packageName, @NonNull String id, int userId); 51d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki 52d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki public abstract void pinShortcuts(int launcherUserId, 53d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki @NonNull String callingPackage, @NonNull String packageName, 546f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki @NonNull List<String> shortcutIds, int userId); 556f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki 56440a1ea8e2204ecb171e0187318beb2f08f6012cMakoto Onuki public abstract Intent[] createShortcutIntents( 57440a1ea8e2204ecb171e0187318beb2f08f6012cMakoto Onuki int launcherUserId, @NonNull String callingPackage, 5843204b8357d781f284037fb8b7b7050ed04a2103Makoto Onuki @NonNull String packageName, @NonNull String shortcutId, int userId); 596f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki 606f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki public abstract void addListener(@NonNull ShortcutChangeListener listener); 615504622fb01ab9774b5e73d05f86ee03a8b68ab7Makoto Onuki 62d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki public abstract int getShortcutIconResId(int launcherUserId, @NonNull String callingPackage, 63abe8442951ff88aa01ed882adb54fb1b3472ca3eMakoto Onuki @NonNull String packageName, @NonNull String shortcutId, int userId); 645504622fb01ab9774b5e73d05f86ee03a8b68ab7Makoto Onuki 65d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki public abstract ParcelFileDescriptor getShortcutIconFd(int launcherUserId, 66d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki @NonNull String callingPackage, 67abe8442951ff88aa01ed882adb54fb1b3472ca3eMakoto Onuki @NonNull String packageName, @NonNull String shortcutId, int userId); 682d5b465fa9235e66ec176f6d6ffaaa0c18143e41Makoto Onuki 69d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki public abstract boolean hasShortcutHostPermission(int launcherUserId, 70d99c6f04bbb68f8be78f2c3ca625a3a8d5645275Makoto Onuki @NonNull String callingPackage); 716f7362d92573e4ae693bc513dca586d6a4eb087bMakoto Onuki} 72