Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ef1ab40 authored by Jon Miranda's avatar Jon Miranda
Browse files

Show and update preload icons when they are in a FolderIcon preview.

Bug: 62626549
Change-Id: Ie0ad06d0239dccb8d8388381ffe845c4bbc079d6
parent 7e2e2aa8
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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);
+3 −1
Original line number Diff line number Diff line
@@ -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 {
+8 −0
Original line number Diff line number Diff line
@@ -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.