Dbrant has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/232386

Change subject: Link preview tweaks.
......................................................................

Link preview tweaks.

- The title is now clickable (Materially), and goes to the target article.
- Removed the thumbnail image next to the title.
- Removed dark background from title & overflow button.
- Removed the persistent button on top of the preview, and moved it to the
  bottom of the content, as it was originally. (And therefore removed the
  "overlay" view code)
- The bottom button is now Material-styled.
- Reduced the TextExtract length to 2 sentences, as it was before.
- Made the TextExtract receiver more fault-tolerant (optString instead of
  getString)
- Updated the image gallery Funnel to track whether it was entered via the
  link preview (in addition to Lead Image vs. non-lead image). (The schema
  already supports this generalization)

Bug: T108374
Change-Id: Iec04b087d8864bf35181b9a6523cc2cca34ab7df
---
M app/src/main/java/org/wikipedia/analytics/GalleryFunnel.java
M app/src/main/java/org/wikipedia/page/PageFragment.java
M app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
M app/src/main/java/org/wikipedia/page/gallery/GalleryThumbnailScrollView.java
M app/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
M app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewContents.java
M app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java
M app/src/main/java/org/wikipedia/page/linkpreview/PreviewFetchTask.java
M app/src/main/java/org/wikipedia/page/linkpreview/SwipeableBottomDialog.java
A app/src/main/res/anim/thumbnail_item_press.xml
A app/src/main/res/anim/thumbnail_item_release.xml
M app/src/main/res/layout/dialog_link_preview.xml
D app/src/main/res/layout/dialog_link_preview_overlay.xml
M app/src/main/res/values/strings.xml
14 files changed, 177 insertions(+), 154 deletions(-)


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

diff --git a/app/src/main/java/org/wikipedia/analytics/GalleryFunnel.java 
b/app/src/main/java/org/wikipedia/analytics/GalleryFunnel.java
index daf58f3..0767051 100644
--- a/app/src/main/java/org/wikipedia/analytics/GalleryFunnel.java
+++ b/app/src/main/java/org/wikipedia/analytics/GalleryFunnel.java
@@ -10,15 +10,16 @@
 public class GalleryFunnel extends TimedFunnel {
     private static final String SCHEMA_NAME = "MobileWikiAppMediaGallery";
     private static final int REV_ID = 12588701;
-    private static final int SOURCE_LEAD_IMAGE = 0;
-    private static final int SOURCE_NON_LEAD_IMAGE = 1;
+
+    public static final int SOURCE_LEAD_IMAGE = 0;
+    public static final int SOURCE_NON_LEAD_IMAGE = 1;
+    public static final int SOURCE_LINK_PREVIEW = 2;
 
     private final int source;
 
-    public GalleryFunnel(WikipediaApp app, Site site, boolean fromLeadImage) {
+    public GalleryFunnel(WikipediaApp app, Site site, int source) {
         super(app, SCHEMA_NAME, REV_ID, Funnel.SAMPLE_LOG_100, site);
-
-        this.source = fromLeadImage ? SOURCE_LEAD_IMAGE : 
SOURCE_NON_LEAD_IMAGE;
+        this.source = source;
     }
 
     @Override
diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java 
b/app/src/main/java/org/wikipedia/page/PageFragment.java
index 38fec9c..1d06c1b 100755
--- a/app/src/main/java/org/wikipedia/page/PageFragment.java
+++ b/app/src/main/java/org/wikipedia/page/PageFragment.java
@@ -8,6 +8,7 @@
 import org.wikipedia.Utils;
 import org.wikipedia.WikipediaApp;
 import org.wikipedia.analytics.ConnectionIssueFunnel;
+import org.wikipedia.analytics.GalleryFunnel;
 import org.wikipedia.analytics.LinkPreviewFunnel;
 import org.wikipedia.analytics.SavedPagesFunnel;
 import org.wikipedia.analytics.TabFunnel;
@@ -624,7 +625,7 @@
                     if (href.startsWith("/wiki/")) {
                         PageTitle imageTitle = 
model.getTitle().getSite().titleForInternalLink(href);
                         GalleryActivity.showGallery(getActivity(), 
model.getTitleOriginal(),
-                                imageTitle, false);
+                                imageTitle, 
GalleryFunnel.SOURCE_NON_LEAD_IMAGE);
                     } else {
                         linkHandler.onUrlClick(href);
                     }
@@ -639,7 +640,8 @@
                 try {
                     String href = 
Utils.decodeURL(messagePayload.getString("href"));
                     GalleryActivity.showGallery(getActivity(), 
model.getTitleOriginal(),
-                            new PageTitle(href, model.getTitle().getSite()), 
false);
+                            new PageTitle(href, model.getTitle().getSite()),
+                            GalleryFunnel.SOURCE_NON_LEAD_IMAGE);
                 } catch (JSONException e) {
                     ACRA.getErrorReporter().handleException(e);
                 }
