Dbrant has uploaded a new change for review.
https://gerrit.wikimedia.org/r/263835
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(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/35/263835/1
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: newchange
Gerrit-Change-Id: Iff4731499fe324f632c42543eeaa1b1ff157fddb
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