package com.kickstarter.models; import android.os.Parcelable; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.Html; import com.kickstarter.libs.qualifiers.AutoGson; import org.joda.time.DateTime; import auto.parcel.AutoParcel; @AutoGson @AutoParcel public abstract class Update implements Parcelable { public abstract @Nullable String body(); public abstract @Nullable Integer commentsCount(); public abstract @Nullable Boolean hasLiked(); public abstract long id(); public abstract @Nullable Integer likesCount(); public abstract long projectId(); public abstract @Nullable DateTime publishedAt(); public abstract int sequence(); public abstract String title(); public abstract @Nullable DateTime updatedAt(); public abstract Urls urls(); public abstract @Nullable User user(); public abstract @Nullable Boolean visible(); @AutoParcel.Builder public abstract static class Builder { public abstract Builder body(String __); public abstract Builder commentsCount(Integer __); public abstract Builder hasLiked(Boolean __); public abstract Builder id(long __); public abstract Builder likesCount(Integer __); public abstract Builder projectId(long __); public abstract Builder publishedAt(DateTime __); public abstract Builder sequence(int __); public abstract Builder title(String __); public abstract Builder updatedAt(DateTime __); public abstract Builder urls(Urls __); public abstract Builder user(User __); public abstract Builder visible(Boolean __); public abstract Update build(); } public static Builder builder() { return new AutoParcel_Update.Builder(); } public abstract Builder toBuilder(); @AutoParcel @AutoGson public abstract static class Urls implements Parcelable { public abstract Web web(); public abstract @Nullable Api api(); @AutoParcel.Builder public abstract static class Builder { public abstract Builder web(Web __); public abstract Builder api(Api __); public abstract Urls build(); } public static Builder builder() { return new AutoParcel_Update_Urls.Builder(); } public abstract Builder toBuilder(); @AutoParcel @AutoGson public abstract static class Web implements Parcelable { public abstract @Nullable String likes(); public abstract String update(); @AutoParcel.Builder public abstract static class Builder { public abstract Builder likes(String __); public abstract Builder update(String __); public abstract Web build(); } public static Builder builder() { return new AutoParcel_Update_Urls_Web.Builder(); } public abstract Builder toBuilder(); } @AutoParcel @AutoGson public abstract static class Api implements Parcelable { public abstract @Nullable String comments(); public abstract @Nullable String update(); @AutoParcel.Builder public abstract static class Builder { public abstract Builder comments(String __); public abstract Builder update(String __); public abstract Api build(); } public static Builder builder() { return new AutoParcel_Update_Urls_Api.Builder(); } public abstract Builder toBuilder(); } } private static final int TRUNCATED_BODY_LENGTH = 400; public @NonNull String truncatedBody() { try { String str = Html.fromHtml(body()).toString(); if (str.length() > TRUNCATED_BODY_LENGTH) { str = str.substring(0, TRUNCATED_BODY_LENGTH - 1) + "\u2026"; } return str; } catch (final @NonNull NullPointerException ignore) {} return ""; } }