Update serialization of WallpaperColors

Do not assume mMainColors and mAllColors contain the same
color since recent changes modified that.
Update equals and hashCode as well to account for this.

Bug: 191391779
Bug: 191374703
Test: atest WallpaperColorsTest
Change-Id: I8c7775055a2360ec3a91cee76a42d14a143ec7fb
This commit is contained in:
Santiago Etchebehere
2021-06-18 15:58:14 -07:00
parent 5001447b86
commit 3af6019b81
2 changed files with 40 additions and 6 deletions

View File

@@ -20,6 +20,7 @@ import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Parcel;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
@@ -106,4 +107,26 @@ public class WallpaperColorsTest {
// This would crash:
canvas.drawBitmap(image, 0, 0, new Paint());
}
/**
* Parcelled WallpaperColors object should equal the original.
*/
@Test
public void testParcelUnparcel() {
Bitmap image = Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888);
WallpaperColors colors = WallpaperColors.fromBitmap(image);
Parcel parcel = Parcel.obtain();
colors.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
WallpaperColors reconstructed = new WallpaperColors(parcel);
parcel.recycle();
Assert.assertEquals("WallpaperColors recreated from Parcel should equal original",
colors, reconstructed);
Assert.assertEquals("getAllColors() on WallpaperColors recreated from Parcel should"
+ "return the same as the original",
colors.getAllColors(), reconstructed.getAllColors());
Assert.assertEquals("getMainColors() on WallpaperColors recreated from Parcel should"
+ "return the same as the original",
colors.getMainColors(), reconstructed.getMainColors());
}
}