From 080f9326aba2eda5d09399c4fa403b914b0aca96 Mon Sep 17 00:00:00 2001 From: Fengjiang Li Date: Wed, 12 Jul 2023 13:33:54 -0700 Subject: [PATCH] Handle nullable CellLayout when removing app icon from folder If CellLayout is null, instead of early return that will lead app icon not clickable, we should fallback to use Launcher as activity Fix: 290973455 Test: attached to video Change-Id: I10b03f3f41dd672116133af83ae8a5b066824d71 --- src/com/android/launcher3/Launcher.java | 7 ++++--- src/com/android/launcher3/folder/LauncherDelegate.java | 3 --- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index d85c384f6f..86e05d22d0 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1402,9 +1402,10 @@ public class Launcher extends StatefulActivity * @param info The data structure describing the shortcut. * @return A View inflated from layoutResId. */ - public View createShortcut(ViewGroup parent, WorkspaceItemInfo info) { - BubbleTextView favorite = (BubbleTextView) LayoutInflater.from(parent.getContext()) - .inflate(R.layout.app_icon, parent, false); + public View createShortcut(@Nullable ViewGroup parent, WorkspaceItemInfo info) { + BubbleTextView favorite = + (BubbleTextView) LayoutInflater.from(parent != null ? parent.getContext() : this) + .inflate(R.layout.app_icon, parent, false); favorite.applyFromWorkspaceItem(info); favorite.setOnClickListener(getItemOnClickListener()); favorite.setOnFocusChangeListener(mFocusHandler); diff --git a/src/com/android/launcher3/folder/LauncherDelegate.java b/src/com/android/launcher3/folder/LauncherDelegate.java index 7ac2472319..c06a0f3c53 100644 --- a/src/com/android/launcher3/folder/LauncherDelegate.java +++ b/src/com/android/launcher3/folder/LauncherDelegate.java @@ -94,9 +94,6 @@ public class LauncherDelegate { // folder CellLayout cellLayout = mLauncher.getCellLayout(info.container, mLauncher.getCellPosMapper().mapModelToPresenter(info).screenId); - if (cellLayout == null) { - return; - } finalItem = info.contents.remove(0); newIcon = mLauncher.createShortcut(cellLayout, finalItem); mLauncher.getModelWriter().addOrMoveItemInDatabase(finalItem,