5050import android .net .Uri ;
5151import android .os .Process ;
5252import android .os .RemoteException ;
53- import android .os .UserHandle ;
5453import android .util .Log ;
5554import android .view .Display ;
5655
@@ -70,7 +69,7 @@ final class ApplicationPackageManager extends PackageManager {
7069 public PackageInfo getPackageInfo (String packageName , int flags )
7170 throws NameNotFoundException {
7271 try {
73- PackageInfo pi = mPM .getPackageInfo (packageName , flags , UserHandle . myUserId ());
72+ PackageInfo pi = mPM .getPackageInfo (packageName , flags , mContext . getUserId ());
7473 if (pi != null ) {
7574 return pi ;
7675 }
@@ -200,7 +199,7 @@ public List<PermissionGroupInfo> getAllPermissionGroups(int flags) {
200199 public ApplicationInfo getApplicationInfo (String packageName , int flags )
201200 throws NameNotFoundException {
202201 try {
203- ApplicationInfo ai = mPM .getApplicationInfo (packageName , flags , UserHandle . myUserId ());
202+ ApplicationInfo ai = mPM .getApplicationInfo (packageName , flags , mContext . getUserId ());
204203 if (ai != null ) {
205204 return ai ;
206205 }
@@ -215,7 +214,7 @@ public ApplicationInfo getApplicationInfo(String packageName, int flags)
215214 public ActivityInfo getActivityInfo (ComponentName className , int flags )
216215 throws NameNotFoundException {
217216 try {
218- ActivityInfo ai = mPM .getActivityInfo (className , flags , UserHandle . myUserId ());
217+ ActivityInfo ai = mPM .getActivityInfo (className , flags , mContext . getUserId ());
219218 if (ai != null ) {
220219 return ai ;
221220 }
@@ -230,7 +229,7 @@ public ActivityInfo getActivityInfo(ComponentName className, int flags)
230229 public ActivityInfo getReceiverInfo (ComponentName className , int flags )
231230 throws NameNotFoundException {
232231 try {
233- ActivityInfo ai = mPM .getReceiverInfo (className , flags , UserHandle . myUserId ());
232+ ActivityInfo ai = mPM .getReceiverInfo (className , flags , mContext . getUserId ());
234233 if (ai != null ) {
235234 return ai ;
236235 }
@@ -245,7 +244,7 @@ public ActivityInfo getReceiverInfo(ComponentName className, int flags)
245244 public ServiceInfo getServiceInfo (ComponentName className , int flags )
246245 throws NameNotFoundException {
247246 try {
248- ServiceInfo si = mPM .getServiceInfo (className , flags , UserHandle . myUserId ());
247+ ServiceInfo si = mPM .getServiceInfo (className , flags , mContext . getUserId ());
249248 if (si != null ) {
250249 return si ;
251250 }
@@ -260,7 +259,7 @@ public ServiceInfo getServiceInfo(ComponentName className, int flags)
260259 public ProviderInfo getProviderInfo (ComponentName className , int flags )
261260 throws NameNotFoundException {
262261 try {
263- ProviderInfo pi = mPM .getProviderInfo (className , flags , UserHandle . myUserId ());
262+ ProviderInfo pi = mPM .getProviderInfo (className , flags , mContext . getUserId ());
264263 if (pi != null ) {
265264 return pi ;
266265 }
@@ -405,7 +404,7 @@ public int getUidForSharedUser(String sharedUserName)
405404 @ SuppressWarnings ("unchecked" )
406405 @ Override
407406 public List <PackageInfo > getInstalledPackages (int flags ) {
408- return getInstalledPackages (flags , UserHandle . myUserId ());
407+ return getInstalledPackages (flags , mContext . getUserId ());
409408 }
410409
411410 /** @hide */
@@ -431,7 +430,7 @@ public List<PackageInfo> getInstalledPackages(int flags, int userId) {
431430 @ SuppressWarnings ("unchecked" )
432431 @ Override
433432 public List <ApplicationInfo > getInstalledApplications (int flags ) {
434- int userId = UserHandle .getUserId (Process . myUid () );
433+ final int userId = mContext .getUserId ();
435434 try {
436435 final List <ApplicationInfo > applicationInfos = new ArrayList <ApplicationInfo >();
437436 ApplicationInfo lastItem = null ;
@@ -451,7 +450,7 @@ public List<ApplicationInfo> getInstalledApplications(int flags) {
451450
452451 @ Override
453452 public ResolveInfo resolveActivity (Intent intent , int flags ) {
454- return resolveActivityAsUser (intent , flags , UserHandle . myUserId ());
453+ return resolveActivityAsUser (intent , flags , mContext . getUserId ());
455454 }
456455
457456 @ Override
@@ -470,7 +469,7 @@ public ResolveInfo resolveActivityAsUser(Intent intent, int flags, int userId) {
470469 @ Override
471470 public List <ResolveInfo > queryIntentActivities (Intent intent ,
472471 int flags ) {
473- return queryIntentActivitiesAsUser (intent , flags , UserHandle . myUserId ());
472+ return queryIntentActivitiesAsUser (intent , flags , mContext . getUserId ());
474473 }
475474
476475 /** @hide Same as above but for a specific user */
@@ -514,7 +513,7 @@ public List<ResolveInfo> queryIntentActivityOptions(
514513 try {
515514 return mPM .queryIntentActivityOptions (caller , specifics ,
516515 specificTypes , intent , intent .resolveTypeIfNeeded (resolver ),
517- flags , UserHandle . myUserId ());
516+ flags , mContext . getUserId ());
518517 } catch (RemoteException e ) {
519518 throw new RuntimeException ("Package manager has died" , e );
520519 }
@@ -538,7 +537,7 @@ public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags, int u
538537
539538 @ Override
540539 public List <ResolveInfo > queryBroadcastReceivers (Intent intent , int flags ) {
541- return queryBroadcastReceivers (intent , flags , UserHandle . myUserId ());
540+ return queryBroadcastReceivers (intent , flags , mContext . getUserId ());
542541 }
543542
544543 @ Override
@@ -548,7 +547,7 @@ public ResolveInfo resolveService(Intent intent, int flags) {
548547 intent ,
549548 intent .resolveTypeIfNeeded (mContext .getContentResolver ()),
550549 flags ,
551- UserHandle . myUserId ());
550+ mContext . getUserId ());
552551 } catch (RemoteException e ) {
553552 throw new RuntimeException ("Package manager has died" , e );
554553 }
@@ -569,14 +568,14 @@ public List<ResolveInfo> queryIntentServicesAsUser(Intent intent, int flags, int
569568
570569 @ Override
571570 public List <ResolveInfo > queryIntentServices (Intent intent , int flags ) {
572- return queryIntentServicesAsUser (intent , flags , UserHandle . myUserId ());
571+ return queryIntentServicesAsUser (intent , flags , mContext . getUserId ());
573572 }
574573
575574 @ Override
576575 public ProviderInfo resolveContentProvider (String name ,
577576 int flags ) {
578577 try {
579- return mPM .resolveContentProvider (name , flags , UserHandle . myUserId ());
578+ return mPM .resolveContentProvider (name , flags , mContext . getUserId ());
580579 } catch (RemoteException e ) {
581580 throw new RuntimeException ("Package manager has died" , e );
582581 }
@@ -763,6 +762,13 @@ public Drawable getApplicationLogo(String packageName)
763762 @ Override
764763 public Resources getResourcesForApplicationAsUser (String appPackageName , int userId )
765764 throws NameNotFoundException {
765+ if (userId < 0 ) {
766+ throw new IllegalArgumentException (
767+ "Call does not support special user #" + userId );
768+ }
769+ if ("system" .equals (appPackageName )) {
770+ return mContext .mMainThread .getSystemContext ().getResources ();
771+ }
766772 try {
767773 ApplicationInfo ai = mPM .getApplicationInfo (appPackageName , 0 , userId );
768774 if (ai != null ) {
@@ -1118,7 +1124,7 @@ public void deletePackage(String packageName, IPackageDeleteObserver observer, i
11181124 public void clearApplicationUserData (String packageName ,
11191125 IPackageDataObserver observer ) {
11201126 try {
1121- mPM .clearApplicationUserData (packageName , observer , UserHandle . myUserId ());
1127+ mPM .clearApplicationUserData (packageName , observer , mContext . getUserId ());
11221128 } catch (RemoteException e ) {
11231129 // Should never happen!
11241130 }
@@ -1191,7 +1197,7 @@ public List<PackageInfo> getPreferredPackages(int flags) {
11911197 public void addPreferredActivity (IntentFilter filter ,
11921198 int match , ComponentName [] set , ComponentName activity ) {
11931199 try {
1194- mPM .addPreferredActivity (filter , match , set , activity , UserHandle . myUserId ());
1200+ mPM .addPreferredActivity (filter , match , set , activity , mContext . getUserId ());
11951201 } catch (RemoteException e ) {
11961202 // Should never happen!
11971203 }
@@ -1241,7 +1247,7 @@ public int getPreferredActivities(List<IntentFilter> outFilters,
12411247 public void setComponentEnabledSetting (ComponentName componentName ,
12421248 int newState , int flags ) {
12431249 try {
1244- mPM .setComponentEnabledSetting (componentName , newState , flags , UserHandle . myUserId ());
1250+ mPM .setComponentEnabledSetting (componentName , newState , flags , mContext . getUserId ());
12451251 } catch (RemoteException e ) {
12461252 // Should never happen!
12471253 }
@@ -1250,7 +1256,7 @@ public void setComponentEnabledSetting(ComponentName componentName,
12501256 @ Override
12511257 public int getComponentEnabledSetting (ComponentName componentName ) {
12521258 try {
1253- return mPM .getComponentEnabledSetting (componentName , UserHandle . myUserId ());
1259+ return mPM .getComponentEnabledSetting (componentName , mContext . getUserId ());
12541260 } catch (RemoteException e ) {
12551261 // Should never happen!
12561262 }
@@ -1261,7 +1267,7 @@ public int getComponentEnabledSetting(ComponentName componentName) {
12611267 public void setApplicationEnabledSetting (String packageName ,
12621268 int newState , int flags ) {
12631269 try {
1264- mPM .setApplicationEnabledSetting (packageName , newState , flags , UserHandle . myUserId ());
1270+ mPM .setApplicationEnabledSetting (packageName , newState , flags , mContext . getUserId ());
12651271 } catch (RemoteException e ) {
12661272 // Should never happen!
12671273 }
@@ -1270,7 +1276,7 @@ public void setApplicationEnabledSetting(String packageName,
12701276 @ Override
12711277 public int getApplicationEnabledSetting (String packageName ) {
12721278 try {
1273- return mPM .getApplicationEnabledSetting (packageName , UserHandle . myUserId ());
1279+ return mPM .getApplicationEnabledSetting (packageName , mContext . getUserId ());
12741280 } catch (RemoteException e ) {
12751281 // Should never happen!
12761282 }
0 commit comments