diff --git a/app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java 
b/app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
index 512f065..9015853 100644
--- a/app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
+++ b/app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
@@ -51,7 +51,7 @@
 
     public static final String EXTRA_PAGETITLE = "pageTitle";
     public static final String EXTRA_IMAGETITLE = "imageTitle";
-    public static final String EXTRA_FROM_LEAD_IMAGE = "fromLeadImage";
+    public static final String EXTRA_SOURCE = "source";
 
     private WikipediaApp app;
     private PageTitle pageTitle;
@@ -163,7 +163,7 @@
         galleryPager.setOnPageChangeListener(new GalleryPageChangeListener());
 
         funnel = new GalleryFunnel(app, pageTitle.getSite(),
-                                   
getIntent().getBooleanExtra(EXTRA_FROM_LEAD_IMAGE, false));
+                                   getIntent().getIntExtra(EXTRA_SOURCE, 0));
 
         if (savedInstanceState == null) {
             if (initialImageTitle != null) {
@@ -224,12 +224,12 @@
      * @param imageTitle Image with which to begin the gallery.
      */
     public static void showGallery(Activity activity, PageTitle pageTitle, 
PageTitle imageTitle,
-                                   boolean fromLeadImage) {
+                                   int source) {
         Intent galleryIntent = new Intent();
         galleryIntent.setClass(activity, GalleryActivity.class);
         galleryIntent.putExtra(EXTRA_IMAGETITLE, imageTitle);
         galleryIntent.putExtra(EXTRA_PAGETITLE, pageTitle);
-        galleryIntent.putExtra(EXTRA_FROM_LEAD_IMAGE, fromLeadImage);
+        galleryIntent.putExtra(EXTRA_SOURCE, source);
         activity.startActivityForResult(galleryIntent, 
PageActivity.ACTIVITY_REQUEST_GALLERY);
     }
 
diff --git 
a/app/src/main/java/org/wikipedia/page/gallery/GalleryThumbnailScrollView.java 
b/app/src/main/java/org/wikipedia/page/gallery/GalleryThumbnailScrollView.java
index 764c127..81faa60 100644
--- 
a/app/src/main/java/org/wikipedia/page/gallery/GalleryThumbnailScrollView.java
+++ 
b/app/src/main/java/org/wikipedia/page/gallery/GalleryThumbnailScrollView.java
@@ -11,25 +11,20 @@
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
 import android.widget.ImageView;
 
 import com.squareup.picasso.Picasso;
 
 public class GalleryThumbnailScrollView extends RecyclerView {
     @NonNull private final Context mContext;
+    @NonNull private final Animation mPressAnimation;
+    @NonNull private final Animation mReleaseAnimation;
     @Nullable private GalleryViewListener mListener;
-
-    private final OnClickListener mItemClickListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            if (mListener != null) {
-                GalleryItem item = (GalleryItem) v.getTag();
-                mListener.onGalleryItemClicked(item.getName());
-            }
-        }
-    };
 
     public GalleryThumbnailScrollView(Context context) {
         this(context, null);
@@ -43,6 +38,9 @@
         super(context, attrs, defStyle);
         this.mContext = context;
         setLayoutManager(new LinearLayoutManager(context, 
LinearLayoutManager.HORIZONTAL, false));
+
+        mPressAnimation = AnimationUtils.loadAnimation(context, 
R.anim.thumbnail_item_press);
+        mReleaseAnimation = AnimationUtils.loadAnimation(context, 
R.anim.thumbnail_item_release);
     }
 
     public interface GalleryViewListener {
@@ -57,7 +55,7 @@
         setAdapter(new GalleryViewAdapter(collection));
     }
 
-    private class GalleryItemHolder extends ViewHolder {
+    private class GalleryItemHolder extends ViewHolder implements 
OnClickListener, OnTouchListener {
         private final ImageView mImageView;
         private GalleryItem mGalleryItem;
 
@@ -68,8 +66,8 @@
 
         public void bindItem(GalleryItem item) {
             mGalleryItem = item;
-            mImageView.setOnClickListener(mItemClickListener);
-            mImageView.setTag(mGalleryItem);
+            mImageView.setOnClickListener(this);
+            mImageView.setOnTouchListener(this);
             if (WikipediaApp.getInstance().isImageDownloadEnabled()
                     && !TextUtils.isEmpty(mGalleryItem.getThumbUrl())) {
                 Picasso.with(mContext)
@@ -79,6 +77,29 @@
                         .into(mImageView);
             }
         }
+
+        @Override
+        public void onClick(View v) {
+            if (mListener != null) {
+                mListener.onGalleryItemClicked(mGalleryItem.getName());
+            }
+        }
+
+        @Override
+        public boolean onTouch(View v, MotionEvent event) {
+            switch (event.getAction()) {
+                case MotionEvent.ACTION_DOWN:
+                    v.startAnimation(mPressAnimation);
+                    break;
+                case MotionEvent.ACTION_UP:
+                case MotionEvent.ACTION_CANCEL:
+                    v.startAnimation(mReleaseAnimation);
+                    break;
+                default:
+                    break;
+            }
+            return false;
+        }
     }
 
     private final class GalleryViewAdapter extends 
RecyclerView.Adapter<GalleryItemHolder> {
diff --git 
a/app/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java 
b/app/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
index d761607..411d023 100755
--- a/app/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
+++ b/app/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
@@ -25,6 +25,7 @@
 
 import org.json.JSONException;
 import org.json.JSONObject;
+import org.wikipedia.analytics.GalleryFunnel;
 import org.wikipedia.page.PageTitle;
 import org.wikipedia.R;
 import org.wikipedia.Utils;
@@ -148,7 +149,8 @@
                                                              
parentFragment.getTitle()
                                                                            
.getSite());
                         
GalleryActivity.showGallery(parentFragment.getActivity(),
-                                parentFragment.getTitleOriginal(), imageTitle, 
false);
+                                parentFragment.getTitleOriginal(), imageTitle,
+                                GalleryFunnel.SOURCE_LEAD_IMAGE);
                     }
                     return true;
                 }
