package com.kickstarter.libs;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import com.kickstarter.services.DiscoveryParams;
import auto.parcel.AutoParcel;
/**
* A {@link RefTag} is a string identifier that Kickstarter uses to credit a pledge to a source of traffic, e.g. discovery,
* activity, search, etc. This class represents all possible ref tags we support in the app.
*/
@AutoParcel
public abstract class RefTag implements Parcelable {
public abstract @NonNull String tag();
public static RefTag from(final @NonNull String tag) {
return new AutoParcel_RefTag(tag);
}
public static @NonNull RefTag category() {
return new AutoParcel_RefTag("category");
}
public static @NonNull RefTag category(final @NonNull DiscoveryParams.Sort sort) {
return new AutoParcel_RefTag("category" + sort.refTagSuffix());
}
public static @NonNull RefTag city() {
return new AutoParcel_RefTag("city");
}
public static @NonNull RefTag recommended() {
return new AutoParcel_RefTag("recommended");
}
public static @NonNull RefTag recommended(final @NonNull DiscoveryParams.Sort sort) {
return new AutoParcel_RefTag("recommended" + sort.refTagSuffix());
}
public static @NonNull RefTag social() {
return new AutoParcel_RefTag("social");
}
public static @NonNull RefTag search() {
return new AutoParcel_RefTag("search");
}
public static @NonNull RefTag searchFeatured() {
return new AutoParcel_RefTag("search_featured");
}
public static @NonNull RefTag searchPopular() {
return new AutoParcel_RefTag("search_popular_title_view");
}
public static @NonNull RefTag searchPopularFeatured() {
return new AutoParcel_RefTag("search_popular_featured");
}
public static @NonNull RefTag discovery() {
return new AutoParcel_RefTag("discovery");
}
public static @NonNull RefTag thanks() {
return new AutoParcel_RefTag("thanks");
}
public static @NonNull RefTag activity() {
return new AutoParcel_RefTag("activity");
}
public static @NonNull RefTag discoverPotd() {
return new AutoParcel_RefTag("discover_potd");
}
public static @NonNull RefTag categoryFeatured() {
return new AutoParcel_RefTag("category_featured");
}
public static @NonNull RefTag activitySample() {
return new AutoParcel_RefTag("discovery_activity_sample");
}
public static @NonNull RefTag update() {
return new AutoParcel_RefTag("update");
}
}