Merge "RemoteViews: fix BitmapCache after immutable Bitmap switch" into tm-dev am: 5c7bab4ccb am: 308b8f45aa

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19570391

Change-Id: I2446ada0ad16794ff64ebfc3cd997b674bf92725
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Tim Murray
2022-08-17 23:54:03 +00:00
committed by Automerger Merge Worker

View File

@@ -1598,7 +1598,13 @@ public class RemoteViews implements Parcelable, Filter {
public BitmapCache(Parcel source) { public BitmapCache(Parcel source) {
mBitmaps = source.createTypedArrayList(Bitmap.CREATOR); mBitmaps = source.createTypedArrayList(Bitmap.CREATOR);
mBitmapHashes = source.readSparseIntArray(); mBitmapHashes = new SparseIntArray();
for (int i = 0; i < mBitmaps.size(); i++) {
Bitmap b = mBitmaps.get(i);
if (b != null) {
mBitmapHashes.put(b.hashCode(), i);
}
}
} }
public int getBitmapId(Bitmap b) { public int getBitmapId(Bitmap b) {
@@ -1614,7 +1620,7 @@ public class RemoteViews implements Parcelable, Filter {
b = b.asShared(); b = b.asShared();
} }
mBitmaps.add(b); mBitmaps.add(b);
mBitmapHashes.put(mBitmaps.size() - 1, hash); mBitmapHashes.put(hash, mBitmaps.size() - 1);
mBitmapMemory = -1; mBitmapMemory = -1;
return (mBitmaps.size() - 1); return (mBitmaps.size() - 1);
} }
@@ -1631,7 +1637,6 @@ public class RemoteViews implements Parcelable, Filter {
public void writeBitmapsToParcel(Parcel dest, int flags) { public void writeBitmapsToParcel(Parcel dest, int flags) {
dest.writeTypedList(mBitmaps, flags); dest.writeTypedList(mBitmaps, flags);
dest.writeSparseIntArray(mBitmapHashes);
} }
public int getBitmapMemory() { public int getBitmapMemory() {