package com.kickstarter.libs; import android.os.Parcelable; import android.support.annotation.Nullable; import org.joda.time.DateTime; import auto.parcel.AutoParcel; @AutoParcel public abstract class RelativeDateTimeOptions implements Parcelable { /** * Abbreviates string, e.g.: "in 1 hr" */ public abstract boolean abbreviated(); /** * Don't output tense, e.g.: "1 hour" instead of "in 1 hour" */ public abstract boolean absolute(); /** * Compare against this date instead of the current time */ public abstract @Nullable DateTime relativeToDateTime(); /** * Number of seconds difference permitted before an attempt to describe the relative date is abandoned. * For example, "738 days ago" is not helpful to users. The threshold defaults to 30 days. */ public abstract int threshold(); @AutoParcel.Builder public abstract static class Builder { public abstract Builder abbreviated(boolean __); public abstract Builder absolute(boolean __); public abstract Builder relativeToDateTime(DateTime __); public abstract Builder threshold(int __); public abstract RelativeDateTimeOptions build(); } public static Builder builder() { return new AutoParcel_RelativeDateTimeOptions.Builder() .abbreviated(false) .absolute(false) .threshold(THIRTY_DAYS_IN_SECONDS); } public abstract Builder toBuilder(); private final static int THIRTY_DAYS_IN_SECONDS = 60 * 60 * 24 * 30; }