Files
Lawnchair/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayContext.java
T
David Saff 853a5b9e0c Revert "Provide AllApps item OnLongClickListener through ActivityContext."
This reverts commit 0acab2532d.

Reason for revert: b/290403189

Change-Id: Ie3f67f78a8ffce8c2d5a92f65a7e74d788c82a81
2023-07-11 10:45:33 +00:00

158 lines
5.1 KiB
Java

/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.launcher3.taskbar.overlay;
import android.content.Context;
import android.view.View;
import androidx.annotation.Nullable;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.R;
import com.android.launcher3.dot.DotInfo;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.popup.PopupDataProvider;
import com.android.launcher3.taskbar.BaseTaskbarContext;
import com.android.launcher3.taskbar.TaskbarActivityContext;
import com.android.launcher3.taskbar.TaskbarControllers;
import com.android.launcher3.taskbar.TaskbarDragController;
import com.android.launcher3.taskbar.TaskbarUIController;
import com.android.launcher3.taskbar.allapps.TaskbarAllAppsContainerView;
import com.android.launcher3.taskbar.allapps.TaskbarSearchSessionController;
import com.android.launcher3.util.SplitConfigurationOptions.SplitSelectSource;
/**
* Window context for the taskbar overlays such as All Apps and EDU.
* <p>
* Overlays have their own window and need a window context. Some properties are delegated to the
* {@link TaskbarActivityContext} such as {@link PopupDataProvider}.
*/
public class TaskbarOverlayContext extends BaseTaskbarContext {
private final TaskbarActivityContext mTaskbarContext;
private final TaskbarOverlayController mOverlayController;
private final TaskbarDragController mDragController;
private final TaskbarOverlayDragLayer mDragLayer;
private final int mStashedTaskbarHeight;
private final TaskbarUIController mUiController;
private @Nullable TaskbarSearchSessionController mSearchSessionController;
public TaskbarOverlayContext(
Context windowContext,
TaskbarActivityContext taskbarContext,
TaskbarControllers controllers) {
super(windowContext);
mTaskbarContext = taskbarContext;
mOverlayController = controllers.taskbarOverlayController;
mDragController = new TaskbarDragController(this);
mDragController.init(controllers);
mDragLayer = new TaskbarOverlayDragLayer(this);
mStashedTaskbarHeight = controllers.taskbarStashController.getStashedHeight();
mUiController = controllers.uiController;
}
public @Nullable TaskbarSearchSessionController getSearchSessionController() {
return mSearchSessionController;
}
public void setSearchSessionController(
@Nullable TaskbarSearchSessionController searchSessionController) {
mSearchSessionController = searchSessionController;
}
int getStashedTaskbarHeight() {
return mStashedTaskbarHeight;
}
public TaskbarOverlayController getOverlayController() {
return mOverlayController;
}
/** Returns {@code true} if overlay or Taskbar windows are handling a system drag. */
boolean isAnySystemDragInProgress() {
return mDragController.isSystemDragInProgress()
|| mTaskbarContext.getDragController().isSystemDragInProgress();
}
@Override
public DeviceProfile getDeviceProfile() {
return mOverlayController.getLauncherDeviceProfile();
}
@Override
public View.AccessibilityDelegate getAccessibilityDelegate() {
return mTaskbarContext.getAccessibilityDelegate();
}
@Override
public TaskbarDragController getDragController() {
return mDragController;
}
@Override
public TaskbarOverlayDragLayer getDragLayer() {
return mDragLayer;
}
@Override
public TaskbarAllAppsContainerView getAppsView() {
return mDragLayer.findViewById(R.id.apps_view);
}
@Override
public boolean isBindingItems() {
return mTaskbarContext.isBindingItems();
}
@Override
public View.OnClickListener getItemOnClickListener() {
return mTaskbarContext.getItemOnClickListener();
}
@Override
public PopupDataProvider getPopupDataProvider() {
return mTaskbarContext.getPopupDataProvider();
}
@Override
public void startSplitSelection(SplitSelectSource splitSelectSource) {
mUiController.startSplitSelection(splitSelectSource);
}
@Override
public DotInfo getDotInfoForItem(ItemInfo info) {
return mTaskbarContext.getDotInfoForItem(info);
}
@Override
public void onDragStart() {}
@Override
public void onDragEnd() {
mOverlayController.maybeCloseWindow();
}
@Override
public void onPopupVisibilityChanged(boolean isVisible) {}
@Override
public void onSplitScreenMenuButtonClicked() {
}
}