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 RelativeDateOptions implements Parcelable {
  public abstract boolean abbreviated();
  public abstract boolean absolute();
  public abstract @Nullable DateTime relativeToDateTime();
  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 RelativeDateOptions build();
  }

  public static Builder builder() {
    return new AutoParcel_RelativeDateOptions.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;
}



@@ -247,143 +247,508 @@
 %7B%0A  
-public abstract boolean abbreviated();%0A  public abstract boolean absolute();%0A  public abstract @Nullable DateTime relativeToDateTime();
+// Abbreviates string, e.g.: %22in 1 hr%22%0A  public abstract boolean abbreviated();%0A%0A  // Don't output tense, e.g.: %221 hour%22 instead of %22in 1 hour%22%0A  public abstract boolean absolute();%0A%0A  // Compare against this date instead of the current time%0A  public abstract @Nullable DateTime relativeToDateTime();%0A%0A  // Number of seconds difference permitted before an attempt to describe the relative date is abandoned.%0A  // For example, %22738 days ago%22 is not helpful to users. The threshold defaults to 30 days.
 %0A  p

Add comments explaining relative date options