diff options
| author | 2025-02-04 17:53:56 -0800 | |
|---|---|---|
| committer | 2025-02-04 17:53:56 -0800 | |
| commit | 04b069b0706e49d489b7a76c10ae10845de338e9 (patch) | |
| tree | 948e98d8b30bee32875cb6d2ff3cacebdabdc516 | |
| parent | 0847b4786a70a0464adf5dddbcf32e0de18d5de2 (diff) | |
| parent | ab30681abaf68149583ac20ef88fa09d7a12a829 (diff) | |
Merge "RemoteViews - Always load new ApplicationInfo from PackageManager." into tm-dev am: 491556381e am: 5b38131863 am: ab30681aba
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/31478238
Change-Id: I8d2a85fc34271dd0be1fe541892a407960b5c96f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | core/java/android/appwidget/AppWidgetHostView.java | 4 | ||||
| -rw-r--r-- | core/java/android/widget/RemoteViews.java | 14 |
2 files changed, 11 insertions, 7 deletions
diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java index 27f6a266597c..8926ff7a98c6 100644 --- a/core/java/android/appwidget/AppWidgetHostView.java +++ b/core/java/android/appwidget/AppWidgetHostView.java @@ -20,7 +20,6 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.app.Activity; import android.app.ActivityOptions; -import android.app.LoadedApk; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.Context; @@ -733,9 +732,6 @@ public class AppWidgetHostView extends FrameLayout implements AppWidgetHost.AppW */ protected Context getRemoteContextEnsuringCorrectCachedApkPath() { try { - ApplicationInfo expectedAppInfo = mInfo.providerInfo.applicationInfo; - LoadedApk.checkAndUpdateApkPaths(expectedAppInfo); - // Return if cloned successfully, otherwise default Context newContext = mContext.createApplicationContext( mInfo.providerInfo.applicationInfo, Context.CONTEXT_RESTRICTED); diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 88ce92f24702..7db77b12b3dc 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -34,7 +34,6 @@ import android.app.Activity; import android.app.ActivityOptions; import android.app.ActivityThread; import android.app.Application; -import android.app.LoadedApk; import android.app.PendingIntent; import android.app.RemoteInput; import android.appwidget.AppWidgetHostView; @@ -6057,9 +6056,18 @@ public class RemoteViews implements Parcelable, Filter { return context; } try { - LoadedApk.checkAndUpdateApkPaths(mApplication); - return context.createApplicationContext(mApplication, + // Use PackageManager as the source of truth for application information, rather + // than the parceled ApplicationInfo provided by the app. + ApplicationInfo sanitizedApplication = + context.getPackageManager().getApplicationInfoAsUser( + mApplication.packageName, 0, + UserHandle.getUserId(mApplication.uid)); + Context applicationContext = context.createApplicationContext( + sanitizedApplication, Context.CONTEXT_RESTRICTED); + // Get the correct apk paths while maintaining the current context's configuration. + return applicationContext.createConfigurationContext( + context.getResources().getConfiguration()); } catch (NameNotFoundException e) { Log.e(LOG_TAG, "Package name " + mApplication.packageName + " not found"); } |