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

Change subject: Slight performance improvement to Feed scrolling.
......................................................................

Slight performance improvement to Feed scrolling.

Most of our Feed cards have a "header" and a "footer", and previously
these components were dynamically inflated when the Feed card was bound to
the RecyclerView, instead of being inflated all at once when the view is
first created. This can actually cause a performance degradation in
certain cases.

This patch makes the header and footer views become part of the actual xml
layout of the card views, and will therefore inflate along with the rest
of the layout.

Change-Id: I4d77eafb4df381814a6c68f89cea1e62594a5abd
---
M 
app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCardView.java
M 
app/src/main/java/org/wikipedia/feed/continuereading/ContinueReadingCardView.java
M app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java
M app/src/main/java/org/wikipedia/feed/image/FeaturedImageCardView.java
M app/src/main/java/org/wikipedia/feed/mostread/MostReadCardView.java
M app/src/main/java/org/wikipedia/feed/news/NewsListCardView.java
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
M app/src/main/java/org/wikipedia/feed/view/ActionFooterView.java
D app/src/main/java/org/wikipedia/feed/view/CardFooterView.java
M app/src/main/java/org/wikipedia/feed/view/CardHeaderView.java
M app/src/main/java/org/wikipedia/feed/view/CardLargeHeaderView.java
M app/src/main/java/org/wikipedia/feed/view/ListCardView.java
M app/src/main/res/layout/view_card_featured_article.xml
M app/src/main/res/layout/view_card_featured_image.xml
D app/src/main/res/layout/view_card_footer.xml
M app/src/main/res/layout/view_card_on_this_day.xml
M app/src/main/res/layout/view_list_card.xml
17 files changed, 87 insertions(+), 176 deletions(-)


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

diff --git 
a/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCardView.java
 
b/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCardView.java
index 0c63c96..a7a4d15 100644
--- 
a/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCardView.java
+++ 
b/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCardView.java
@@ -7,8 +7,6 @@
 import android.view.View;
 
 import org.wikipedia.R;
-import org.wikipedia.feed.view.CardHeaderView;
-import org.wikipedia.feed.view.CardLargeHeaderView;
 import org.wikipedia.feed.view.ListCardItemView;
 import org.wikipedia.feed.view.ListCardRecyclerAdapter;
 import org.wikipedia.feed.view.ListCardView;
@@ -34,19 +32,15 @@
     private void header(@NonNull final BecauseYouReadCard card) {
         int age = (int) card.daysOld();
         String subtitle = getSubtitle(age);
-        CardHeaderView header = new CardHeaderView(getContext())
-                .setTitle(card.title())
+        headerView().setTitle(card.title())
                 .setSubtitle(subtitle)
                 .setImage(R.drawable.ic_restore_black_24dp)
                 .setImageCircleColor(R.color.base30)
                 .setCard(card)
                 .setCallback(getCallback());
-        header(header);
-        CardLargeHeaderView largeHeader = new CardLargeHeaderView(getContext())
-                .setTitle(card.pageTitle())
+        largeHeaderView().setTitle(card.pageTitle())
                 .setImage(card.image())
                 .onClickListener(new SelectPageCallbackAdapter(card));
-        largeHeader(largeHeader);
     }
 
     @VisibleForTesting @NonNull String getSubtitle(int age) {
diff --git 
a/app/src/main/java/org/wikipedia/feed/continuereading/ContinueReadingCardView.java
 
b/app/src/main/java/org/wikipedia/feed/continuereading/ContinueReadingCardView.java
index 6d64ec2..2d1dd28 100644
--- 
a/app/src/main/java/org/wikipedia/feed/continuereading/ContinueReadingCardView.java
+++ 
b/app/src/main/java/org/wikipedia/feed/continuereading/ContinueReadingCardView.java
@@ -6,8 +6,6 @@
 import android.view.View;
 
 import org.wikipedia.R;
-import org.wikipedia.feed.view.CardHeaderView;
-import org.wikipedia.feed.view.CardLargeHeaderView;
 import org.wikipedia.feed.view.ListCardView;
 import org.wikipedia.history.HistoryEntry;
 import org.wikipedia.views.ItemTouchHelperSwipeAdapter;
@@ -33,19 +31,15 @@
             subtitlePlural = R.plurals.view_continue_reading_card_subtitle;
             subtitle = getResources().getQuantityString(subtitlePlural, age, 
age);
         }
