summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2015-06-05 21:14:32 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-05 21:14:32 +0000
commit90429e11e75f5756d250f1156cac7cc6479f90a1 (patch)
treee0dd92744e01459910aeb11792581f13d9c0f57f /src
parent6103501fa6c70ca112ac867e18e5f82021bf4f7c (diff)
parentf00d02b254d94eeaf52742e0640e9eacd63fafca (diff)
downloadandroid_packages_apps_Trebuchet-90429e11e75f5756d250f1156cac7cc6479f90a1.tar.gz
android_packages_apps_Trebuchet-90429e11e75f5756d250f1156cac7cc6479f90a1.tar.bz2
android_packages_apps_Trebuchet-90429e11e75f5756d250f1156cac7cc6479f90a1.zip
Merge "Improve AyncTask throughput inside WidgetPreviewLoader" into ub-launcher3-burnaby
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/WidgetPreviewLoader.java20
-rw-r--r--src/com/android/launcher3/widget/WidgetCell.java4
-rw-r--r--src/com/android/launcher3/widget/WidgetImageView.java8
3 files changed, 21 insertions, 11 deletions
diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java
index a62177142..cfeced2df 100644
--- a/src/com/android/launcher3/WidgetPreviewLoader.java
+++ b/src/com/android/launcher3/WidgetPreviewLoader.java
@@ -586,26 +586,26 @@ public class WidgetPreviewLoader {
protected Bitmap doInBackground(Void... params) {
Bitmap unusedBitmap = null;
+ // If already cancelled before this gets to run in the background, then return early
+ if (isCancelled()) {
+ return null;
+ }
synchronized (mUnusedBitmaps) {
- // If already cancelled before this gets to run in the background, then return early
- if (isCancelled()) {
- return null;
- }
- // Check if we can use a bitmap
+ // Check if we can re-use a bitmap
for (Bitmap candidate : mUnusedBitmaps) {
if (candidate != null && candidate.isMutable() &&
candidate.getWidth() == mPreviewWidth &&
candidate.getHeight() == mPreviewHeight) {
unusedBitmap = candidate;
+ mUnusedBitmaps.remove(unusedBitmap);
break;
}
}
+ }
- if (unusedBitmap == null) {
- unusedBitmap = Bitmap.createBitmap(mPreviewWidth, mPreviewHeight, Config.ARGB_8888);
- } else {
- mUnusedBitmaps.remove(unusedBitmap);
- }
+ // creating a bitmap is expensive. Do not do this inside synchronized block.
+ if (unusedBitmap == null) {
+ unusedBitmap = Bitmap.createBitmap(mPreviewWidth, mPreviewHeight, Config.ARGB_8888);
}
// If cancelled now, don't bother reading the preview from the DB
if (isCancelled()) {
diff --git a/src/com/android/launcher3/widget/WidgetCell.java b/src/com/android/launcher3/widget/WidgetCell.java
index 2714f5182..7496ea2ef 100644
--- a/src/com/android/launcher3/widget/WidgetCell.java
+++ b/src/com/android/launcher3/widget/WidgetCell.java
@@ -26,6 +26,7 @@ import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnLayoutChangeListener;
+import android.view.ViewPropertyAnimator;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -175,7 +176,8 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
if (bitmap != null) {
mWidgetImage.setBitmap(bitmap);
mWidgetImage.setAlpha(0f);
- mWidgetImage.animate().alpha(1.0f).setDuration(FADE_IN_DURATION_MS);
+ ViewPropertyAnimator anim = mWidgetImage.animate();
+ anim.alpha(1.0f).setDuration(FADE_IN_DURATION_MS);
}
}
diff --git a/src/com/android/launcher3/widget/WidgetImageView.java b/src/com/android/launcher3/widget/WidgetImageView.java
index 6f8fd897b..b0fbe1ed9 100644
--- a/src/com/android/launcher3/widget/WidgetImageView.java
+++ b/src/com/android/launcher3/widget/WidgetImageView.java
@@ -64,6 +64,14 @@ public class WidgetImageView extends View {
}
}
+ /**
+ * Prevents the inefficient alpha view rendering.
+ */
+ @Override
+ public boolean hasOverlappingRendering() {
+ return false;
+ }
+
private void updateDstRectF() {
if (mBitmap.getWidth() > getWidth()) {
float scale = ((float) getWidth()) / mBitmap.getWidth();