mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-04 18:06:48 +00:00
Update FloatingIconView to display PreloadIconDrawables during swipe home animations.
Swiping up to go home on an app that is downloading incrementally would cause a jittery animation. Updated FloatingIconView to animate directly to a PreloadIconDrawable.
Demo: https://drive.google.com/file/d/1ddr8OGR4c1ZneyQ0VkkAAxGpwNcP8Wyn/view?usp=sharing
Fixes: 177685929
Test: manual
Change-Id: I4cd2daa18f6d3fed42a9b666063e0b1c1c46e5d9
(cherry picked from commit b8cab8d878)
This commit is contained in:
@@ -51,8 +51,10 @@ import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.dragndrop.DragLayer;
|
||||
import com.android.launcher3.dragndrop.FolderAdaptiveIcon;
|
||||
import com.android.launcher3.folder.FolderIcon;
|
||||
import com.android.launcher3.graphics.PreloadIconDrawable;
|
||||
import com.android.launcher3.icons.LauncherIcons;
|
||||
import com.android.launcher3.model.data.ItemInfo;
|
||||
import com.android.launcher3.model.data.ItemInfoWithIcon;
|
||||
import com.android.launcher3.popup.SystemShortcut;
|
||||
import com.android.launcher3.shortcuts.DeepShortcutView;
|
||||
|
||||
@@ -252,12 +254,26 @@ public class FloatingIconView extends FrameLayout implements
|
||||
@SuppressWarnings("WrongThread")
|
||||
private static void getIconResult(Launcher l, View originalView, ItemInfo info, RectF pos,
|
||||
IconLoadResult iconLoadResult) {
|
||||
Drawable drawable = null;
|
||||
Drawable drawable;
|
||||
Drawable btvIcon;
|
||||
Drawable badge = null;
|
||||
boolean supportsAdaptiveIcons = ADAPTIVE_ICON_WINDOW_ANIM.get()
|
||||
&& !info.isDisabled(); // Use original icon for disabled icons.
|
||||
Drawable btvIcon = originalView instanceof BubbleTextView
|
||||
? ((BubbleTextView) originalView).getIcon() : null;
|
||||
|
||||
if (originalView instanceof BubbleTextView) {
|
||||
BubbleTextView btv = (BubbleTextView) originalView;
|
||||
|
||||
if (info instanceof ItemInfoWithIcon
|
||||
&& (((ItemInfoWithIcon) info).runtimeStatusFlags
|
||||
& ItemInfoWithIcon.FLAG_SHOW_DOWNLOAD_PROGRESS_MASK) != 0) {
|
||||
btvIcon = btv.makePreloadIcon();
|
||||
} else {
|
||||
btvIcon = btv.getIcon();
|
||||
}
|
||||
} else {
|
||||
btvIcon = null;
|
||||
}
|
||||
|
||||
if (info instanceof SystemShortcut) {
|
||||
if (originalView instanceof ImageView) {
|
||||
drawable = ((ImageView) originalView).getDrawable();
|
||||
@@ -266,6 +282,9 @@ public class FloatingIconView extends FrameLayout implements
|
||||
} else {
|
||||
drawable = originalView.getBackground();
|
||||
}
|
||||
} else if (btvIcon instanceof PreloadIconDrawable) {
|
||||
// Force the progress bar to display.
|
||||
drawable = btvIcon;
|
||||
} else {
|
||||
int width = (int) pos.width();
|
||||
int height = (int) pos.height();
|
||||
|
||||
Reference in New Issue
Block a user