package com.kickstarter.models;
import android.net.Uri;
import android.os.Parcelable;
import android.support.annotation.Nullable;
import android.support.annotation.StringDef;
import com.kickstarter.libs.qualifiers.AutoGson;
import org.joda.time.DateTime;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import auto.parcel.AutoParcel;
@AutoGson
@AutoParcel
public abstract class Activity implements Parcelable {
public abstract @Category String category();
public abstract DateTime createdAt();
public abstract long id();
public abstract @Nullable Project project();
public abstract @Nullable Update update();
public abstract DateTime updatedAt();
public abstract @Nullable User user();
@AutoParcel.Builder
public abstract static class Builder {
public abstract Builder category(@Category String __);
public abstract Builder createdAt(DateTime __);
public abstract Builder id(long __);
public abstract Builder project(Project __);
public abstract Builder update(Update __);
public abstract Builder updatedAt(DateTime __);
public abstract Builder user(User __);
public abstract Activity build();
}
public static Builder builder() {
return new AutoParcel_Activity.Builder();
}
public abstract Builder toBuilder();
public static final String CATEGORY_WATCH = "watch";
public static final String CATEGORY_UPDATE = "update";
public static final String CATEGORY_COMMENT_PROJECT = "comment-project";
public static final String CATEGORY_BACKING = "backing";
public static final String CATEGORY_COMMENT_POST = "comment-post";
public static final String CATEGORY_CANCELLATION = "cancellation";
public static final String CATEGORY_SUCCESS = "success";
public static final String CATEGORY_SUSPENSION = "suspension";
public static final String CATEGORY_LAUNCH = "launch";
public static final String CATEGORY_FAILURE = "failure";
public static final String CATEGORY_FUNDING = "funding";
public static final String CATEGORY_BACKING_CANCELED = "backing-canceled";
public static final String CATEGORY_BACKING_DROPPED = "backing-dropped";
public static final String CATEGORY_BACKING_REWARD = "backing-reward";
public static final String CATEGORY_BACKING_AMOUNT = "backing-amount";
public static final String CATEGORY_COMMENT_PROPOSAL = "comment-proposal";
public static final String CATEGORY_FOLLOW = "follow";
@Retention(RetentionPolicy.SOURCE)
@StringDef({CATEGORY_WATCH, CATEGORY_UPDATE, CATEGORY_COMMENT_PROJECT, CATEGORY_BACKING,
CATEGORY_COMMENT_POST, CATEGORY_CANCELLATION, CATEGORY_SUCCESS, CATEGORY_SUSPENSION, CATEGORY_LAUNCH,
CATEGORY_FAILURE, CATEGORY_FUNDING, CATEGORY_BACKING_CANCELED, CATEGORY_BACKING_DROPPED, CATEGORY_BACKING_REWARD,
CATEGORY_BACKING_AMOUNT, CATEGORY_COMMENT_PROPOSAL, CATEGORY_FOLLOW})
public @interface Category {}
public String projectUpdateUrl() {
return Uri.parse(project().webProjectUrl()).buildUpon()
.appendEncodedPath("posts")
.appendPath(Long.toString(update().id()))
.toString();
}
}