diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 3d4d9eca6b16a..dfd853acaf0d4 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -3696,18 +3696,21 @@ public class RemoteViews implements Parcelable, Filter { } private void initializeFrom(@NonNull RemoteViews src, @Nullable RemoteViews hierarchyRoot) { + if (hierarchyRoot == null) { + mBitmapCache = src.mBitmapCache; + mApplicationInfoCache = src.mApplicationInfoCache; + } else { + mBitmapCache = hierarchyRoot.mBitmapCache; + mApplicationInfoCache = hierarchyRoot.mApplicationInfoCache; + } if (hierarchyRoot == null || src.mIsRoot) { // If there's no provided root, or if src was itself a root, then this RemoteViews is // the root of the new hierarchy. mIsRoot = true; - mBitmapCache = new BitmapCache(); - mApplicationInfoCache = new ApplicationInfoCache(); hierarchyRoot = this; } else { // Otherwise, we're a descendant in the hierarchy. mIsRoot = false; - mBitmapCache = hierarchyRoot.mBitmapCache; - mApplicationInfoCache = hierarchyRoot.mApplicationInfoCache; } mApplication = src.mApplication; mLayoutId = src.mLayoutId;