-        CardHeaderView header = new CardHeaderView(getContext())
-                .setTitle(R.string.view_continue_reading_card_title)
+        headerView().setTitle(R.string.view_continue_reading_card_title)
                 .setSubtitle(subtitle)
                 .setImage(R.drawable.ic_arrow_forward_black_24dp)
                 .setImageCircleColor(R.color.base30)
                 .setCard(card)
                 .setCallback(getCallback());
-        header(header);
-        CardLargeHeaderView largeHeader = new CardLargeHeaderView(getContext())
-                .setTitle(card.title())
+        largeHeaderView().setTitle(card.title())
                 .setImage(card.image())
                 .onClickListener(new CardClickListener());
-        largeHeader(largeHeader);
     }
 
     private class CardClickListener implements OnClickListener {
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 5ff1ef0..036c7f0 100644
--- a/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java
@@ -23,7 +23,6 @@
 import org.wikipedia.views.FaceAndColorDetectImageView;
 import org.wikipedia.views.GoneIfEmptyTextView;
 import org.wikipedia.views.ItemTouchHelperSwipeAdapter;
-import org.wikipedia.views.ViewUtil;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
@@ -37,8 +36,8 @@
         void onRemoveFeaturedPageFromList(@NonNull FeaturedArticleCard card, 
@NonNull HistoryEntry entry);
     }
 
-    @BindView(R.id.view_featured_article_card_header) View headerView;
-    @BindView(R.id.view_featured_article_card_footer) View footerView;
+    @BindView(R.id.view_featured_article_card_header) CardHeaderView 
headerView;
+    @BindView(R.id.view_featured_article_card_footer) ActionFooterView 
footerView;
     @BindView(R.id.view_featured_article_card_image) 
FaceAndColorDetectImageView imageView;
     @BindView(R.id.view_featured_article_card_article_title) TextView 
articleTitleView;
     @BindView(R.id.view_featured_article_card_article_subtitle) 
GoneIfEmptyTextView articleSubtitleView;
@@ -77,9 +76,7 @@
 
     @Override public void setCallback(@Nullable FeedAdapter.Callback callback) 
{
         super.setCallback(callback);
-        if (headerView instanceof CardHeaderView) {
-            ((CardHeaderView) headerView).setCallback(callback);
-        }
+        headerView.setCallback(callback);
     }
 
     private void articleTitle(@NonNull String articleTitle) {
@@ -95,14 +92,12 @@
     }
 
     private void header(@NonNull FeaturedArticleCard card) {
-        CardHeaderView header = new CardHeaderView(getContext())
-                .setTitle(card.title())
+        headerView.setTitle(card.title())
                 .setSubtitle(card.subtitle())
                 .setImage(R.drawable.ic_star_black_24dp)
                 .setImageCircleColor(R.color.yellow50)
                 .setCard(card)
                 .setCallback(getCallback());
-        header(header);
     }
 
     private void footer(@NonNull FeaturedArticleCard card) {
@@ -120,8 +115,7 @@
                                 ? 
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)
+                        footerView.actionIcon(actionIcon)
                                 .actionText(actionText)
                                 .onActionListener(listContainsTitle
                                         ? new CardBookmarkMenuListener()
@@ -129,11 +123,9 @@
                                 .onShareListener(new CardShareListener());
 
                         if (listContainsTitle) {
-                            
footer.actionIconColor(ResourceUtil.getThemedAttributeId(getContext(), 
R.attr.colorAccent));
-                            
footer.actionTextColor(ResourceUtil.getThemedAttributeId(getContext(), 
R.attr.colorAccent));
+                            
footerView.actionIconColor(ResourceUtil.getThemedAttributeId(getContext(), 
R.attr.colorAccent));
+                            
footerView.actionTextColor(ResourceUtil.getThemedAttributeId(getContext(), 
R.attr.colorAccent));
                         }
-
-                        footer(footer);
                     }
                 });
     }
