jenkins-bot has submitted this change and it was merged.

Change subject: Fix share-a-fact cards when lead image scrolled away.
......................................................................


Fix share-a-fact cards when lead image scrolled away.

Share-a-fact cards were no longer showing the background image correctly
because the underlying ImageView is now using a Matrix transform to
achieve the parallax effect, and it becomes incorrectly applied to the
share-a-fact card.

This patch simplifies things by letting the share-a-fact card access the
underlying Bitmap of the ImageView, instead of making the ImageView draw
itself onto a new Bitmap.

In the previous implementation, I see there was some concern regarding a
possible exception due to using a recycled bitmap, but I don't see how
this can happen, given our current way of drawing the card.

Bug: T123283
Change-Id: Iff4731499fe324f632c42543eeaa1b1ff157fddb
---
M app/src/main/java/org/wikipedia/page/leadimages/ArticleHeaderView.java
M app/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
2 files changed, 6 insertions(+), 18 deletions(-)

Approvals:
  Sniedzielski: Looks good to me, approved
  Mholloway: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git 
a/app/src/main/java/org/wikipedia/page/leadimages/ArticleHeaderView.java 
b/app/src/main/java/org/wikipedia/page/leadimages/ArticleHeaderView.java
index c202fee..7f4ab38 100644
--- a/app/src/main/java/org/wikipedia/page/leadimages/ArticleHeaderView.java
+++ b/app/src/main/java/org/wikipedia/page/leadimages/ArticleHeaderView.java
@@ -2,8 +2,6 @@
 
 import android.annotation.TargetApi;
 import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.Typeface;
 import android.graphics.drawable.Drawable;
@@ -24,6 +22,7 @@
 import android.view.Gravity;
 import android.view.View;
 import android.widget.FrameLayout;
+import android.widget.ImageView;
 
 import org.wikipedia.R;
 import org.wikipedia.WikipediaApp;
@@ -108,7 +107,7 @@
     }
 
     // TODO: remove.
-    public View getImage() {
+    public ImageView getImage() {
         return image.getImage();
     }
 
@@ -131,20 +130,6 @@
 
     public boolean hasImage() {
         return image.hasImage();
-    }
-
-    // ideas from:
-    // 
http://stackoverflow.com/questions/2801116/converting-a-view-to-bitmap-without-displaying-it-in-android
-    // View has to be already displayed. Note: a copy of the ImageView's 
Drawable must be made in
-    // some fashion as it may be recycled. See T114658.
-    public Bitmap copyImage() {
-        // Define a bitmap with the same size as the view
-        Bitmap returnedBitmap = Bitmap.createBitmap(image.getWidth(), 
image.getHeight(),
-                Bitmap.Config.ARGB_8888);
-        // Bind a canvas to it
-        Canvas canvas = new Canvas(returnedBitmap);
-        image.draw(canvas);
-        return returnedBitmap;
     }
 
     public void setImageYScalar(float offset) {
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 4696903..cf92472 100755
--- a/app/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
+++ b/app/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
@@ -3,6 +3,7 @@
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.PointF;
+import android.graphics.drawable.BitmapDrawable;
 import android.location.Location;
 import android.support.annotation.ColorInt;
 import android.support.annotation.DimenRes;
@@ -108,7 +109,9 @@
     }
 
     @Nullable public Bitmap getLeadImageBitmap() {
-        return isLeadImageEnabled() ? articleHeaderView.copyImage() : null;
+        return isLeadImageEnabled() && 
articleHeaderView.getImage().getDrawable() != null
+                ? ((BitmapDrawable) 
articleHeaderView.getImage().getDrawable()).getBitmap()
+                : null;
     }
 
     public boolean isLeadImageEnabled() {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Iff4731499fe324f632c42543eeaa1b1ff157fddb
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>
Gerrit-Reviewer: BearND <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Mholloway <[email protected]>
Gerrit-Reviewer: Niedzielski <[email protected]>
Gerrit-Reviewer: Sniedzielski <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to