summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Miranda <jonmiranda@google.com>2017-06-20 10:42:04 -0700
committerJon Miranda <jonmiranda@google.com>2017-06-20 11:05:34 -0700
commit2ef1ab4017aa87cbb2818679d784e3bdb832f631 (patch)
tree955985bf8114379e6f74cd5d397191b7d2b65b39
parent7e2e2aa80baa4458e086f59e8c55ee016174593c (diff)
downloadandroid_packages_apps_Trebuchet-2ef1ab4017aa87cbb2818679d784e3bdb832f631.tar.gz
android_packages_apps_Trebuchet-2ef1ab4017aa87cbb2818679d784e3bdb832f631.tar.bz2
android_packages_apps_Trebuchet-2ef1ab4017aa87cbb2818679d784e3bdb832f631.zip
Show and update preload icons when they are in a FolderIcon preview.
Bug: 62626549 Change-Id: Ie0ad06d0239dccb8d8388381ffe845c4bbc079d6
-rw-r--r--src/com/android/launcher3/BubbleTextView.java13
-rw-r--r--src/com/android/launcher3/folder/FolderIcon.java4
-rw-r--r--src/com/android/launcher3/folder/FolderPagedView.java8
3 files changed, 24 insertions, 1 deletions
diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java
index f8e87c57f..cb3cbd2bf 100644
--- a/src/com/android/launcher3/BubbleTextView.java
+++ b/src/com/android/launcher3/BubbleTextView.java
@@ -30,6 +30,7 @@ import android.graphics.Rect;
import android.graphics.Region;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
+import android.support.annotation.NonNull;
import android.support.v4.graphics.ColorUtils;
import android.util.AttributeSet;
import android.util.Property;
@@ -47,6 +48,7 @@ import com.android.launcher3.IconCache.ItemInfoUpdateReceiver;
import com.android.launcher3.badge.BadgeInfo;
import com.android.launcher3.badge.BadgeRenderer;
import com.android.launcher3.folder.FolderIconPreviewVerifier;
+import com.android.launcher3.folder.FolderPagedView;
import com.android.launcher3.graphics.DrawableFactory;
import com.android.launcher3.graphics.HolographicOutlineHelper;
import com.android.launcher3.graphics.IconPalette;
@@ -207,6 +209,17 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver {
applyFromShortcutInfo(info, false);
}
+ @Override
+ public void invalidateDrawable(@NonNull Drawable drawable) {
+ super.invalidateDrawable(drawable);
+
+ if (getParent() != null
+ && getParent().getParent() != null
+ && getParent().getParent().getParent() instanceof FolderPagedView) {
+ ((FolderPagedView) getParent().getParent().getParent()).onIconInvalidated(this);
+ }
+ }
+
public void applyFromShortcutInfo(ShortcutInfo info, boolean promiseStateChanged) {
applyIconAndLabel(info.iconBitmap, info);
setTag(info);
diff --git a/src/com/android/launcher3/folder/FolderIcon.java b/src/com/android/launcher3/folder/FolderIcon.java
index aaa19afa5..f3b7fbe6b 100644
--- a/src/com/android/launcher3/folder/FolderIcon.java
+++ b/src/com/android/launcher3/folder/FolderIcon.java
@@ -75,6 +75,7 @@ import com.android.launcher3.badge.FolderBadgeInfo;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.dragndrop.DragLayer;
import com.android.launcher3.dragndrop.DragView;
+import com.android.launcher3.graphics.PreloadIconDrawable;
import com.android.launcher3.util.Themes;
import com.android.launcher3.graphics.IconPalette;
import com.android.launcher3.util.Thunk;
@@ -511,7 +512,8 @@ public class FolderIcon extends FrameLayout implements FolderListener {
if (d != null) {
mTempBounds.set(d.getBounds());
d.setBounds(0, 0, mIntrinsicIconSize, mIntrinsicIconSize);
- if (d instanceof FastBitmapDrawable) {
+ boolean isPreloadIcon = d instanceof PreloadIconDrawable;
+ if (!isPreloadIcon && d instanceof FastBitmapDrawable) {
FastBitmapDrawable fd = (FastBitmapDrawable) d;
fd.drawWithBrightness(canvas, params.overlayAlpha);
} else {
diff --git a/src/com/android/launcher3/folder/FolderPagedView.java b/src/com/android/launcher3/folder/FolderPagedView.java
index 898a4e9f3..87e42eb1d 100644
--- a/src/com/android/launcher3/folder/FolderPagedView.java
+++ b/src/com/android/launcher3/folder/FolderPagedView.java
@@ -180,6 +180,14 @@ public class FolderPagedView extends PagedView {
super.dispatchDraw(canvas);
}
+ public void onIconInvalidated(BubbleTextView icon) {
+ FolderIcon folderIcon = mFolder.mFolderIcon;
+ if (icon.getTag() instanceof ItemInfo
+ && folderIcon.mPreviewVerifier.isItemInPreview(((ItemInfo) icon.getTag()).rank)) {
+ folderIcon.invalidate();
+ }
+ }
+
/**
* Binds items to the layout.
* @return list of items that could not be bound, probably because we hit the max size limit.