mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 10:48:19 +00:00
Initiate Hotseat drag from long pressing corresponding Taskbar item
When you long press on the taskbar hotseat item, the following happens: - We start a system drag and drop with an invisible drag shadow - We create a new DragOptions with the simulatedDndStartPoint set to the drag down position, and tell Launcher to use that for the next drag - We perform a long click on the equivalent Hotseat item in Launcher - We pass the drag events of that operation to Launcher's DragController This allows Launcher to handle the entire drag operation, including the pre-drag (with popup), and taskbar already hides when the drag starts. Test: Long press items in taskbar hotseat, able to drag them to workspace Bug: 179886115 Bug: 171917176 Change-Id: I576b80cb1bd0225cdc91cf7689fdee0481265109
This commit is contained in:
@@ -35,6 +35,7 @@ import android.view.View;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.launcher3.config.FeatureFlags;
|
||||
import com.android.launcher3.dragndrop.DragOptions;
|
||||
import com.android.launcher3.model.WellbeingModel;
|
||||
import com.android.launcher3.popup.SystemShortcut;
|
||||
import com.android.launcher3.proxy.ProxyActivityStarter;
|
||||
@@ -83,6 +84,8 @@ public abstract class BaseQuickstepLauncher extends Launcher
|
||||
|
||||
private @Nullable TaskbarController mTaskbarController;
|
||||
private final TaskbarStateHandler mTaskbarStateHandler = new TaskbarStateHandler(this);
|
||||
// Will be updated when dragging from taskbar.
|
||||
private DragOptions mWorkspaceDragOptions = new DragOptions();
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -269,6 +272,15 @@ public abstract class BaseQuickstepLauncher extends Launcher
|
||||
return mTaskbarController != null && mTaskbarController.isViewInTaskbar(v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DragOptions getDefaultWorkspaceDragOptions() {
|
||||
return mWorkspaceDragOptions;
|
||||
}
|
||||
|
||||
public void setWorkspaceDragOptions(DragOptions dragOptions) {
|
||||
mWorkspaceDragOptions = dragOptions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useFadeOutAnimationForLauncherStart(CancellationSignal signal) {
|
||||
QuickstepAppTransitionManagerImpl appTransitionManager =
|
||||
|
||||
Reference in New Issue
Block a user