diff --git 
a/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewContents.java 
b/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewContents.java
index 8b11a49..6cb2281 100755
--- a/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewContents.java
+++ b/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewContents.java
@@ -27,7 +27,7 @@
         title = new PageTitle(json.getString("title"), site);
         // replace newlines in the extract with double newlines, so that 
they'll show up
         // as paragraph breaks when displayed in a TextView.
-        extract = json.getString("extract").replace("\n", "\n\n");
+        extract = json.optString("extract").replace("\n", "\n\n");
         if (json.has("thumbnail")) {
             
title.setThumbUrl(json.getJSONObject("thumbnail").optString("source"));
         }
diff --git 
a/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java 
b/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java
index e3aebf7..a120fcf 100755
--- a/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java
+++ b/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java
@@ -1,6 +1,7 @@
 package org.wikipedia.page.linkpreview;
 
 import org.mediawiki.api.json.Api;
+import org.wikipedia.analytics.GalleryFunnel;
 import org.wikipedia.history.HistoryEntry;
 import org.wikipedia.page.PageActivity;
 import org.wikipedia.page.PageActivityLongPressHandler;
@@ -15,14 +16,10 @@
 import org.wikipedia.util.ApiUtil;
 import org.wikipedia.util.FeedbackUtil;
 
