package io.nextop.vm; import android.graphics.Bitmap; import android.net.Uri; import com.google.common.base.Objects; import io.nextop.Id; import javax.annotation.Nullable; public class ImageViewModel { public static ImageViewModel remote(Uri uri) { return new ImageViewModel(uri, null, null); } public static ImageViewModel local(Id localId) { return new ImageViewModel(null, localId, null); } public static ImageViewModel memory(Bitmap bitmap) { return new ImageViewModel(null, null, bitmap); } @Nullable public final Uri uri; @Nullable public final Id localId; @Nullable public final Bitmap bitmap; public ImageViewModel(@Nullable Uri uri, @Nullable Id localId, @Nullable Bitmap bitmap) { this.uri = uri; this.localId = localId; this.bitmap = bitmap; } @Override public int hashCode() { return Objects.hashCode(uri, localId, bitmap); } @Override public boolean equals(Object o) { if (!(o instanceof ImageViewModel)) { return false; } ImageViewModel b = (ImageViewModel) o; return Objects.equal(uri, b.uri) && Objects.equal(localId, b.localId) && Objects.equal(bitmap, b.bitmap); } }