2 * Copyright (C) 2015 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package com.android.layoutlib.bridge.android;
19 import android.annotation.NonNull;
20 import android.app.PackageInstallObserver;
21 import android.content.ComponentName;
22 import android.content.Intent;
23 import android.content.IntentFilter;
24 import android.content.IntentSender;
25 import android.content.pm.ActivityInfo;
26 import android.content.pm.ApplicationInfo;
27 import android.content.pm.ChangedPackages;
28 import android.content.pm.InstantAppInfo;
29 import android.content.pm.FeatureInfo;
30 import android.content.pm.IPackageDataObserver;
31 import android.content.pm.IPackageDeleteObserver;
32 import android.content.pm.IPackageInstallObserver;
33 import android.content.pm.IPackageStatsObserver;
34 import android.content.pm.InstrumentationInfo;
35 import android.content.pm.IntentFilterVerificationInfo;
36 import android.content.pm.KeySet;
37 import android.content.pm.PackageInfo;
38 import android.content.pm.PackageInstaller;
39 import android.content.pm.PackageItemInfo;
40 import android.content.pm.PackageManager;
41 import android.content.pm.PermissionGroupInfo;
42 import android.content.pm.PermissionInfo;
43 import android.content.pm.ProviderInfo;
44 import android.content.pm.ResolveInfo;
45 import android.content.pm.ServiceInfo;
46 import android.content.pm.SharedLibraryInfo;
47 import android.content.pm.VerifierDeviceIdentity;
48 import android.content.pm.VersionedPackage;
49 import android.content.res.Resources;
50 import android.content.res.XmlResourceParser;
51 import android.graphics.Rect;
52 import android.graphics.drawable.ColorDrawable;
53 import android.graphics.drawable.Drawable;
54 import android.net.Uri;
55 import android.os.Handler;
56 import android.os.UserHandle;
57 import android.os.storage.VolumeInfo;
58 import java.util.List;
61 * An implementation of {@link PackageManager} that does nothing.
63 @SuppressWarnings("deprecation")
64 public class BridgePackageManager extends PackageManager {
66 public PackageInfo getPackageInfo(String packageName, int flags) throws NameNotFoundException {
71 public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId)
72 throws NameNotFoundException {
77 public PackageInfo getPackageInfo(VersionedPackage versionedPackage,
78 @PackageInfoFlags int flags) throws NameNotFoundException {
83 public List<SharedLibraryInfo> getSharedLibraries(@InstallFlags int flags) {
88 public List<SharedLibraryInfo> getSharedLibrariesAsUser(@InstallFlags int flags,
94 public String[] currentToCanonicalPackageNames(String[] names) {
99 public String[] canonicalToCurrentPackageNames(String[] names) {
100 return new String[0];
104 public Intent getLaunchIntentForPackage(String packageName) {
109 public Intent getLeanbackLaunchIntentForPackage(String packageName) {
114 public int[] getPackageGids(String packageName) throws NameNotFoundException {
119 public int[] getPackageGids(String packageName, int flags) throws NameNotFoundException {
124 public int getPackageUid(String packageName, int flags) throws NameNotFoundException {
129 public int getPackageUidAsUser(String packageName, int userHandle) throws NameNotFoundException {
134 public int getPackageUidAsUser(String packageName, int flags, int userHandle) throws NameNotFoundException {
139 public PermissionInfo getPermissionInfo(String name, int flags) throws NameNotFoundException {
144 public List<PermissionInfo> queryPermissionsByGroup(String group, int flags)
145 throws NameNotFoundException {
150 public boolean isPermissionReviewModeEnabled() {
155 public PermissionGroupInfo getPermissionGroupInfo(String name, int flags)
156 throws NameNotFoundException {
161 public List<PermissionGroupInfo> getAllPermissionGroups(int flags) {
166 public ApplicationInfo getApplicationInfo(String packageName, int flags)
167 throws NameNotFoundException {
172 public ApplicationInfo getApplicationInfoAsUser(String packageName, int flags, int userId)
173 throws NameNotFoundException {
178 public ActivityInfo getActivityInfo(ComponentName component, int flags)
179 throws NameNotFoundException {
184 public ActivityInfo getReceiverInfo(ComponentName component, int flags)
185 throws NameNotFoundException {
190 public ServiceInfo getServiceInfo(ComponentName component, int flags)
191 throws NameNotFoundException {
196 public ProviderInfo getProviderInfo(ComponentName component, int flags)
197 throws NameNotFoundException {
202 public List<PackageInfo> getInstalledPackages(int flags) {
207 public List<PackageInfo> getPackagesHoldingPermissions(String[] permissions, int flags) {
212 public List<PackageInfo> getInstalledPackagesAsUser(int flags, int userId) {
217 public int checkPermission(String permName, String pkgName) {
222 public boolean isPermissionRevokedByPolicy(String permName, String pkgName) {
227 public String getPermissionControllerPackageName() {
232 public boolean addPermission(PermissionInfo info) {
237 public boolean addPermissionAsync(PermissionInfo info) {
242 public void removePermission(String name) {
246 public void grantRuntimePermission(String packageName, String permissionName, UserHandle user) {
250 public void revokeRuntimePermission(String packageName, String permissionName,
255 public int getPermissionFlags(String permissionName, String packageName, UserHandle user) {
260 public void updatePermissionFlags(String permissionName, String packageName, int flagMask,
261 int flagValues, UserHandle user) {
265 public boolean shouldShowRequestPermissionRationale(String permission) {
270 public int checkSignatures(String pkg1, String pkg2) {
275 public int checkSignatures(int uid1, int uid2) {
280 public String[] getPackagesForUid(int uid) {
281 return new String[0];
285 public String getNameForUid(int uid) {
290 public int getUidForSharedUser(String sharedUserName) throws NameNotFoundException {
295 public List<ApplicationInfo> getInstalledApplications(int flags) {
300 public List<ApplicationInfo> getInstalledApplicationsAsUser(int flags, int userId) {
305 public List<InstantAppInfo> getInstantApps() {
310 public Drawable getInstantAppIcon(String packageName) {
311 assert false : "Unsupported operation";
312 return new ColorDrawable();
316 public byte[] getInstantAppCookie() {
321 public boolean isInstantApp() {
326 public boolean isInstantApp(String packageName) {
331 public int getInstantAppCookieMaxSize() {
336 public boolean setInstantAppCookie(@NonNull byte[] cookie) {
341 public String[] getSystemSharedLibraryNames() {
342 return new String[0];
346 public String getServicesSystemSharedLibraryPackageName() {
351 public @NonNull String getSharedSystemSharedLibraryPackageName() {
356 public FeatureInfo[] getSystemAvailableFeatures() {
357 return new FeatureInfo[0];
361 public boolean hasSystemFeature(String name) {
366 public boolean hasSystemFeature(String name, int version) {
371 public ResolveInfo resolveActivity(Intent intent, int flags) {
376 public ResolveInfo resolveActivityAsUser(Intent intent, int flags, int userId) {
381 public List<ResolveInfo> queryIntentActivities(Intent intent, int flags) {
386 public List<ResolveInfo> queryIntentActivitiesAsUser(Intent intent, int flags, int userId) {
391 public List<ResolveInfo> queryIntentActivityOptions(ComponentName caller, Intent[] specifics,
392 Intent intent, int flags) {
397 public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags) {
402 public List<ResolveInfo> queryBroadcastReceiversAsUser(Intent intent, int flags, int userId) {
407 public ResolveInfo resolveService(Intent intent, int flags) {
412 public List<ResolveInfo> queryIntentServices(Intent intent, int flags) {
417 public List<ResolveInfo> queryIntentServicesAsUser(Intent intent, int flags, int userId) {
422 public List<ResolveInfo> queryIntentContentProvidersAsUser(Intent intent, int flags,
428 public List<ResolveInfo> queryIntentContentProviders(Intent intent, int flags) {
433 public ProviderInfo resolveContentProvider(String name, int flags) {
438 public ProviderInfo resolveContentProviderAsUser(String name, int flags, int userId) {
443 public List<ProviderInfo> queryContentProviders(String processName, int uid, int flags) {
448 public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags)
449 throws NameNotFoundException {
454 public List<InstrumentationInfo> queryInstrumentation(String targetPackage, int flags) {
459 public Drawable getDrawable(String packageName, int resid, ApplicationInfo appInfo) {
464 public Drawable getActivityIcon(ComponentName activityName) throws NameNotFoundException {
469 public Drawable getActivityIcon(Intent intent) throws NameNotFoundException {
474 public Drawable getActivityBanner(ComponentName activityName) throws NameNotFoundException {
479 public Drawable getActivityBanner(Intent intent) throws NameNotFoundException {
484 public Drawable getDefaultActivityIcon() {
489 public Drawable getApplicationIcon(ApplicationInfo info) {
494 public Drawable getApplicationIcon(String packageName) throws NameNotFoundException {
499 public Drawable getApplicationBanner(ApplicationInfo info) {
504 public Drawable getApplicationBanner(String packageName) throws NameNotFoundException {
509 public Drawable getActivityLogo(ComponentName activityName) throws NameNotFoundException {
514 public Drawable getActivityLogo(Intent intent) throws NameNotFoundException {
519 public Drawable getApplicationLogo(ApplicationInfo info) {
524 public Drawable getApplicationLogo(String packageName) throws NameNotFoundException {
529 public Drawable getUserBadgedIcon(Drawable icon, UserHandle user) {
534 public Drawable getUserBadgedDrawableForDensity(Drawable drawable, UserHandle user,
535 Rect badgeLocation, int badgeDensity) {
540 public Drawable getUserBadgeForDensity(UserHandle user, int density) {
545 public Drawable getUserBadgeForDensityNoBackground(UserHandle user, int density) {
550 public CharSequence getUserBadgedLabel(CharSequence label, UserHandle user) {
555 public CharSequence getText(String packageName, int resid, ApplicationInfo appInfo) {
560 public XmlResourceParser getXml(String packageName, int resid, ApplicationInfo appInfo) {
565 public CharSequence getApplicationLabel(ApplicationInfo info) {
570 public Resources getResourcesForActivity(ComponentName activityName)
571 throws NameNotFoundException {
576 public Resources getResourcesForApplication(ApplicationInfo app) throws NameNotFoundException {
581 public Resources getResourcesForApplication(String appPackageName)
582 throws NameNotFoundException {
587 public Resources getResourcesForApplicationAsUser(String appPackageName, int userId)
588 throws NameNotFoundException {
593 public void installPackage(Uri packageURI, IPackageInstallObserver observer, int flags,
594 String installerPackageName) {
598 public void installPackage(Uri packageURI, PackageInstallObserver observer, int flags,
599 String installerPackageName) {
603 public int installExistingPackage(String packageName) throws NameNotFoundException {
608 public int installExistingPackageAsUser(String packageName, int userId)
609 throws NameNotFoundException {
614 public void verifyPendingInstall(int id, int verificationCode) {
618 public void extendVerificationTimeout(int id, int verificationCodeAtTimeout,
619 long millisecondsToDelay) {
623 public void verifyIntentFilter(int verificationId, int verificationCode,
624 List<String> outFailedDomains) {
628 public int getIntentVerificationStatusAsUser(String packageName, int userId) {
633 public boolean updateIntentVerificationStatusAsUser(String packageName, int status, int userId) {
638 public List<IntentFilterVerificationInfo> getIntentFilterVerifications(String packageName) {
643 public List<IntentFilter> getAllIntentFilters(String packageName) {
648 public String getDefaultBrowserPackageNameAsUser(int userId) {
653 public boolean setDefaultBrowserPackageNameAsUser(String packageName, int userId) {
658 public void setInstallerPackageName(String targetPackage, String installerPackageName) {
662 public void setUpdateAvailable(String packageName, boolean updateAvailable) {
666 public void deletePackage(String packageName, IPackageDeleteObserver observer, int flags) {
670 public void deletePackageAsUser(String packageName, IPackageDeleteObserver observer, int flags,
675 public String getInstallerPackageName(String packageName) {
680 public void clearApplicationUserData(String packageName, IPackageDataObserver observer) {
684 public void deleteApplicationCacheFiles(String packageName, IPackageDataObserver observer) {
688 public void deleteApplicationCacheFilesAsUser(String packageName, int userId,
689 IPackageDataObserver observer) {
693 public void freeStorageAndNotify(String volumeUuid, long freeStorageSize,
694 IPackageDataObserver observer) {
698 public void freeStorage(String volumeUuid, long freeStorageSize, IntentSender pi) {
702 public void getPackageSizeInfoAsUser(String packageName, int userHandle,
703 IPackageStatsObserver observer) {
707 public void addPackageToPreferred(String packageName) {
711 public void removePackageFromPreferred(String packageName) {
715 public List<PackageInfo> getPreferredPackages(int flags) {
720 public void addPreferredActivity(IntentFilter filter, int match, ComponentName[] set,
721 ComponentName activity) {
725 public void replacePreferredActivity(IntentFilter filter, int match, ComponentName[] set,
726 ComponentName activity) {
730 public void clearPackagePreferredActivities(String packageName) {
734 public int getPreferredActivities(List<IntentFilter> outFilters,
735 List<ComponentName> outActivities, String packageName) {
740 public ComponentName getHomeActivities(List<ResolveInfo> outActivities) {
745 public void setComponentEnabledSetting(ComponentName componentName, int newState, int flags) {
749 public int getComponentEnabledSetting(ComponentName componentName) {
754 public void setApplicationEnabledSetting(String packageName, int newState, int flags) {
758 public int getApplicationEnabledSetting(String packageName) {
763 public void flushPackageRestrictionsAsUser(int userId) {
767 public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden,
768 UserHandle userHandle) {
773 public boolean getApplicationHiddenSettingAsUser(String packageName, UserHandle userHandle) {
778 public boolean isSafeMode() {
783 public void addOnPermissionsChangeListener(OnPermissionsChangedListener listener) {
787 public void removeOnPermissionsChangeListener(OnPermissionsChangedListener listener) {
791 public KeySet getKeySetByAlias(String packageName, String alias) {
796 public KeySet getSigningKeySet(String packageName) {
801 public boolean isSignedBy(String packageName, KeySet ks) {
806 public boolean isSignedByExactly(String packageName, KeySet ks) {
811 public String[] setPackagesSuspendedAsUser(String[] packageNames, boolean suspended,
813 return new String[]{};
817 public boolean isPackageSuspendedForUser(String packageName, int userId) {
822 public void setApplicationCategoryHint(String packageName, int categoryHint) {
826 public int getMoveStatus(int moveId) {
831 public void registerMoveCallback(MoveCallback callback, Handler handler) {
835 public void unregisterMoveCallback(MoveCallback callback) {
839 public int movePackage(String packageName, VolumeInfo vol) {
844 public VolumeInfo getPackageCurrentVolume(ApplicationInfo app) {
849 public List<VolumeInfo> getPackageCandidateVolumes(ApplicationInfo app) {
854 public int movePrimaryStorage(VolumeInfo vol) {
859 public VolumeInfo getPrimaryStorageCurrentVolume() {
864 public List<VolumeInfo> getPrimaryStorageCandidateVolumes() {
869 public VerifierDeviceIdentity getVerifierDeviceIdentity() {
874 public ChangedPackages getChangedPackages(int sequenceNumber) {
879 public boolean isUpgrade() {
884 public PackageInstaller getPackageInstaller() {
889 public void addCrossProfileIntentFilter(IntentFilter filter, int sourceUserId, int targetUserId,
894 public void clearCrossProfileIntentFilters(int sourceUserId) {
898 public Drawable loadItemIcon(PackageItemInfo itemInfo, ApplicationInfo appInfo) {
903 public Drawable loadUnbadgedItemIcon(PackageItemInfo itemInfo, ApplicationInfo appInfo) {
908 public boolean isPackageAvailable(String packageName) {
913 public int getInstallReason(String packageName, UserHandle user) {
914 return INSTALL_REASON_UNKNOWN;
918 public boolean canRequestPackageInstalls() {
923 public ComponentName getInstantAppResolverSettingsComponent() {