Loading src/com/android/launcher3/Hotseat.java +2 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.widget.FrameLayout; import androidx.annotation.Nullable; import java.util.Arrays; import java.util.function.Consumer; /** Loading Loading @@ -226,7 +227,7 @@ public class Hotseat extends CellLayout implements Insettable { * Returns the first View for which the given itemOperator returns true, or null. */ public View getFirstItemMatch(Workspace.ItemOperator itemOperator) { return mWorkspace.getFirstMatch(new CellLayout[] { this }, itemOperator); return mWorkspace.getFirstMatch(Arrays.asList(this), itemOperator); } /** Loading src/com/android/launcher3/Workspace.java +7 −7 Original line number Diff line number Diff line Loading @@ -2978,8 +2978,10 @@ public class Workspace extends PagedView<WorkspacePageIndicator> * @param user The user of the app to match. */ public View getFirstMatchForAppClose(String packageName, UserHandle user) { final int curPage = getCurrentPage(); final CellLayout currentPage = (CellLayout) getPageAt(curPage); List<CellLayout> cellLayouts = new ArrayList<>(getPanelCount() + 1); cellLayouts.add(getHotseat()); getVisiblePages().forEach(page -> cellLayouts.add((CellLayout) page)); final Workspace.ItemOperator packageAndUser = (ItemInfo info, View view) -> info != null && info.getTargetComponent() != null && TextUtils.equals(info.getTargetComponent().getPackageName(), packageName) Loading @@ -3000,13 +3002,11 @@ public class Workspace extends PagedView<WorkspacePageIndicator> // Order: App icons, app in folder. Items in hotseat get returned first. if (ADAPTIVE_ICON_WINDOW_ANIM.get()) { return getFirstMatch(new CellLayout[] { getHotseat(), currentPage }, packageAndUserAndApp, packageAndUserAndAppInFolder); return getFirstMatch(cellLayouts, packageAndUserAndApp, packageAndUserAndAppInFolder); } else { // Do not use Folder as a criteria, since it'll cause a crash when trying to draw // FolderAdaptiveIcon as the background. return getFirstMatch(new CellLayout[] { getHotseat(), currentPage }, packageAndUserAndApp); return getFirstMatch(cellLayouts, packageAndUserAndApp); } } Loading Loading @@ -3040,7 +3040,7 @@ public class Workspace extends PagedView<WorkspacePageIndicator> * @param operators List of operators, in order starting from best matching operator. * @return */ View getFirstMatch(CellLayout[] cellLayouts, final ItemOperator... operators) { View getFirstMatch(Iterable<CellLayout> cellLayouts, final ItemOperator... operators) { // This array is filled with the first match for each operator. final View[] matches = new View[operators.length]; // For efficiency, the outer loop should be CellLayout. Loading Loading
src/com/android/launcher3/Hotseat.java +2 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.widget.FrameLayout; import androidx.annotation.Nullable; import java.util.Arrays; import java.util.function.Consumer; /** Loading Loading @@ -226,7 +227,7 @@ public class Hotseat extends CellLayout implements Insettable { * Returns the first View for which the given itemOperator returns true, or null. */ public View getFirstItemMatch(Workspace.ItemOperator itemOperator) { return mWorkspace.getFirstMatch(new CellLayout[] { this }, itemOperator); return mWorkspace.getFirstMatch(Arrays.asList(this), itemOperator); } /** Loading
src/com/android/launcher3/Workspace.java +7 −7 Original line number Diff line number Diff line Loading @@ -2978,8 +2978,10 @@ public class Workspace extends PagedView<WorkspacePageIndicator> * @param user The user of the app to match. */ public View getFirstMatchForAppClose(String packageName, UserHandle user) { final int curPage = getCurrentPage(); final CellLayout currentPage = (CellLayout) getPageAt(curPage); List<CellLayout> cellLayouts = new ArrayList<>(getPanelCount() + 1); cellLayouts.add(getHotseat()); getVisiblePages().forEach(page -> cellLayouts.add((CellLayout) page)); final Workspace.ItemOperator packageAndUser = (ItemInfo info, View view) -> info != null && info.getTargetComponent() != null && TextUtils.equals(info.getTargetComponent().getPackageName(), packageName) Loading @@ -3000,13 +3002,11 @@ public class Workspace extends PagedView<WorkspacePageIndicator> // Order: App icons, app in folder. Items in hotseat get returned first. if (ADAPTIVE_ICON_WINDOW_ANIM.get()) { return getFirstMatch(new CellLayout[] { getHotseat(), currentPage }, packageAndUserAndApp, packageAndUserAndAppInFolder); return getFirstMatch(cellLayouts, packageAndUserAndApp, packageAndUserAndAppInFolder); } else { // Do not use Folder as a criteria, since it'll cause a crash when trying to draw // FolderAdaptiveIcon as the background. return getFirstMatch(new CellLayout[] { getHotseat(), currentPage }, packageAndUserAndApp); return getFirstMatch(cellLayouts, packageAndUserAndApp); } } Loading Loading @@ -3040,7 +3040,7 @@ public class Workspace extends PagedView<WorkspacePageIndicator> * @param operators List of operators, in order starting from best matching operator. * @return */ View getFirstMatch(CellLayout[] cellLayouts, final ItemOperator... operators) { View getFirstMatch(Iterable<CellLayout> cellLayouts, final ItemOperator... operators) { // This array is filled with the first match for each operator. final View[] matches = new View[operators.length]; // For efficiency, the outer loop should be CellLayout. Loading