-import com.squareup.picasso.Callback;
-import com.squareup.picasso.Picasso;
 import android.content.DialogInterface;
-import android.graphics.Color;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.v7.widget.PopupMenu;
-import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
@@ -30,8 +27,7 @@
 import android.view.ViewGroup;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
@@ -39,17 +35,13 @@
 
 public class LinkPreviewDialog extends SwipeableBottomDialog implements 
DialogInterface.OnDismissListener {
     private static final String TAG = "LinkPreviewDialog";
-    private static final int THUMBNAIL_SIZE = 320;
 
     private boolean navigateSuccess = false;
 
-    private View previewContainer;
     private ProgressBar progressBar;
     private TextView extractText;
-    private ImageView previewImage;
     private GalleryThumbnailScrollView thumbnailGallery;
 
-    private WikipediaApp app;
     private PageTitle pageTitle;
     private int entrySource;
 
@@ -63,7 +55,8 @@
         @Override
         public void onGalleryItemClicked(String imageName) {
             PageTitle imageTitle = new PageTitle(imageName, 
pageTitle.getSite());
-            GalleryActivity.showGallery(getActivity(), pageTitle, imageTitle, 
false);
+            GalleryActivity.showGallery(getActivity(), pageTitle, imageTitle,
+                    GalleryFunnel.SOURCE_LINK_PREVIEW);
         }
     };
 