@@ -145,16 +137,6 @@
             imageView.setVisibility(VISIBLE);
             imageView.loadImage(uri);
         }
-    }
-
-    private void header(@NonNull View view) {
-        ViewUtil.replace(headerView, view);
-        headerView = view;
-    }
-
-    private void footer(@NonNull View view) {
-        ViewUtil.replace(footerView, view);
-        footerView = view;
     }
 
     @NonNull private HistoryEntry getEntry() {
diff --git 
a/app/src/main/java/org/wikipedia/feed/image/FeaturedImageCardView.java 
b/app/src/main/java/org/wikipedia/feed/image/FeaturedImageCardView.java
index a04b3dd..ae24cea 100644
--- a/app/src/main/java/org/wikipedia/feed/image/FeaturedImageCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/image/FeaturedImageCardView.java
@@ -15,7 +15,6 @@
 import org.wikipedia.richtext.RichTextUtil;
 import org.wikipedia.views.FaceAndColorDetectImageView;
 import org.wikipedia.views.ItemTouchHelperSwipeAdapter;
-import org.wikipedia.views.ViewUtil;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
@@ -30,8 +29,8 @@
         void onFeaturedImageSelected(@NonNull FeaturedImageCard card);
     }
 
-    @BindView(R.id.view_featured_image_card_header) View headerView;
-    @BindView(R.id.view_featured_image_card_footer) View footerView;
+    @BindView(R.id.view_featured_image_card_header) CardHeaderView headerView;
+    @BindView(R.id.view_featured_image_card_footer) ActionFooterView 
footerView;
     @BindView(R.id.view_featured_image_card_image) FaceAndColorDetectImageView 
imageView;
     @BindView(R.id.featured_image_description_Text) TextView descriptionView;
 
@@ -53,9 +52,7 @@
 
     @Override public void setCallback(@Nullable FeedAdapter.Callback callback) 
{
         super.setCallback(callback);
-        if (headerView instanceof CardHeaderView) {
-            ((CardHeaderView) headerView).setCallback(callback);
-        }
+        headerView.setCallback(callback);
     }
 
     private void image(@NonNull Uri uri) {
@@ -71,32 +68,19 @@
     }
 
     private void header(@NonNull FeaturedImageCard card) {
-        CardHeaderView header = new CardHeaderView(getContext())
-                .setTitle(card.title())
+        headerView.setTitle(card.title())
                 .setSubtitle(card.subtitle())
                 .setImage(R.drawable.icon_potd_photo_camera)
                 .setImageCircleColor(R.color.base30)
                 .setCard(card)
                 .setCallback(getCallback());
-        header(header);
     }
 
     private void footer() {
-        footer(new ActionFooterView(getContext())
-                .actionIcon(R.drawable.ic_file_download)
+        footerView.actionIcon(R.drawable.ic_file_download)
                 .actionText(R.string.view_featured_image_card_download)
                 .onActionListener(new CardDownloadListener())
-                .onShareListener(new CardShareListener()));
-    }
-
-    private void header(@NonNull View view) {
-        ViewUtil.replace(headerView, view);
-        headerView = view;
-    }
-
-    private void footer(@NonNull View view) {
-        ViewUtil.replace(footerView, view);
-        footerView = view;
+                .onShareListener(new CardShareListener());
     }
 
     private class CardClickListener implements OnClickListener {
diff --git 
a/app/src/main/java/org/wikipedia/feed/mostread/MostReadCardView.java 
b/app/src/main/java/org/wikipedia/feed/mostread/MostReadCardView.java
index 630aa7c..53e9172 100644
--- a/app/src/main/java/org/wikipedia/feed/mostread/MostReadCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/mostread/MostReadCardView.java
@@ -5,7 +5,6 @@
 import android.support.annotation.Nullable;
 
 import org.wikipedia.R;
-import org.wikipedia.feed.view.CardHeaderView;
 import org.wikipedia.feed.view.ListCardItemView;
 import org.wikipedia.feed.view.ListCardRecyclerAdapter;
 import org.wikipedia.feed.view.ListCardView;
@@ -33,14 +32,12 @@
     }
 
     private void header(@NonNull MostReadListCard card) {
-        CardHeaderView header = new CardHeaderView(getContext())
-                .setTitle(card.title())
+        headerView().setTitle(card.title())
                 .setSubtitle(card.subtitle())
                 .setImage(R.drawable.ic_most_read)
                 
.setImageCircleColor(ResourceUtil.getThemedAttributeId(getContext(), 
R.attr.colorAccent))
                 .setCard(card)
                 .setCallback(getCallback());
-        header(header);
     }
 
     private class RecyclerAdapter extends 
