package com.ftinc.scoop; import android.support.annotation.ColorInt; /** * Model object that represents a Color Property that the developer can subscribe to changes for * to update specified views. * * Example: * * Say you have a {@link Topping} that represents a PRIMARY color that you want to use for toolbars, fabs, and the like. * and you want to update this color using Palette based on primary images loading (such as a banner) and you want bound * views to automatically react to these changes. The user would then bind the associated views to this property * and Scoops will automatically take care of it * * Package: com.ftinc.scoop.model * Created by drew.heavner on 6/17/16. */ public final class Topping { /*********************************************************************************************** * * DEFAULT FLAVORS * */ public static final int PRIMARY = 0; public static final int PRIMARY_DARK = 1; public static final int ACCENT = 2; /*********************************************************************************************** * * Variables * */ final int id; @ColorInt int color = 0; @ColorInt int previousColor = 0; /*********************************************************************************************** * * Constructors * */ Topping(int id){ this.id = id; } /*********************************************************************************************** * * Getters * */ public int getId(){ return id; } public int getColor() { return color; } public int getPreviousColor() { return previousColor; } void updateColor(@ColorInt int color){ this.previousColor = this.color; this.color = color; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Topping topping = (Topping) o; if (id != topping.id) return false; if (color != topping.color) return false; return previousColor == topping.previousColor; } @Override public int hashCode() { int result = id; result = 31 * result + color; result = 31 * result + previousColor; return result; } @Override public String toString() { return "Topping{" + "id=" + id + ", color=" + color + ", previousColor=" + previousColor + '}'; } }