From 1d64057fd41442d276fd690229dc0c0f9afd2b96 Mon Sep 17 00:00:00 2001 From: Anderson Mesquita Date: Thu, 2 May 2019 20:06:36 -0400 Subject: Extract action button utils/callback into classes This splits the logic in `ActionButtonUtils` and `DefaultActionButtonCallback` into multiple specialized classes to reduce duplication figuring out which button/action to use while at the same time making each individual button to have a single responsability. --- .../actionbutton/MarkAsPlayedActionButton.java | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MarkAsPlayedActionButton.java (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MarkAsPlayedActionButton.java') diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MarkAsPlayedActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MarkAsPlayedActionButton.java new file mode 100644 index 000000000..4d906cee5 --- /dev/null +++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MarkAsPlayedActionButton.java @@ -0,0 +1,41 @@ +package de.danoeh.antennapod.adapter.actionbutton; + +import android.content.Context; +import android.support.annotation.AttrRes; +import android.support.annotation.StringRes; +import android.view.View; + +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.core.feed.FeedItem; +import de.danoeh.antennapod.core.storage.DBWriter; + +class MarkAsPlayedActionButton extends ItemActionButton { + + MarkAsPlayedActionButton(FeedItem item) { + super(item); + } + + @Override + @StringRes + public int getLabel() { + return R.string.mark_read_label; + } + + @Override + @AttrRes + public int getDrawable() { + return R.attr.navigation_accept; + } + + @Override + public void onClick(Context context) { + if (!item.isPlayed()) { + DBWriter.markItemPlayed(item, FeedItem.PLAYED, true); + } + } + + @Override + public int getVisibility() { + return (item.isPlayed()) ? View.INVISIBLE : View.VISIBLE; + } +} -- cgit v1.2.3