@@ -92,23 +85,25 @@
 
     @Override
     protected View inflateDialogView(LayoutInflater inflater, ViewGroup 
container) {
-        app = WikipediaApp.getInstance();
+        WikipediaApp app = WikipediaApp.getInstance();
         pageTitle = getArguments().getParcelable("title");
         entrySource = getArguments().getInt("entrySource");
 
         View rootView = inflater.inflate(R.layout.dialog_link_preview, 
container);
-        previewContainer = rootView.findViewById(R.id.link_preview_container);
         progressBar = (ProgressBar) 
rootView.findViewById(R.id.link_preview_progress);
         TextView titleText = (TextView) 
rootView.findViewById(R.id.link_preview_title);
+        titleText.setOnClickListener(goToPageListener);
         titleText.setText(pageTitle.getDisplayText());
-        if (!ApiUtil.hasLollipop()) {
+        if (!ApiUtil.hasHoneyComb()) {
+            // for GB, reset line spacing to 1, since it doesn't handle <1 
very well.
+            titleText.setLineSpacing(0, 1.0f);
+        } else if (!ApiUtil.hasLollipop()) {
             final int bottomPadding = (int)(8 * app.getScreenDensity());
             titleText.setPadding(titleText.getPaddingLeft(), 
titleText.getPaddingTop(),
                     titleText.getPaddingRight(), titleText.getPaddingBottom() 
+ bottomPadding);
         }
 
         onNavigateListener = new DefaultOnNavigateListener();
-        previewImage = (ImageView) 
rootView.findViewById(R.id.link_preview_image);
         extractText = (TextView) 
rootView.findViewById(R.id.link_preview_extract);
 
         thumbnailGallery = (GalleryThumbnailScrollView) 
rootView.findViewById(R.id.link_preview_thumbnail_gallery);
@@ -117,11 +112,7 @@
             thumbnailGallery.setGalleryViewListener(galleryViewListener);
         }
 
-        previewImage.setOnClickListener(goToPageListener);
-
-        View overlayView = 
setOverlayLayout(R.layout.dialog_link_preview_overlay);
-        View goButton = overlayView.findViewById(R.id.link_preview_go_button);
-        goButton.setOnClickListener(goToPageListener);
+        
rootView.findViewById(R.id.link_preview_go_button).setOnClickListener(goToPageListener);
 
         final View overflowButton = 
rootView.findViewById(R.id.link_preview_overflow_button);
         overflowButton.setOnClickListener(new View.OnClickListener() {
@@ -253,31 +244,13 @@
     }
 
     private void layoutPreview() {
-        previewContainer.setVisibility(View.VISIBLE);
         if (contents.getExtract().length() > 0) {
             extractText.setText(contents.getExtract());
         }
 
-        FrameLayout.LayoutParams extractLayoutParams = 
(FrameLayout.LayoutParams) extractText.getLayoutParams();
+        LinearLayout.LayoutParams extractLayoutParams = 
(LinearLayout.LayoutParams) extractText.getLayoutParams();
         extractLayoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
         extractText.setLayoutParams(extractLayoutParams);
-
-        if (!TextUtils.isEmpty(contents.getTitle().getThumbUrl()) && 
app.isImageDownloadEnabled()) {
-            Picasso.with(getActivity())
-                    .load(contents.getTitle().getThumbUrl())
-                    .placeholder(R.drawable.ic_pageimage_placeholder)
-                    .error(R.drawable.ic_pageimage_placeholder)
-                    .into(previewImage, new Callback() {
-                        @Override
-                        public void onSuccess() {
-                            previewImage.setBackgroundColor(Color.WHITE);
-                        }
-
-                        @Override
-                        public void onError() {
-                        }
-                    });
-        }
     }
 
     private class GalleryThumbnailFetchTask extends GalleryCollectionFetchTask 
{
diff --git 
a/app/src/main/java/org/wikipedia/page/linkpreview/PreviewFetchTask.java 
b/app/src/main/java/org/wikipedia/page/linkpreview/PreviewFetchTask.java
index f2a38a4..1e284c1 100755
--- a/app/src/main/java/org/wikipedia/page/linkpreview/PreviewFetchTask.java
+++ b/app/src/main/java/org/wikipedia/page/linkpreview/PreviewFetchTask.java
@@ -20,7 +20,7 @@
         builder.param("prop", "extracts|pageimages|pageterms")
                .param("redirects", "true")
                //.param("exchars", "4096")
-               .param("exsentences", "4")
+               .param("exsentences", "2")
                .param("explaintext", "true")
                .param("piprop", "thumbnail|name")
                .param("pithumbsize", 
Integer.toString(WikipediaApp.PREFERRED_THUMB_SIZE))
diff --git 
a/app/src/main/java/org/wikipedia/page/linkpreview/SwipeableBottomDialog.java 
b/app/src/main/java/org/wikipedia/page/linkpreview/SwipeableBottomDialog.java
index 1a5f0b3..6957d86 100644
--- 
a/app/src/main/java/org/wikipedia/page/linkpreview/SwipeableBottomDialog.java
+++ 
b/app/src/main/java/org/wikipedia/page/linkpreview/SwipeableBottomDialog.java
@@ -6,10 +6,10 @@
 import android.graphics.Color;
 import android.graphics.drawable.ColorDrawable;
 import android.os.Bundle;
-import android.support.annotation.LayoutRes;
 import android.support.annotation.NonNull;
 import android.support.v4.app.DialogFragment;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AbsListView;
@@ -67,13 +67,6 @@
             if (firstVisibleItem == 0) {
                 dismiss();
             }
-        }
-    };
-
-    private View.OnClickListener dismissOnClickListener = new 
View.OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            dismiss();
         }
     };
 
@@ -138,10 +131,6 @@
         dialogPeekHeight = height;
     }
 
-    public View setOverlayLayout(@LayoutRes int layout) {
-        return getActivity().getLayoutInflater().inflate(layout, rootView);
-    }
-
     private int getDialogWidth() {
         return Math.min(getResources().getDisplayMetrics().widthPixels,
                 (int) 
getResources().getDimension(R.dimen.swipeableDialogMaxWidth));
@@ -151,7 +140,15 @@
         View view = new View(getActivity());
         view.setLayoutParams(new ListView.LayoutParams(width, height));
         view.setClickable(true);
-        view.setOnClickListener(dismissOnClickListener);
+        view.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                if (event.getAction() == MotionEvent.ACTION_DOWN) {
+                    dismiss();
+                }
+                return false;
+            }
+        });
         return view;
     }
 
