Mholloway has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/338106 )

Change subject: Update Featured Article card footer based on its presence in a 
list
......................................................................

Update Featured Article card footer based on its presence in a list

Bug: T139377
Change-Id: I2875b611242d50874f89a4b635c9f9e097c0011b
---
M app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java
M app/src/main/java/org/wikipedia/feed/view/ActionFooterView.java
M app/src/main/java/org/wikipedia/page/PageFragment.java
M app/src/main/res/values/strings_no_translate.xml
4 files changed, 47 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/06/338106/1

diff --git 
a/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java 
b/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java
index f0242a8..b83668b 100644
--- a/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java
@@ -8,11 +8,16 @@
 import android.widget.TextView;
 
 import org.wikipedia.R;
+import org.wikipedia.concurrency.CallbackTask;
 import org.wikipedia.feed.view.ActionFooterView;
 import org.wikipedia.feed.view.CardHeaderView;
 import org.wikipedia.feed.view.DefaultFeedCardView;
 import org.wikipedia.feed.view.FeedAdapter;
 import org.wikipedia.history.HistoryEntry;
+import org.wikipedia.page.PageTitle;
+import org.wikipedia.readinglist.ReadingList;
+import org.wikipedia.readinglist.page.ReadingListPage;
+import org.wikipedia.readinglist.page.database.ReadingListDaoProxy;
 import org.wikipedia.views.FaceAndColorDetectImageView;
 import org.wikipedia.views.GoneIfEmptyTextView;
 import org.wikipedia.views.ItemTouchHelperSwipeAdapter;
@@ -51,7 +56,7 @@
         image(imageUri);
 
         header(card);
-        footer();
+        footer(card);
     }
 
     @OnClick({R.id.view_featured_article_card_image, 
R.id.view_featured_article_card_text_container})
@@ -91,12 +96,36 @@
         header(header);
     }
 
-    private void footer() {
-        footer(new ActionFooterView(getContext())
-                .actionIcon(R.drawable.ic_bookmark_border_black_24dp)
-                
.actionText(R.string.view_featured_article_footer_save_button_label)
-                .onActionListener(new CardSaveListener())
-                .onShareListener(new CardShareListener()));
+    private void footer(@NonNull FeaturedArticleCard card) {
+        PageTitle title = new PageTitle(card.articleTitle(), card.wikiSite());
+        
ReadingList.DAO.anyListContainsTitleAsync(ReadingListDaoProxy.key(title),
+                new CallbackTask.Callback<ReadingListPage>() {
+                    @Override
+                    public void success(@Nullable ReadingListPage page) {
+                        boolean listContainsTitle = page != null;
+
+                        int actionIcon = listContainsTitle
+                                ? R.drawable.ic_bookmark_white_24dp
+                                : R.drawable.ic_bookmark_border_black_24dp;
+
+                        int actionText = listContainsTitle
+                                ? 
R.string.view_featured_article_footer_saved_button_label
+                                : 
R.string.view_featured_article_footer_save_button_label;
+
+                        ActionFooterView footer = new 
ActionFooterView(getContext())
+                                .actionIcon(actionIcon)
+                                .actionText(actionText)
+                                .onActionListener(new CardSaveListener())
+                                .onShareListener(new CardShareListener());
+
+                        if (listContainsTitle) {
+                            footer.actionIconColor(R.color.foundation_blue);
+                            footer.actionTextColor(R.color.foundation_blue);
+                        }
+
+                        footer(footer);
+                    }
+                });
     }
 
     private void image(@Nullable Uri uri) {
diff --git a/app/src/main/java/org/wikipedia/feed/view/ActionFooterView.java 
b/app/src/main/java/org/wikipedia/feed/view/ActionFooterView.java
index 95c7637..857bf49 100644
--- a/app/src/main/java/org/wikipedia/feed/view/ActionFooterView.java
+++ b/app/src/main/java/org/wikipedia/feed/view/ActionFooterView.java
@@ -1,9 +1,11 @@
 package org.wikipedia.feed.view;
 
 import android.content.Context;
+import android.support.annotation.ColorRes;
 import android.support.annotation.DrawableRes;
 import android.support.annotation.Nullable;
 import android.support.annotation.StringRes;
+import android.support.v4.content.ContextCompat;
 import android.view.View;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
@@ -31,11 +33,19 @@
         return this;
     }
 
+    public void actionIconColor(@ColorRes int color) {
+        actionIcon.setColorFilter(ContextCompat.getColor(getContext(), color));
+    }
+
     public ActionFooterView actionText(@StringRes int resId) {
         actionText.setText(getResources().getString(resId));
         return this;
     }
 
+    public void actionTextColor(@ColorRes int color) {
+        actionText.setTextColor(ContextCompat.getColor(getContext(), color));
+    }
+
     public ActionFooterView onActionListener(@Nullable OnClickListener 
listener) {
         actionButton.setOnClickListener(listener);
         return this;
diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java 
b/app/src/main/java/org/wikipedia/page/PageFragment.java
index dfba3dc..95b34d4 100755
--- a/app/src/main/java/org/wikipedia/page/PageFragment.java
+++ b/app/src/main/java/org/wikipedia/page/PageFragment.java
@@ -648,7 +648,6 @@
         webView.getSettings().setDefaultFontSize((int) 
app.getFontSize(getActivity().getWindow()));
     }
 
-    // TODO: Update bookmark icon on the page action toolbar
     public void updateBookmark() {
         
ReadingList.DAO.anyListContainsTitleAsync(ReadingListDaoProxy.key(getTitle()),
                 new CallbackTask.Callback<ReadingListPage>() {
diff --git a/app/src/main/res/values/strings_no_translate.xml 
b/app/src/main/res/values/strings_no_translate.xml
index 83ee16f..c845987 100644
--- a/app/src/main/res/values/strings_no_translate.xml
+++ b/app/src/main/res/values/strings_no_translate.xml
@@ -47,6 +47,7 @@
     <!-- Experimental English-only features -->
     <string name="view_featured_article_card_title">Featured article</string>
     <string name="view_featured_article_footer_save_button_label">Save</string>
+    <string 
name="view_featured_article_footer_saved_button_label">Saved</string>
 
     <!-- /The Feed -->
 

-- 
To view, visit https://gerrit.wikimedia.org/r/338106
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2875b611242d50874f89a4b635c9f9e097c0011b
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to