ListCardRecyclerAdapter<MostReadItemCard> {
diff --git a/app/src/main/java/org/wikipedia/feed/news/NewsListCardView.java 
b/app/src/main/java/org/wikipedia/feed/news/NewsListCardView.java
index b48262e..354bc9c 100644
--- a/app/src/main/java/org/wikipedia/feed/news/NewsListCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/news/NewsListCardView.java
@@ -6,7 +6,6 @@
 import android.view.View;
 
 import org.wikipedia.R;
-import org.wikipedia.feed.view.CardHeaderView;
 import org.wikipedia.feed.view.FeedAdapter;
 import org.wikipedia.feed.view.HorizontalScrollingListCardItemView;
 import org.wikipedia.feed.view.HorizontalScrollingListCardView;
@@ -33,14 +32,12 @@
     }
 
     private void header(@NonNull NewsListCard card) {
-        CardHeaderView header = new CardHeaderView(getContext())
-                .setTitle(R.string.view_card_news_title)
+        headerView().setTitle(R.string.view_card_news_title)
                 
.setSubtitle(DateUtil.getFeedCardDateString(card.date().baseCalendar()))
                 .setImage(R.drawable.icon_in_the_news)
                 .setImageCircleColor(R.color.base50)
                 .setCard(card)
                 .setCallback(getCallback());
-        header(header);
     }
 
     private class RecyclerAdapter extends 