diff --git a/app/src/main/res/anim/thumbnail_item_press.xml 
b/app/src/main/res/anim/thumbnail_item_press.xml
new file mode 100644
index 0000000..da341ea
--- /dev/null
+++ b/app/src/main/res/anim/thumbnail_item_press.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android";
+    android:fillAfter="true">
+    <scale
+        android:duration="100"
+        android:startOffset="0"
+        android:fromXScale="1"
+        android:fromYScale="1"
+        android:pivotX="50%"
+        android:pivotY="50%"
+        android:toXScale="1.05"
+        android:toYScale="1.05"/>
+    <scale
+        android:duration="100"
+        android:startOffset="100"
+        android:fromXScale="1.05"
+        android:fromYScale="1.05"
+        android:pivotX="50%"
+        android:pivotY="50%"
+        android:toXScale="1.03"
+        android:toYScale="1.03"/>
+</set>
\ No newline at end of file
diff --git a/app/src/main/res/anim/thumbnail_item_release.xml 
b/app/src/main/res/anim/thumbnail_item_release.xml
new file mode 100644
index 0000000..e05e9d4
--- /dev/null
+++ b/app/src/main/res/anim/thumbnail_item_release.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android";>
+    <scale
+        android:duration="@android:integer/config_shortAnimTime"
+        android:startOffset="0"
+        android:fromXScale="1.03"
+        android:fromYScale="1.03"
+        android:pivotX="50%"
+        android:pivotY="50%"
+        android:toXScale="1"
+        android:toYScale="1"/>
+</set>
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_link_preview.xml 
b/app/src/main/res/layout/dialog_link_preview.xml
index 474932f..d5f8460 100755
--- a/app/src/main/res/layout/dialog_link_preview.xml
+++ b/app/src/main/res/layout/dialog_link_preview.xml
@@ -7,88 +7,94 @@
 
     <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_height="wrap_content"
         android:orientation="vertical">
 
         <View
             android:layout_width="match_parent"
             android:layout_height="8dp"
-            android:background="@drawable/link_preview_top_shadow"
-            />
+            android:background="@drawable/link_preview_top_shadow"/>
 
         <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:background="?attr/link_preview_toolbar_color"
-            android:orientation="horizontal">
-            <ImageView
-                android:id="@+id/link_preview_image"
-                android:layout_width="72dp"
-                android:layout_height="72dp"
-                android:src="@drawable/ic_pageimage_placeholder"
-                android:contentDescription="@null"
-                android:scaleType="centerCrop"/>
-            <TextView
-                android:id="@+id/link_preview_title"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1"
-                android:gravity="center_vertical"
-                style="@style/RtlAwareTextView"
-                android:paddingLeft="12dp"
-                android:paddingRight="12dp"
-                android:textSize="20sp"
-                android:fontFamily="serif"
-                android:lineSpacingMultiplier="0.8"
-                android:maxLines="3"
-                android:ellipsize="end"
-                android:textColor="@android:color/white"
-                tools:text="Lorem ipsum"/>
-            <ImageView
-                android:id="@+id/link_preview_overflow_button"
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:layout_gravity="center_vertical"
-                android:clickable="true"
-                android:padding="12dp"
-                android:background="?attr/actionBarItemBackground"
-                
android:contentDescription="@string/abc_action_menu_overflow_description"
-                android:src="@drawable/ic_more_vert" />
-        </LinearLayout>
-
-        <FrameLayout
-            android:id="@+id/link_preview_container"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
             android:background="?attr/link_preview_background_color">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:minHeight="64dp">
