1/*
2 * Copyright (C) 2015 The Android Open Source Project
3 *
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
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
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.
15 */
16
17package com.android.layoutlib.bridge.android;
18
19import android.annotation.NonNull;
20import android.app.PackageInstallObserver;
21import android.content.ComponentName;
22import android.content.Intent;
23import android.content.IntentFilter;
24import android.content.IntentSender;
25import android.content.pm.ActivityInfo;
26import android.content.pm.ApplicationInfo;
27import android.content.pm.EphemeralApplicationInfo;
28import android.content.pm.FeatureInfo;
29import android.content.pm.IPackageDataObserver;
30import android.content.pm.IPackageDeleteObserver;
31import android.content.pm.IPackageInstallObserver;
32import android.content.pm.IPackageStatsObserver;
33import android.content.pm.InstrumentationInfo;
34import android.content.pm.IntentFilterVerificationInfo;
35import android.content.pm.KeySet;
36import android.content.pm.PackageInfo;
37import android.content.pm.PackageInstaller;
38import android.content.pm.PackageItemInfo;
39import android.content.pm.PackageManager;
40import android.content.pm.PermissionGroupInfo;
41import android.content.pm.PermissionInfo;
42import android.content.pm.ProviderInfo;
43import android.content.pm.ResolveInfo;
44import android.content.pm.ServiceInfo;
45import android.content.pm.VerifierDeviceIdentity;
46import android.content.res.Resources;
47import android.content.res.XmlResourceParser;
48import android.graphics.Rect;
49import android.graphics.drawable.Drawable;
50import android.net.Uri;
51import android.os.Handler;
52import android.os.RemoteException;
53import android.os.UserHandle;
54import android.os.storage.VolumeInfo;
55import java.util.List;
56
57/**
58 * An implementation of {@link PackageManager} that does nothing.
59 */
60@SuppressWarnings("deprecation")
61public class BridgePackageManager extends PackageManager {
62    @Override
63    public PackageInfo getPackageInfo(String packageName, int flags) throws NameNotFoundException {
64        return null;
65    }
66
67    @Override
68    public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId)
69            throws NameNotFoundException {
70        return null;
71    }
72
73    @Override
74    public String[] currentToCanonicalPackageNames(String[] names) {
75        return new String[0];
76    }
77
78    @Override
79    public String[] canonicalToCurrentPackageNames(String[] names) {
80        return new String[0];
81    }
82
83    @Override
84    public Intent getLaunchIntentForPackage(String packageName) {
85        return null;
86    }
87
88    @Override
89    public Intent getLeanbackLaunchIntentForPackage(String packageName) {
90        return null;
91    }
92
93    @Override
94    public int[] getPackageGids(String packageName) throws NameNotFoundException {
95        return new int[0];
96    }
97
98    @Override
99    public int[] getPackageGids(String packageName, int flags) throws NameNotFoundException {
100        return new int[0];
101    }
102
103    @Override
104    public int getPackageUid(String packageName, int flags) throws NameNotFoundException {
105        return 0;
106    }
107
108    @Override
109    public int getPackageUidAsUser(String packageName, int userHandle) throws NameNotFoundException {
110        return 0;
111    }
112
113    @Override
114    public int getPackageUidAsUser(String packageName, int flags, int userHandle) throws NameNotFoundException {
115        return 0;
116    }
117
118    @Override
119    public PermissionInfo getPermissionInfo(String name, int flags) throws NameNotFoundException {
120        return null;
121    }
122
123    @Override
124    public List<PermissionInfo> queryPermissionsByGroup(String group, int flags)
125            throws NameNotFoundException {
126        return null;
127    }
128
129    @Override
130    public PermissionGroupInfo getPermissionGroupInfo(String name, int flags)
131            throws NameNotFoundException {
132        return null;
133    }
134
135    @Override
136    public List<PermissionGroupInfo> getAllPermissionGroups(int flags) {
137        return null;
138    }
139
140    @Override
141    public ApplicationInfo getApplicationInfo(String packageName, int flags)
142            throws NameNotFoundException {
143        return null;
144    }
145
146    @Override
147    public ApplicationInfo getApplicationInfoAsUser(String packageName, int flags, int userId)
148            throws NameNotFoundException {
149        return null;
150    }
151
152    @Override
153    public ActivityInfo getActivityInfo(ComponentName component, int flags)
154            throws NameNotFoundException {
155        return null;
156    }
157
158    @Override
159    public ActivityInfo getReceiverInfo(ComponentName component, int flags)
160            throws NameNotFoundException {
161        return null;
162    }
163
164    @Override
165    public ServiceInfo getServiceInfo(ComponentName component, int flags)
166            throws NameNotFoundException {
167        return null;
168    }
169
170    @Override
171    public ProviderInfo getProviderInfo(ComponentName component, int flags)
172            throws NameNotFoundException {
173        return null;
174    }
175
176    @Override
177    public List<PackageInfo> getInstalledPackages(int flags) {
178        return null;
179    }
180
181    @Override
182    public List<PackageInfo> getPackagesHoldingPermissions(String[] permissions, int flags) {
183        return null;
184    }
185
186    @Override
187    public List<PackageInfo> getInstalledPackagesAsUser(int flags, int userId) {
188        return null;
189    }
190
191    @Override
192    public int checkPermission(String permName, String pkgName) {
193        return 0;
194    }
195
196    @Override
197    public boolean isPermissionRevokedByPolicy(String permName, String pkgName) {
198        return false;
199    }
200
201    @Override
202    public String getPermissionControllerPackageName() {
203        return null;
204    }
205
206    @Override
207    public boolean addPermission(PermissionInfo info) {
208        return false;
209    }
210
211    @Override
212    public boolean addPermissionAsync(PermissionInfo info) {
213        return false;
214    }
215
216    @Override
217    public void removePermission(String name) {
218    }
219
220    @Override
221    public void grantRuntimePermission(String packageName, String permissionName, UserHandle user) {
222    }
223
224    @Override
225    public void revokeRuntimePermission(String packageName, String permissionName,
226            UserHandle user) {
227    }
228
229    @Override
230    public int getPermissionFlags(String permissionName, String packageName, UserHandle user) {
231        return 0;
232    }
233
234    @Override
235    public void updatePermissionFlags(String permissionName, String packageName, int flagMask,
236            int flagValues, UserHandle user) {
237    }
238
239    @Override
240    public boolean shouldShowRequestPermissionRationale(String permission) {
241        return false;
242    }
243
244    @Override
245    public int checkSignatures(String pkg1, String pkg2) {
246        return 0;
247    }
248
249    @Override
250    public int checkSignatures(int uid1, int uid2) {
251        return 0;
252    }
253
254    @Override
255    public String[] getPackagesForUid(int uid) {
256        return new String[0];
257    }
258
259    @Override
260    public String getNameForUid(int uid) {
261        return null;
262    }
263
264    @Override
265    public int getUidForSharedUser(String sharedUserName) throws NameNotFoundException {
266        return 0;
267    }
268
269    @Override
270    public List<ApplicationInfo> getInstalledApplications(int flags) {
271        return null;
272    }
273
274    @Override
275    public List<EphemeralApplicationInfo> getEphemeralApplications() {
276        return null;
277    }
278
279    @Override
280    public Drawable getEphemeralApplicationIcon(String packageName) {
281        throw new UnsupportedOperationException();
282    }
283
284    @Override
285    public byte[] getEphemeralCookie() {
286        return new byte[0];
287    }
288
289    @Override
290    public boolean isEphemeralApplication() {
291        return false;
292    }
293
294    @Override
295    public int getEphemeralCookieMaxSizeBytes() {
296        return 0;
297    }
298
299    @Override
300    public boolean setEphemeralCookie(@NonNull byte[] cookie) {
301        return false;
302    }
303
304    @Override
305    public String[] getSystemSharedLibraryNames() {
306        return new String[0];
307    }
308
309    @Override
310    public String getServicesSystemSharedLibraryPackageName() {
311        return null;
312    }
313
314    @Override
315    public @NonNull String getSharedSystemSharedLibraryPackageName() {
316        return null;
317    }
318
319    @Override
320    public FeatureInfo[] getSystemAvailableFeatures() {
321        return new FeatureInfo[0];
322    }
323
324    @Override
325    public boolean hasSystemFeature(String name) {
326        return false;
327    }
328
329    @Override
330    public boolean hasSystemFeature(String name, int version) {
331        return false;
332    }
333
334    @Override
335    public ResolveInfo resolveActivity(Intent intent, int flags) {
336        return null;
337    }
338
339    @Override
340    public ResolveInfo resolveActivityAsUser(Intent intent, int flags, int userId) {
341        return null;
342    }
343
344    @Override
345    public List<ResolveInfo> queryIntentActivities(Intent intent, int flags) {
346        return null;
347    }
348
349    @Override
350    public List<ResolveInfo> queryIntentActivitiesAsUser(Intent intent, int flags, int userId) {
351        return null;
352    }
353
354    @Override
355    public List<ResolveInfo> queryIntentActivityOptions(ComponentName caller, Intent[] specifics,
356            Intent intent, int flags) {
357        return null;
358    }
359
360    @Override
361    public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags) {
362        return null;
363    }
364
365    @Override
366    public List<ResolveInfo> queryBroadcastReceiversAsUser(Intent intent, int flags, int userId) {
367        return null;
368    }
369
370    @Override
371    public ResolveInfo resolveService(Intent intent, int flags) {
372        return null;
373    }
374
375    @Override
376    public List<ResolveInfo> queryIntentServices(Intent intent, int flags) {
377        return null;
378    }
379
380    @Override
381    public List<ResolveInfo> queryIntentServicesAsUser(Intent intent, int flags, int userId) {
382        return null;
383    }
384
385    @Override
386    public List<ResolveInfo> queryIntentContentProvidersAsUser(Intent intent, int flags,
387            int userId) {
388        return null;
389    }
390
391    @Override
392    public List<ResolveInfo> queryIntentContentProviders(Intent intent, int flags) {
393        return null;
394    }
395
396    @Override
397    public ProviderInfo resolveContentProvider(String name, int flags) {
398        return null;
399    }
400
401    @Override
402    public ProviderInfo resolveContentProviderAsUser(String name, int flags, int userId) {
403        return null;
404    }
405
406    @Override
407    public List<ProviderInfo> queryContentProviders(String processName, int uid, int flags) {
408        return null;
409    }
410
411    @Override
412    public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags)
413            throws NameNotFoundException {
414        return null;
415    }
416
417    @Override
418    public List<InstrumentationInfo> queryInstrumentation(String targetPackage, int flags) {
419        return null;
420    }
421
422    @Override
423    public Drawable getDrawable(String packageName, int resid, ApplicationInfo appInfo) {
424        return null;
425    }
426
427    @Override
428    public Drawable getActivityIcon(ComponentName activityName) throws NameNotFoundException {
429        return null;
430    }
431
432    @Override
433    public Drawable getActivityIcon(Intent intent) throws NameNotFoundException {
434        return null;
435    }
436
437    @Override
438    public Drawable getActivityBanner(ComponentName activityName) throws NameNotFoundException {
439        return null;
440    }
441
442    @Override
443    public Drawable getActivityBanner(Intent intent) throws NameNotFoundException {
444        return null;
445    }
446
447    @Override
448    public Drawable getDefaultActivityIcon() {
449        return null;
450    }
451
452    @Override
453    public Drawable getApplicationIcon(ApplicationInfo info) {
454        return null;
455    }
456
457    @Override
458    public Drawable getApplicationIcon(String packageName) throws NameNotFoundException {
459        return null;
460    }
461
462    @Override
463    public Drawable getApplicationBanner(ApplicationInfo info) {
464        return null;
465    }
466
467    @Override
468    public Drawable getApplicationBanner(String packageName) throws NameNotFoundException {
469        return null;
470    }
471
472    @Override
473    public Drawable getActivityLogo(ComponentName activityName) throws NameNotFoundException {
474        return null;
475    }
476
477    @Override
478    public Drawable getActivityLogo(Intent intent) throws NameNotFoundException {
479        return null;
480    }
481
482    @Override
483    public Drawable getApplicationLogo(ApplicationInfo info) {
484        return null;
485    }
486
487    @Override
488    public Drawable getApplicationLogo(String packageName) throws NameNotFoundException {
489        return null;
490    }
491
492    @Override
493    public Drawable getManagedUserBadgedDrawable(Drawable drawable, Rect badgeLocation,
494        int badgeDensity) {
495        return null;
496    }
497
498    @Override
499    public Drawable getUserBadgedIcon(Drawable icon, UserHandle user) {
500        return null;
501    }
502
503    @Override
504    public Drawable getUserBadgedDrawableForDensity(Drawable drawable, UserHandle user,
505            Rect badgeLocation, int badgeDensity) {
506        return null;
507    }
508
509    @Override
510    public Drawable getUserBadgeForDensity(UserHandle user, int density) {
511        return null;
512    }
513
514    @Override
515    public Drawable getUserBadgeForDensityNoBackground(UserHandle user, int density) {
516        return null;
517    }
518
519    @Override
520    public CharSequence getUserBadgedLabel(CharSequence label, UserHandle user) {
521        return null;
522    }
523
524    @Override
525    public CharSequence getText(String packageName, int resid, ApplicationInfo appInfo) {
526        return null;
527    }
528
529    @Override
530    public XmlResourceParser getXml(String packageName, int resid, ApplicationInfo appInfo) {
531        return null;
532    }
533
534    @Override
535    public CharSequence getApplicationLabel(ApplicationInfo info) {
536        return null;
537    }
538
539    @Override
540    public Resources getResourcesForActivity(ComponentName activityName)
541            throws NameNotFoundException {
542        return null;
543    }
544
545    @Override
546    public Resources getResourcesForApplication(ApplicationInfo app) throws NameNotFoundException {
547        return null;
548    }
549
550    @Override
551    public Resources getResourcesForApplication(String appPackageName)
552            throws NameNotFoundException {
553        return null;
554    }
555
556    @Override
557    public Resources getResourcesForApplicationAsUser(String appPackageName, int userId)
558            throws NameNotFoundException {
559        return null;
560    }
561
562    @Override
563    public void installPackage(Uri packageURI, IPackageInstallObserver observer, int flags,
564            String installerPackageName) {
565    }
566
567    @Override
568    public void installPackage(Uri packageURI, PackageInstallObserver observer, int flags,
569            String installerPackageName) {
570    }
571
572    @Override
573    public int installExistingPackage(String packageName) throws NameNotFoundException {
574        return 0;
575    }
576
577    @Override
578    public int installExistingPackageAsUser(String packageName, int userId)
579            throws NameNotFoundException {
580        return 0;
581    }
582
583    @Override
584    public void verifyPendingInstall(int id, int verificationCode) {
585    }
586
587    @Override
588    public void extendVerificationTimeout(int id, int verificationCodeAtTimeout,
589            long millisecondsToDelay) {
590    }
591
592    @Override
593    public void verifyIntentFilter(int verificationId, int verificationCode,
594            List<String> outFailedDomains) {
595    }
596
597    @Override
598    public int getIntentVerificationStatusAsUser(String packageName, int userId) {
599        return 0;
600    }
601
602    @Override
603    public boolean updateIntentVerificationStatusAsUser(String packageName, int status, int userId) {
604        return false;
605    }
606
607    @Override
608    public List<IntentFilterVerificationInfo> getIntentFilterVerifications(String packageName) {
609        return null;
610    }
611
612    @Override
613    public List<IntentFilter> getAllIntentFilters(String packageName) {
614        return null;
615    }
616
617    @Override
618    public String getDefaultBrowserPackageNameAsUser(int userId) {
619        return null;
620    }
621
622    @Override
623    public boolean setDefaultBrowserPackageNameAsUser(String packageName, int userId) {
624        return false;
625    }
626
627    @Override
628    public void setInstallerPackageName(String targetPackage, String installerPackageName) {
629    }
630
631    @Override
632    public void deletePackage(String packageName, IPackageDeleteObserver observer, int flags) {
633    }
634
635    @Override
636    public void deletePackageAsUser(String packageName, IPackageDeleteObserver observer, int flags,
637            int userId) {
638    }
639
640    @Override
641    public String getInstallerPackageName(String packageName) {
642        return null;
643    }
644
645    @Override
646    public void clearApplicationUserData(String packageName, IPackageDataObserver observer) {
647    }
648
649    @Override
650    public void deleteApplicationCacheFiles(String packageName, IPackageDataObserver observer) {
651    }
652
653    @Override
654    public void deleteApplicationCacheFilesAsUser(String packageName, int userId,
655            IPackageDataObserver observer) {
656    }
657
658    @Override
659    public void freeStorageAndNotify(String volumeUuid, long freeStorageSize,
660            IPackageDataObserver observer) {
661    }
662
663    @Override
664    public void freeStorage(String volumeUuid, long freeStorageSize, IntentSender pi) {
665    }
666
667    @Override
668    public void getPackageSizeInfoAsUser(String packageName, int userHandle,
669            IPackageStatsObserver observer) {
670    }
671
672    @Override
673    public void addPackageToPreferred(String packageName) {
674    }
675
676    @Override
677    public void removePackageFromPreferred(String packageName) {
678    }
679
680    @Override
681    public List<PackageInfo> getPreferredPackages(int flags) {
682        return null;
683    }
684
685    @Override
686    public void addPreferredActivity(IntentFilter filter, int match, ComponentName[] set,
687            ComponentName activity) {
688    }
689
690    @Override
691    public void replacePreferredActivity(IntentFilter filter, int match, ComponentName[] set,
692            ComponentName activity) {
693    }
694
695    @Override
696    public void clearPackagePreferredActivities(String packageName) {
697    }
698
699    @Override
700    public int getPreferredActivities(List<IntentFilter> outFilters,
701            List<ComponentName> outActivities, String packageName) {
702        return 0;
703    }
704
705    @Override
706    public ComponentName getHomeActivities(List<ResolveInfo> outActivities) {
707        return null;
708    }
709
710    @Override
711    public void setComponentEnabledSetting(ComponentName componentName, int newState, int flags) {
712    }
713
714    @Override
715    public int getComponentEnabledSetting(ComponentName componentName) {
716        return 0;
717    }
718
719    @Override
720    public void setApplicationEnabledSetting(String packageName, int newState, int flags) {
721    }
722
723    @Override
724    public int getApplicationEnabledSetting(String packageName) {
725        return 0;
726    }
727
728    @Override
729    public void flushPackageRestrictionsAsUser(int userId) {
730    }
731
732    @Override
733    public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden,
734            UserHandle userHandle) {
735        return false;
736    }
737
738    @Override
739    public boolean getApplicationHiddenSettingAsUser(String packageName, UserHandle userHandle) {
740        return false;
741    }
742
743    @Override
744    public boolean isSafeMode() {
745        return false;
746    }
747
748    @Override
749    public void addOnPermissionsChangeListener(OnPermissionsChangedListener listener) {
750    }
751
752    @Override
753    public void removeOnPermissionsChangeListener(OnPermissionsChangedListener listener) {
754    }
755
756    @Override
757    public KeySet getKeySetByAlias(String packageName, String alias) {
758        return null;
759    }
760
761    @Override
762    public KeySet getSigningKeySet(String packageName) {
763        return null;
764    }
765
766    @Override
767    public boolean isSignedBy(String packageName, KeySet ks) {
768        return false;
769    }
770
771    @Override
772    public boolean isSignedByExactly(String packageName, KeySet ks) {
773        return false;
774    }
775
776    @Override
777    public String[] setPackagesSuspendedAsUser(String[] packageNames, boolean suspended,
778            int userId) {
779        return new String[]{};
780    }
781
782    @Override
783    public boolean isPackageSuspendedForUser(String packageName, int userId) {
784        return false;
785    }
786
787    @Override
788    public int getMoveStatus(int moveId) {
789        return 0;
790    }
791
792    @Override
793    public void registerMoveCallback(MoveCallback callback, Handler handler) {
794    }
795
796    @Override
797    public void unregisterMoveCallback(MoveCallback callback) {
798    }
799
800    @Override
801    public int movePackage(String packageName, VolumeInfo vol) {
802        return 0;
803    }
804
805    @Override
806    public VolumeInfo getPackageCurrentVolume(ApplicationInfo app) {
807        return null;
808    }
809
810    @Override
811    public List<VolumeInfo> getPackageCandidateVolumes(ApplicationInfo app) {
812        return null;
813    }
814
815    @Override
816    public int movePrimaryStorage(VolumeInfo vol) {
817        return 0;
818    }
819
820    @Override
821    public VolumeInfo getPrimaryStorageCurrentVolume() {
822        return null;
823    }
824
825    @Override
826    public List<VolumeInfo> getPrimaryStorageCandidateVolumes() {
827        return null;
828    }
829
830    @Override
831    public VerifierDeviceIdentity getVerifierDeviceIdentity() {
832        return null;
833    }
834
835    @Override
836    public boolean isUpgrade() {
837        return false;
838    }
839
840    @Override
841    public PackageInstaller getPackageInstaller() {
842        return null;
843    }
844
845    @Override
846    public void addCrossProfileIntentFilter(IntentFilter filter, int sourceUserId, int targetUserId,
847            int flags) {
848    }
849
850    @Override
851    public void clearCrossProfileIntentFilters(int sourceUserId) {
852    }
853
854    @Override
855    public Drawable loadItemIcon(PackageItemInfo itemInfo, ApplicationInfo appInfo) {
856        return null;
857    }
858
859    @Override
860    public Drawable loadUnbadgedItemIcon(PackageItemInfo itemInfo, ApplicationInfo appInfo) {
861        return null;
862    }
863
864    @Override
865    public boolean isPackageAvailable(String packageName) {
866        return false;
867    }
868}
869