HorizontalScrollingListCardView.RecyclerAdapter<NewsItemCard> {
diff --git 
a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java 
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
index ee72e3b..fcc0c9d 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
@@ -23,7 +23,6 @@
 import org.wikipedia.util.GradientUtil;
 import org.wikipedia.views.DontInterceptTouchListener;
 import org.wikipedia.views.MarginItemDecoration;
-import org.wikipedia.views.ViewUtil;
 
 import java.util.List;
 
@@ -32,7 +31,7 @@
 import butterknife.OnClick;
 
 public class OnThisDayCardView extends DefaultFeedCardView<OnThisDayCard> {
-    @BindView(R.id.view_on_this_day_card_header) View headerView;
+    @BindView(R.id.view_on_this_day_card_header) CardHeaderView headerView;
     @BindView(R.id.text) TextView descTextView;
     @BindView(R.id.year) TextView yearTextView;
     @BindView(R.id.next_year) TextView nextYearTextView;
@@ -98,15 +97,11 @@
     @Override
     public void setCallback(@Nullable FeedAdapter.Callback callback) {
         super.setCallback(callback);
-        if (headerView instanceof CardHeaderView) {
-            ((CardHeaderView) headerView).setCallback(callback);
-        }
+        headerView.setCallback(callback);
     }
 
     private void header(@NonNull OnThisDayCard card) {
-
-        CardHeaderView header = new CardHeaderView(getContext())
-                .setTitle(card.title())
+        headerView.setTitle(card.title())
                 .setSubtitle(card.subtitle())
                 .setImage(R.drawable.ic_otd_icon)
                 .setImageCircleColor(R.color.base30)
@@ -121,12 +116,6 @@
         this.wiki = card.wiki();
         this.onThisDay = card.onthisday();
         this.date = card.date();
-        header(header);
-    }
-
-    private void header(@NonNull View view) {
-        ViewUtil.replace(headerView, view);
-        headerView = view;
     }
 
     @Override
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 857bf49..a92f951 100644
--- a/app/src/main/java/org/wikipedia/feed/view/ActionFooterView.java
+++ b/app/src/main/java/org/wikipedia/feed/view/ActionFooterView.java
@@ -6,6 +6,7 @@
 import android.support.annotation.Nullable;
 import android.support.annotation.StringRes;
 import android.support.v4.content.ContextCompat;
+import android.util.AttributeSet;
 import android.view.View;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
@@ -24,6 +25,20 @@
 
     public ActionFooterView(Context context) {
         super(context);
+        init();
+    }
+
+    public ActionFooterView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    public ActionFooterView(Context context, AttributeSet attrs, int 
defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init();
+    }
+
+    private void init() {
         inflate(getContext(), R.layout.view_card_action_footer, this);
         ButterKnife.bind(this);
     }
diff --git a/app/src/main/java/org/wikipedia/feed/view/CardFooterView.java 
b/app/src/main/java/org/wikipedia/feed/view/CardFooterView.java
deleted file mode 100644
index 7126f18..0000000
--- a/app/src/main/java/org/wikipedia/feed/view/CardFooterView.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.wikipedia.feed.view;
-
-import android.content.Context;
-import android.support.annotation.Nullable;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import org.wikipedia.R;
-
-import butterknife.BindView;
-import butterknife.ButterKnife;
-
-public class CardFooterView extends RelativeLayout {
-    @BindView(R.id.view_card_footer_text) TextView textView;
-
-    public CardFooterView(Context context) {
-        super(context);
-
-        inflate(getContext(), R.layout.view_card_footer, this);
-        ButterKnife.bind(this);
-    }
-
-    public CardFooterView setText(@Nullable CharSequence text) {
-        textView.setText(text);
-        return this;
-    }
-}
diff --git a/app/src/main/java/org/wikipedia/feed/view/CardHeaderView.java 
b/app/src/main/java/org/wikipedia/feed/view/CardHeaderView.java
index 3c5a4e3..1f27435 100644
--- a/app/src/main/java/org/wikipedia/feed/view/CardHeaderView.java
+++ b/app/src/main/java/org/wikipedia/feed/view/CardHeaderView.java
@@ -12,6 +12,7 @@
 import android.support.v4.view.ViewCompat;
 import android.support.v7.widget.AppCompatImageView;
 import android.support.v7.widget.PopupMenu;
+import android.util.AttributeSet;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.FrameLayout;
@@ -37,7 +38,21 @@
 
     public CardHeaderView(Context context) {
         super(context);
-        inflate(context, R.layout.view_card_header, this);
+        init();
+    }
+
+    public CardHeaderView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    public CardHeaderView(Context context, AttributeSet attrs, int 
defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init();
+    }
+
+    private void init() {
+        inflate(getContext(), R.layout.view_card_header, this);
         ButterKnife.bind(this);
     }
 
diff --git a/app/src/main/java/org/wikipedia/feed/view/CardLargeHeaderView.java 
b/app/src/main/java/org/wikipedia/feed/view/CardLargeHeaderView.java
index 7d9e640..18b449b 100644
--- a/app/src/main/java/org/wikipedia/feed/view/CardLargeHeaderView.java
+++ b/app/src/main/java/org/wikipedia/feed/view/CardLargeHeaderView.java
@@ -10,6 +10,7 @@
 import android.support.annotation.Nullable;
 import android.support.v4.content.ContextCompat;
 import android.support.v4.view.ViewCompat;
+import android.util.AttributeSet;
 import android.view.View;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
@@ -27,7 +28,20 @@
 
     public CardLargeHeaderView(Context context) {
         super(context);
+        init();
+    }
 
+    public CardLargeHeaderView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    public CardLargeHeaderView(Context context, AttributeSet attrs, int 
defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init();
+    }
+
+    private void init() {
         resetBackgroundColor();
         inflate(getContext(), R.layout.view_card_header_large, this);
         ButterKnife.bind(this);
diff --git a/app/src/main/java/org/wikipedia/feed/view/ListCardView.java 
b/app/src/main/java/org/wikipedia/feed/view/ListCardView.java
index 60e5620..b2de62f 100644
--- a/app/src/main/java/org/wikipedia/feed/view/ListCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/view/ListCardView.java
@@ -12,7 +12,6 @@
 import org.wikipedia.R;
 import org.wikipedia.feed.model.Card;
 import org.wikipedia.views.DrawableItemDecoration;
-import org.wikipedia.views.ViewUtil;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
@@ -23,8 +22,8 @@
         void onMoreContentSelected(@NonNull Card card);
     }
 
-    @BindView(R.id.view_list_card_header) View headerView;
-    @BindView(R.id.view_list_card_large_header) View largeHeaderView;
+    @BindView(R.id.view_list_card_header) CardHeaderView headerView;
+    @BindView(R.id.view_list_card_large_header) CardLargeHeaderView 
largeHeaderView;
     @BindView(R.id.view_list_card_list) RecyclerView recyclerView;
     @BindView(R.id.view_list_card_more_container) View moreContentContainer;
     @BindView(R.id.view_list_card_more_text) TextView moreContentTextView;
@@ -39,9 +38,7 @@
 
     @Override public void setCallback(@Nullable FeedAdapter.Callback callback) 
{
         super.setCallback(callback);
-        if (headerView instanceof CardHeaderView) {
-            ((CardHeaderView) headerView).setCallback(callback);
-        }
+        headerView.setCallback(callback);
     }
 
     protected void set(@Nullable RecyclerView.Adapter<?> adapter) {
@@ -54,14 +51,12 @@
         }
     }
 
-    protected void header(@NonNull View view) {
-        ViewUtil.replace(headerView, view);
-        headerView = view;
+    protected CardHeaderView headerView() {
+        return headerView;
     }
 
-    protected void largeHeader(@NonNull View view) {
-        ViewUtil.replace(largeHeaderView, view);
-        largeHeaderView = view;
+    protected CardLargeHeaderView largeHeaderView() {
+        return largeHeaderView;
     }
 
     /** Called by the constructor. Override to provide custom behavior but 
otherwise do not call
diff --git a/app/src/main/res/layout/view_card_featured_article.xml 
b/app/src/main/res/layout/view_card_featured_article.xml
index c87297f..a0b2c52 100644
--- a/app/src/main/res/layout/view_card_featured_article.xml
+++ b/app/src/main/res/layout/view_card_featured_article.xml
@@ -7,11 +7,10 @@
     android:layout_height="wrap_content"
     android:orientation="vertical">
 
-    <View
+    <org.wikipedia.feed.view.CardHeaderView
         android:id="@+id/view_featured_article_card_header"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:visibility="gone"/>
+        android:layout_height="wrap_content" />
 
     <org.wikipedia.views.FaceAndColorDetectImageView
         style="@style/SimpleDraweeViewPlaceholder"
@@ -79,10 +78,9 @@
 
     </LinearLayout>
 
-    <View
+    <org.wikipedia.feed.view.ActionFooterView
         android:id="@+id/view_featured_article_card_footer"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:visibility="gone" />
+        android:layout_height="wrap_content" />
 
 </LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_card_featured_image.xml 
b/app/src/main/res/layout/view_card_featured_image.xml
index 9bb59ce..e54547f 100644
--- a/app/src/main/res/layout/view_card_featured_image.xml
+++ b/app/src/main/res/layout/view_card_featured_image.xml
@@ -6,11 +6,10 @@
     android:layout_height="wrap_content"
     android:orientation="vertical">
 
-    <View
+    <org.wikipedia.feed.view.CardHeaderView
         android:id="@+id/view_featured_image_card_header"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:visibility="gone"/>
+        android:layout_height="wrap_content"/>
 
     <FrameLayout
         android:layout_width="match_parent"
@@ -41,10 +40,9 @@
 
     </FrameLayout>
 
-    <View
+    <org.wikipedia.feed.view.ActionFooterView
         android:id="@+id/view_featured_image_card_footer"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:visibility="gone" />
+        android:layout_height="wrap_content"/>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_card_footer.xml 
b/app/src/main/res/layout/view_card_footer.xml
deleted file mode 100644
index edf4f1d..0000000
--- a/app/src/main/res/layout/view_card_footer.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<merge
-    xmlns:android="http://schemas.android.com/apk/res/android";
-    xmlns:app="http://schemas.android.com/apk/res-auto";>
-
-    <ImageView
-        style="@style/Widget.AppCompat.Toolbar.Button.Navigation"
-        android:id="@+id/view_card_footer_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_alignParentRight="true"
-        android:layout_alignParentEnd="true"
-        app:srcCompat="@drawable/ic_arrow_forward_black_24dp"
-        android:tint="?attr/colorAccent"
-        android:contentDescription="@string/view_card_footer_button" />
-
-    <!-- TODO: [Feed] If making the whole cell clickable, consider using a 
compound drawable:
-               1 Drop the ImageView.
-               2 Set the TextView width to match_parent.
-               3 Add android:drawableEnd/Right.
-               4 Reduce the custom View to a FrameLayout instead of 
RelativeLayout. -->
-    <TextView
-        android:id="@+id/view_card_footer_text"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:layout_alignRight="@id/view_card_footer_button"
-        android:layout_alignEnd="@id/view_card_footer_button"
-        android:textColor="?attr/colorAccent"
-        android:textAppearance="@style/TextAppearance.AppCompat.Small" />
-
-</merge>
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_card_on_this_day.xml 
b/app/src/main/res/layout/view_card_on_this_day.xml
index 48afa9d..f3f8b26 100644
--- a/app/src/main/res/layout/view_card_on_this_day.xml
+++ b/app/src/main/res/layout/view_card_on_this_day.xml
@@ -8,11 +8,10 @@
     android:clipToPadding="false"
     android:orientation="vertical">
 
-    <View
+    <org.wikipedia.feed.view.CardHeaderView
         android:id="@+id/view_on_this_day_card_header"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:visibility="gone" />
+        android:layout_height="wrap_content"/>
 
     <LinearLayout
         android:id="@+id/base_view"
diff --git a/app/src/main/res/layout/view_list_card.xml 
b/app/src/main/res/layout/view_list_card.xml
index eb54b02..d089e36 100644
--- a/app/src/main/res/layout/view_list_card.xml
+++ b/app/src/main/res/layout/view_list_card.xml
@@ -5,13 +5,12 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <View
+    <org.wikipedia.feed.view.CardHeaderView
         android:id="@+id/view_list_card_header"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:visibility="gone" />
+        android:layout_height="wrap_content"/>
 
-    <View
+    <org.wikipedia.feed.view.CardLargeHeaderView
         android:id="@+id/view_list_card_large_header"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

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

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

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

Reply via email to