diff options
| author | Sunny Goyal <sunnygoyal@google.com> | 2020-12-14 11:39:18 -0800 |
|---|---|---|
| committer | Sunny Goyal <sunnygoyal@google.com> | 2021-02-01 17:35:23 +0000 |
| commit | 7152080c07dd2d8648972a3666439abcabd0c0ed (patch) | |
| tree | c5256c0fc29bce239646f645399d0d9e54b9a8d9 /core/java/android/app/ApplicationPackageManager.java | |
| parent | 6c6fb9eab864b1b3991f56d9f3310c5159839d04 (diff) | |
Adding APIs to get manifest entries for Launcher activities and widgets
and getting resources for a particular config
This would allow fetching display infos for the activity in a particular
config independent of system config.
Bug: 156154533
Test: Included CTS
Change-Id: Ie245d685fb21444c10a88b4ca86dc7ff08e2b599
Merged-In: Ie245d685fb21444c10a88b4ca86dc7ff08e2b599
Diffstat (limited to 'core/java/android/app/ApplicationPackageManager.java')
| -rw-r--r-- | core/java/android/app/ApplicationPackageManager.java | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index 77542bda22a0..7e7f887766e2 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -70,6 +70,7 @@ import android.content.pm.SuspendDialogInfo; import android.content.pm.VerifierDeviceIdentity; import android.content.pm.VersionedPackage; import android.content.pm.dex.ArtManager; +import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.XmlResourceParser; import android.graphics.Bitmap; @@ -1691,20 +1692,29 @@ public class ApplicationPackageManager extends PackageManager { @Override public Resources getResourcesForApplication(@NonNull ApplicationInfo app) throws NameNotFoundException { + return getResourcesForApplication(app, null); + } + + @Override + public Resources getResourcesForApplication(@NonNull ApplicationInfo app, + @Nullable Configuration configuration) throws NameNotFoundException { if (app.packageName.equals("system")) { - return mContext.mMainThread.getSystemUiContext().getResources(); + Context sysuiContext = mContext.mMainThread.getSystemUiContext(); + if (configuration != null) { + sysuiContext = sysuiContext.createConfigurationContext(configuration); + } + return sysuiContext.getResources(); } final boolean sameUid = (app.uid == Process.myUid()); final Resources r = mContext.mMainThread.getTopLevelResources( - sameUid ? app.sourceDir : app.publicSourceDir, - sameUid ? app.splitSourceDirs : app.splitPublicSourceDirs, - app.resourceDirs, app.sharedLibraryFiles, - mContext.mPackageInfo); + sameUid ? app.sourceDir : app.publicSourceDir, + sameUid ? app.splitSourceDirs : app.splitPublicSourceDirs, + app.resourceDirs, app.sharedLibraryFiles, + mContext.mPackageInfo, configuration); if (r != null) { return r; } throw new NameNotFoundException("Unable to open " + app.publicSourceDir); - } @Override |