+                <TextView
+                    android:id="@+id/link_preview_title"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dp"
+                    android:layout_marginBottom="8dp"
+                    android:layout_weight="1"
+                    android:layout_gravity="center_vertical"
+                    style="@style/RtlAwareTextView"
+                    android:background="?attr/selectableItemBackground"
+                    android:textColor="?attr/link_preview_text_color"
+                    android:clickable="true"
+                    android:paddingLeft="16dp"
+                    android:paddingRight="16dp"
+                    android:textSize="22sp"
+                    android:fontFamily="serif"
+                    android:lineSpacingMultiplier="0.8"
+                    android:maxLines="2"
+                    android:ellipsize="end"
+                    tools:text="Lorem ipsum"/>
+                <ImageView
+                    android:id="@+id/link_preview_overflow_button"
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:layout_gravity="center_vertical"
+                    android:clickable="true"
+                    android:padding="12dp"
+                    android:background="?attr/actionBarItemBackground"
+                    
android:contentDescription="@string/abc_action_menu_overflow_description"
+                    android:src="@drawable/ic_more_vert"
+                    android:tint="?attr/link_preview_text_color"/>
+            </LinearLayout>
+
             <TextView
                 android:id="@+id/link_preview_extract"
                 android:layout_width="match_parent"
-                android:layout_height="200dp"
+                android:layout_height="240dp"
                 style="@style/RtlAwareTextView"
-                android:paddingTop="12dp"
+                android:paddingTop="4dp"
                 android:paddingBottom="12dp"
                 android:paddingLeft="16dp"
                 android:paddingRight="16dp"
-                android:textSize="17sp"
-                android:lineSpacingMultiplier="1.2"
+                android:textSize="16sp"
+                android:lineSpacingMultiplier="1.3"
                 android:textColor="?attr/link_preview_text_color"
                 android:textIsSelectable="true"
                 tools:text="Lorem ipsum"/>
-        </FrameLayout>
 
-        <org.wikipedia.page.gallery.GalleryThumbnailScrollView
-            android:id="@+id/link_preview_thumbnail_gallery"
-            android:layout_width="match_parent"
-            android:layout_height="120dp"
-            android:background="?attr/link_preview_background_color"
-            android:visibility="gone"/>
+            <org.wikipedia.page.gallery.GalleryThumbnailScrollView
+                android:id="@+id/link_preview_thumbnail_gallery"
+                android:layout_width="match_parent"
+                android:layout_height="120dp"
+                android:background="?attr/link_preview_background_color"
+                android:visibility="gone"/>
 
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="64dp"
-            android:background="?attr/link_preview_background_color"
-            />
+            <Button
+                android:id="@+id/link_preview_go_button"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="16dp"
+                android:layout_marginRight="16dp"
+                android:layout_marginTop="8dp"
+                android:layout_marginBottom="8dp"
+                android:padding="4dp"
+                android:textColor="?attr/link_color"
+                style="@style/Widget.AppCompat.Button.Borderless"
+                android:text="@string/button_continue_to_article"/>
+
+        </LinearLayout>
 
     </LinearLayout>
 
diff --git a/app/src/main/res/layout/dialog_link_preview_overlay.xml 
b/app/src/main/res/layout/dialog_link_preview_overlay.xml
deleted file mode 100644
index 72b46cc..0000000
--- a/app/src/main/res/layout/dialog_link_preview_overlay.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Button
-    xmlns:android="http://schemas.android.com/apk/res/android";
-    android:id="@+id/link_preview_go_button"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:layout_gravity="bottom"
-    android:layout_margin="4dp"
-    android:padding="4dp"
-    android:background="@drawable/button_selector_green_progressive"
-    android:textColor="@android:color/white"
-    android:textAppearance="?android:attr/textAppearanceMedium"
-    android:text="@string/button_continue_to_article"/>
diff --git a/app/src/main/res/values/strings.xml 
b/app/src/main/res/values/strings.xml
index d47e475..6442b5d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -298,5 +298,5 @@
     <string name="format_error_server_message">Message: \"%s\"</string>
     <string name="format_error_server_code">Code: \"%s\"</string>
     <string name="address_copied">Address copied to clipboard.</string>
-    <string name="button_continue_to_article">Continue to page</string>
+    <string name="button_continue_to_article">Continue to article</string>
 </resources>

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iec04b087d8864bf35181b9a6523cc2cca34ab7df
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