From 55845135007320487963a8c2f777f54bd3bf2ff2 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Fri, 21 May 2021 14:41:30 -0700 Subject: [PATCH] Renamin TaskbarContainerView to TaskbarDragLayer Bug: 187353581 Test: Presubmit Change-Id: I9164a956aaa896111f287ab4e97b091a7d4d30ee --- quickstep/res/layout/taskbar.xml | 4 +-- .../taskbar/LauncherTaskbarUIController.java | 12 +++---- .../taskbar/TaskbarActivityContext.java | 35 +++++++++++++------ ...ntainerView.java => TaskbarDragLayer.java} | 12 +++---- .../taskbar/TaskbarIconController.java | 34 +++++++++--------- .../launcher3/taskbar/TaskbarManager.java | 5 ++- .../taskbar/TaskbarUIController.java | 2 +- 7 files changed, 58 insertions(+), 46 deletions(-) rename quickstep/src/com/android/launcher3/taskbar/{TaskbarContainerView.java => TaskbarDragLayer.java} (90%) diff --git a/quickstep/res/layout/taskbar.xml b/quickstep/res/layout/taskbar.xml index c4362214cb..e680233e6a 100644 --- a/quickstep/res/layout/taskbar.xml +++ b/quickstep/res/layout/taskbar.xml @@ -14,7 +14,7 @@ limitations under the License. --> - - \ No newline at end of file + \ No newline at end of file diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java index 67264194b2..c2d107c22d 100644 --- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java @@ -46,7 +46,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { private final TaskbarHotseatController mHotseatController; private final TaskbarActivityContext mContext; - final TaskbarContainerView mTaskbarContainerView; + final TaskbarDragLayer mTaskbarDragLayer; final TaskbarView mTaskbarView; private @Nullable Animator mAnimator; @@ -55,8 +55,8 @@ public class LauncherTaskbarUIController extends TaskbarUIController { public LauncherTaskbarUIController( BaseQuickstepLauncher launcher, TaskbarActivityContext context) { mContext = context; - mTaskbarContainerView = context.getDragLayer(); - mTaskbarView = mTaskbarContainerView.findViewById(R.id.taskbar_view); + mTaskbarDragLayer = context.getDragLayer(); + mTaskbarView = mTaskbarDragLayer.findViewById(R.id.taskbar_view); mLauncher = launcher; mTaskbarStateHandler = mLauncher.getTaskbarStateHandler(); @@ -99,7 +99,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { return new TaskbarAnimationControllerCallbacks() { @Override public void updateTaskbarBackgroundAlpha(float alpha) { - mTaskbarContainerView.setTaskbarBackgroundAlpha(alpha); + mTaskbarDragLayer.setTaskbarBackgroundAlpha(alpha); } @Override @@ -109,7 +109,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { @Override public void updateImeBarVisibilityAlpha(float alpha) { - mTaskbarContainerView.updateImeBarVisibilityAlpha(alpha); + mTaskbarDragLayer.updateImeBarVisibilityAlpha(alpha); } @Override @@ -202,7 +202,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { } @Override - protected void onImeVisible(TaskbarContainerView containerView, boolean isVisible) { + protected void onImeVisible(TaskbarDragLayer containerView, boolean isVisible) { mTaskbarAnimationController.animateToVisibilityForIme(isVisible ? 0 : 1); } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index 70f278874a..8c3d453b09 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -87,7 +87,7 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ private final DeviceProfile mDeviceProfile; private final LayoutInflater mLayoutInflater; - private final TaskbarContainerView mTaskbarContainerView; + private final TaskbarDragLayer mDragLayer; private final TaskbarIconController mIconController; private final MyDragController mDragController; @@ -123,9 +123,9 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ mDeviceProfile.updateIconSize(iconScale, getResources()); mLayoutInflater = LayoutInflater.from(this).cloneInContext(this); - mTaskbarContainerView = (TaskbarContainerView) mLayoutInflater + mDragLayer = (TaskbarDragLayer) mLayoutInflater .inflate(R.layout.taskbar, null, false); - mIconController = new TaskbarIconController(this, mTaskbarContainerView); + mIconController = new TaskbarIconController(this, mDragLayer); mDragController = new MyDragController(this); Display display = windowContext.getDisplay(); @@ -157,7 +157,7 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ ); mIconController.init(mOnTaskbarIconClickListener, mOnTaskbarIconLongClickListener); - mWindowManager.addView(mTaskbarContainerView, mWindowLayoutParams); + mWindowManager.addView(mDragLayer, mWindowLayoutParams); } /** @@ -168,7 +168,7 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ return; } mWindowLayoutParams.height = height; - mWindowManager.updateViewLayout(mTaskbarContainerView, mWindowLayoutParams); + mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams); } public boolean canShowNavButtons() { @@ -181,8 +181,8 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ } @Override - public TaskbarContainerView getDragLayer() { - return mTaskbarContainerView; + public TaskbarDragLayer getDragLayer() { + return mDragLayer; } @Override @@ -192,7 +192,7 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ @Override public Rect getFolderBoundingBox() { - return mTaskbarContainerView.getFolderBoundingBox(); + return mDragLayer.getFolderBoundingBox(); } @Override @@ -216,15 +216,28 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ public void onDestroy() { setUIController(TaskbarUIController.DEFAULT); mIconController.onDestroy(); - mWindowManager.removeViewImmediate(mTaskbarContainerView); + mWindowManager.removeViewImmediate(mDragLayer); } void onNavigationButtonClick(@TaskbarButton int buttonType) { mNavButtonController.onButtonClick(buttonType); } - public TaskbarIconController getIconController() { - return mIconController; + /** + * Should be called when the IME visibility changes, so we can hide/show Taskbar accordingly. + */ + public void setImeIsVisible(boolean isImeVisible) { + mIconController.setImeIsVisible(isImeVisible); + } + + /** + * When in 3 button nav, the above doesn't get called since we prevent sysui nav bar from + * instantiating at all, which is what's responsible for sending sysui state flags over. + * + * @param vis IME visibility flag + */ + public void updateImeStatus(int displayId, int vis, boolean showImeSwitcher) { + mIconController.updateImeStatus(displayId, vis, showImeSwitcher); } /** diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarContainerView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayer.java similarity index 90% rename from quickstep/src/com/android/launcher3/taskbar/TaskbarContainerView.java rename to quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayer.java index 5034791f0e..45ec911527 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarContainerView.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayer.java @@ -35,7 +35,7 @@ import com.android.systemui.shared.system.ViewTreeObserverWrapper.OnComputeInset /** * Top-level ViewGroup that hosts the TaskbarView as well as Views created by it such as Folder. */ -public class TaskbarContainerView extends BaseDragLayer { +public class TaskbarDragLayer extends BaseDragLayer { private final int mFolderMargin; private final Paint mTaskbarBackgroundPaint; @@ -45,20 +45,20 @@ public class TaskbarContainerView extends BaseDragLayer private final OnComputeInsetsListener mTaskbarInsetsComputer = this::onComputeTaskbarInsets; - public TaskbarContainerView(@NonNull Context context) { + public TaskbarDragLayer(@NonNull Context context) { this(context, null); } - public TaskbarContainerView(@NonNull Context context, @Nullable AttributeSet attrs) { + public TaskbarDragLayer(@NonNull Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } - public TaskbarContainerView(@NonNull Context context, @Nullable AttributeSet attrs, + public TaskbarDragLayer(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { this(context, attrs, defStyleAttr, 0); } - public TaskbarContainerView(@NonNull Context context, @Nullable AttributeSet attrs, + public TaskbarDragLayer(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, 1 /* alphaChannelCount */); mFolderMargin = getResources().getDimensionPixelSize(R.dimen.taskbar_folder_margin); @@ -118,7 +118,7 @@ public class TaskbarContainerView extends BaseDragLayer public void onViewRemoved(View child) { super.onViewRemoved(child); if (mControllerCallbacks != null) { - mControllerCallbacks.onContainerViewRemoved(); + mControllerCallbacks.onDragLayerViewRemoved(); } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarIconController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarIconController.java index 2a37915fcf..683a5b9fc4 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarIconController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarIconController.java @@ -41,7 +41,7 @@ public class TaskbarIconController { private final Rect mTempRect = new Rect(); private final TaskbarActivityContext mActivity; - private final TaskbarContainerView mContainerView; + private final TaskbarDragLayer mDragLayer; private final TaskbarView mTaskbarView; private final ImeBarView mImeBarView; @@ -49,15 +49,15 @@ public class TaskbarIconController { @NonNull private TaskbarUIController mUIController = TaskbarUIController.DEFAULT; - TaskbarIconController(TaskbarActivityContext activity, TaskbarContainerView containerView) { + TaskbarIconController(TaskbarActivityContext activity, TaskbarDragLayer dragLayer) { mActivity = activity; - mContainerView = containerView; - mTaskbarView = mContainerView.findViewById(R.id.taskbar_view); - mImeBarView = mContainerView.findViewById(R.id.ime_bar_view); + mDragLayer = dragLayer; + mTaskbarView = mDragLayer.findViewById(R.id.taskbar_view); + mImeBarView = mDragLayer.findViewById(R.id.ime_bar_view); } public void init(OnClickListener clickListener, OnLongClickListener longClickListener) { - mContainerView.addOnLayoutChangeListener((v, a, b, c, d, e, f, g, h) -> + mDragLayer.addOnLayoutChangeListener((v, a, b, c, d, e, f, g, h) -> mUIController.alignRealHotseatWithTaskbar()); ButtonProvider buttonProvider = new ButtonProvider(mActivity); @@ -65,11 +65,11 @@ public class TaskbarIconController { mTaskbarView.construct(clickListener, longClickListener, buttonProvider); mTaskbarView.getLayoutParams().height = mActivity.getDeviceProfile().taskbarSize; - mContainerView.init(new Callbacks(), mTaskbarView); + mDragLayer.init(new Callbacks(), mTaskbarView); } public void onDestroy() { - mContainerView.onDestroy(); + mDragLayer.onDestroy(); } public void setUIController(@NonNull TaskbarUIController uiController) { @@ -96,11 +96,11 @@ public class TaskbarIconController { */ public void setImeIsVisible(boolean isImeVisible) { mTaskbarView.setTouchesEnabled(!isImeVisible); - mUIController.onImeVisible(mContainerView, isImeVisible); + mUIController.onImeVisible(mDragLayer, isImeVisible); } /** - * Callbacks for {@link TaskbarContainerView} to interact with the icon controller + * Callbacks for {@link TaskbarDragLayer} to interact with the icon controller */ public class Callbacks { @@ -109,7 +109,7 @@ public class TaskbarIconController { */ public void updateInsetsTouchability(InsetsInfo insetsInfo) { insetsInfo.touchableRegion.setEmpty(); - if (mContainerView.getAlpha() < AlphaUpdateListener.ALPHA_CUTOFF_THRESHOLD) { + if (mDragLayer.getAlpha() < AlphaUpdateListener.ALPHA_CUTOFF_THRESHOLD) { // Let touches pass through us. insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_REGION); } else if (mImeBarView.getVisibility() == VISIBLE) { @@ -122,7 +122,7 @@ public class TaskbarIconController { insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_FRAME); } else { if (mTaskbarView.mSystemButtonContainer.getVisibility() == VISIBLE) { - mContainerView.getDescendantRectRelativeToSelf( + mDragLayer.getDescendantRectRelativeToSelf( mTaskbarView.mSystemButtonContainer, mTempRect); insetsInfo.touchableRegion.set(mTempRect); } @@ -135,15 +135,15 @@ public class TaskbarIconController { // mTaskbarView is, since its position never changes and insets rather than overlays. insetsInfo.contentInsets.left = mTaskbarView.getLeft(); insetsInfo.contentInsets.top = mTaskbarView.getTop(); - insetsInfo.contentInsets.right = mContainerView.getWidth() - mTaskbarView.getRight(); - insetsInfo.contentInsets.bottom = mContainerView.getHeight() - mTaskbarView.getBottom(); + insetsInfo.contentInsets.right = mDragLayer.getWidth() - mTaskbarView.getRight(); + insetsInfo.contentInsets.bottom = mDragLayer.getHeight() - mTaskbarView.getBottom(); } - public void onContainerViewRemoved() { - int count = mContainerView.getChildCount(); + public void onDragLayerViewRemoved() { + int count = mDragLayer.getChildCount(); // Ensure no other children present (like Folders, etc) for (int i = 0; i < count; i++) { - View v = mContainerView.getChildAt(i); + View v = mDragLayer.getChildAt(i); if (!((v instanceof TaskbarView) || (v instanceof ImeBarView))) { return; } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java index 263aa1142d..d026bfbf37 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java @@ -139,7 +139,7 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen public void onSystemUiFlagsChanged(int systemUiStateFlags) { boolean isImeVisible = (systemUiStateFlags & SYSUI_STATE_IME_SHOWING) != 0; if (mTaskbarActivityContext != null) { - mTaskbarActivityContext.getIconController().setImeIsVisible(isImeVisible); + mTaskbarActivityContext.setImeIsVisible(isImeVisible); } } @@ -154,8 +154,7 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen public void updateImeStatus(int displayId, int vis, int backDisposition, boolean showImeSwitcher) { if (mTaskbarActivityContext != null) { - mTaskbarActivityContext.getIconController() - .updateImeStatus(displayId, vis, showImeSwitcher); + mTaskbarActivityContext.updateImeStatus(displayId, vis, showImeSwitcher); } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java index e16f5e65b0..50adeadbfc 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java @@ -35,7 +35,7 @@ public class TaskbarUIController { return true; } - protected void onImeVisible(TaskbarContainerView container, boolean isVisible) { + protected void onImeVisible(TaskbarDragLayer container, boolean isVisible) { container.updateImeBarVisibilityAlpha(isVisible ? 1 : 0); } }