Make MaterialPalette parcelable

Makes it easier to pass it around in intents

Bug: 18373617

Conflicts:
	src/com/android/contacts/common/util/MaterialColorMapUtils.java

Change-Id: Ie78d76223ec45c12551aac884b4daddc70e3c342
diff --git a/src/com/android/contacts/common/util/MaterialColorMapUtils.java b/src/com/android/contacts/common/util/MaterialColorMapUtils.java
index 9c8862c..7827ae3 100644
--- a/src/com/android/contacts/common/util/MaterialColorMapUtils.java
+++ b/src/com/android/contacts/common/util/MaterialColorMapUtils.java
@@ -20,6 +20,8 @@
 
 import android.content.res.Resources;
 import android.content.res.TypedArray;
+import android.os.Parcel;
+import android.os.Parcelable;
 import android.os.Trace;
 
 public class MaterialColorMapUtils {
@@ -34,13 +36,71 @@
                 com.android.contacts.common.R.array.letter_tile_colors_dark);
     }
 
-    public static class MaterialPalette {
+    public static class MaterialPalette implements Parcelable {
         public MaterialPalette(int primaryColor, int secondaryColor) {
             mPrimaryColor = primaryColor;
             mSecondaryColor = secondaryColor;
         }
         public final int mPrimaryColor;
         public final int mSecondaryColor;
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj) {
+                return true;
+            }
+            if (obj == null) {
+                return false;
+            }
+            if (getClass() != obj.getClass()) {
+                return false;
+            }
+            MaterialPalette other = (MaterialPalette) obj;
+            if (mPrimaryColor != other.mPrimaryColor) {
+                return false;
+            }
+            if (mSecondaryColor != other.mSecondaryColor) {
+                return false;
+            }
+            return true;
+        }
+
+        @Override
+        public int hashCode() {
+            final int prime = 31;
+            int result = 1;
+            result = prime * result + mPrimaryColor;
+            result = prime * result + mSecondaryColor;
+            return result;
+        }
+
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            dest.writeInt(mPrimaryColor);
+            dest.writeInt(mSecondaryColor);
+        }
+
+        private MaterialPalette(Parcel in) {
+            mPrimaryColor = in.readInt();
+            mSecondaryColor = in.readInt();
+        }
+
+        public static final Creator<MaterialPalette> CREATOR = new Creator<MaterialPalette>() {
+                @Override
+                public MaterialPalette createFromParcel(Parcel in) {
+                    return new MaterialPalette(in);
+                }
+
+                @Override
+                public MaterialPalette[] newArray(int size) {
+                    return new MaterialPalette[size];
+                }
+        };
     }
 
     /**