package org.petabytes.awesomeblogs.feeds; import android.content.Context; import android.support.annotation.NonNull; import android.text.Html; import android.view.View; import android.widget.TextView; import org.petabytes.api.source.local.Entry; import org.petabytes.api.util.Dates; import org.petabytes.awesomeblogs.AwesomeBlogsApp; import org.petabytes.awesomeblogs.R; import org.petabytes.awesomeblogs.summary.SummaryActivity; import org.petabytes.awesomeblogs.widget.CircleView; import org.petabytes.coordinator.Coordinator; import java.util.Random; import butterknife.BindView; import butterknife.OnClick; class EntryCircleCoordinator extends Coordinator { @BindView(R.id.circle) CircleView circleView; @BindView(R.id.title) TextView titleView; @BindView(R.id.author) TextView authorView; @BindView(R.id.date) TextView dateView; private final Context context; private final Entry entry; EntryCircleCoordinator(@NonNull Context context, @NonNull Entry entry) { this.context = context; this.entry = entry; } @Override public void attach(View view) { super.attach(view); bind(AwesomeBlogsApp.get().api() .isRead(entry.getLink()), isRead -> { titleView.setText(Html.fromHtml(entry.getTitle())); titleView.setAlpha(isRead ? 0.65f : 1f); authorView.setText("by " + entry.getAuthor()); dateView.setText(Dates.getRelativeTimeString( Dates.getDefaultDateFormats().parseDateTime(entry.getUpdatedAt()).getMillis())); }); setFillColor(); } @OnClick(R.id.circle) void onCircleClick() { context.startActivity(SummaryActivity.intent(context, entry.getLink())); } private void setFillColor() { switch (new Random(System.identityHashCode(entry.getTitle())).nextInt(12)) { case 0: circleView.setFillColor(R.color.background_2); break; case 1: circleView.setFillColor(R.color.background_3); break; case 2: circleView.setFillColor(R.color.background_4); break; case 3: circleView.setFillColor(R.color.background_5); break; case 4: circleView.setFillColor(R.color.background_6); break; case 5: circleView.setFillColor(R.color.background_7); break; case 6: circleView.setFillColor(R.color.background_8); break; case 7: circleView.setFillColor(R.color.background_9); break; case 8: circleView.setFillColor(R.color.background_11); break; case 9: circleView.setFillColor(R.color.background_13); break; case 10: circleView.setFillColor(R.color.background_14); break; case 11: circleView.setFillColor(R.color.background_15); break; } } }