mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-18 18:28:20 +00:00
Also dispatch sysui flags to all controllers upon recreate, not just NavbarButtonsViewController. Additionally, tell the controllers to skip the animation due to the flag changes if it's fromInit. Test: Enable themed icons, switch dark theme in quick settings, ensure taskbar updates Fixes: 204403933 Change-Id: Ic43a50cf0456175f9beba5c29360440f051cbd2d
111 lines
5.3 KiB
Java
111 lines
5.3 KiB
Java
/*
|
|
* Copyright (C) 2021 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;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import com.android.launcher3.taskbar.contextual.RotationButtonController;
|
|
|
|
/**
|
|
* Hosts various taskbar controllers to facilitate passing between one another.
|
|
*/
|
|
public class TaskbarControllers {
|
|
|
|
public final TaskbarActivityContext taskbarActivityContext;
|
|
public final TaskbarDragController taskbarDragController;
|
|
public final TaskbarNavButtonController navButtonController;
|
|
public final NavbarButtonsViewController navbarButtonsViewController;
|
|
public final RotationButtonController rotationButtonController;
|
|
public final TaskbarDragLayerController taskbarDragLayerController;
|
|
public final TaskbarScrimViewController taskbarScrimViewController;
|
|
public final TaskbarViewController taskbarViewController;
|
|
public final TaskbarUnfoldAnimationController taskbarUnfoldAnimationController;
|
|
public final TaskbarKeyguardController taskbarKeyguardController;
|
|
public final StashedHandleViewController stashedHandleViewController;
|
|
public final TaskbarStashController taskbarStashController;
|
|
public final TaskbarEduController taskbarEduController;
|
|
public final TaskbarAutohideSuspendController taskbarAutohideSuspendController;
|
|
|
|
/** Do not store this controller, as it may change at runtime. */
|
|
@NonNull public TaskbarUIController uiController = TaskbarUIController.DEFAULT;
|
|
|
|
public TaskbarControllers(TaskbarActivityContext taskbarActivityContext,
|
|
TaskbarDragController taskbarDragController,
|
|
TaskbarNavButtonController navButtonController,
|
|
NavbarButtonsViewController navbarButtonsViewController,
|
|
RotationButtonController rotationButtonController,
|
|
TaskbarDragLayerController taskbarDragLayerController,
|
|
TaskbarViewController taskbarViewController,
|
|
TaskbarScrimViewController taskbarScrimViewController,
|
|
TaskbarUnfoldAnimationController taskbarUnfoldAnimationController,
|
|
TaskbarKeyguardController taskbarKeyguardController,
|
|
StashedHandleViewController stashedHandleViewController,
|
|
TaskbarStashController taskbarStashController,
|
|
TaskbarEduController taskbarEduController,
|
|
TaskbarAutohideSuspendController taskbarAutoHideSuspendController) {
|
|
this.taskbarActivityContext = taskbarActivityContext;
|
|
this.taskbarDragController = taskbarDragController;
|
|
this.navButtonController = navButtonController;
|
|
this.navbarButtonsViewController = navbarButtonsViewController;
|
|
this.rotationButtonController = rotationButtonController;
|
|
this.taskbarDragLayerController = taskbarDragLayerController;
|
|
this.taskbarViewController = taskbarViewController;
|
|
this.taskbarScrimViewController = taskbarScrimViewController;
|
|
this.taskbarUnfoldAnimationController = taskbarUnfoldAnimationController;
|
|
this.taskbarKeyguardController = taskbarKeyguardController;
|
|
this.stashedHandleViewController = stashedHandleViewController;
|
|
this.taskbarStashController = taskbarStashController;
|
|
this.taskbarEduController = taskbarEduController;
|
|
this.taskbarAutohideSuspendController = taskbarAutoHideSuspendController;
|
|
}
|
|
|
|
/**
|
|
* Initializes all controllers. Note that controllers can now reference each other through this
|
|
* TaskbarControllers instance, but should be careful to only access things that were created
|
|
* in constructors for now, as some controllers may still be waiting for init().
|
|
*/
|
|
public void init(TaskbarSharedState sharedState) {
|
|
taskbarDragController.init(this);
|
|
navbarButtonsViewController.init(this);
|
|
if (taskbarActivityContext.isThreeButtonNav()) {
|
|
rotationButtonController.init();
|
|
}
|
|
taskbarDragLayerController.init(this);
|
|
taskbarViewController.init(this);
|
|
taskbarScrimViewController.init(this);
|
|
taskbarUnfoldAnimationController.init(this);
|
|
taskbarKeyguardController.init(navbarButtonsViewController);
|
|
stashedHandleViewController.init(this);
|
|
taskbarStashController.init(this, sharedState);
|
|
taskbarEduController.init(this);
|
|
}
|
|
|
|
/**
|
|
* Cleans up all controllers.
|
|
*/
|
|
public void onDestroy() {
|
|
navbarButtonsViewController.onDestroy();
|
|
uiController.onDestroy();
|
|
rotationButtonController.onDestroy();
|
|
taskbarDragLayerController.onDestroy();
|
|
taskbarKeyguardController.onDestroy();
|
|
taskbarUnfoldAnimationController.onDestroy();
|
|
taskbarViewController.onDestroy();
|
|
stashedHandleViewController.onDestroy();
|
|
taskbarAutohideSuspendController.onDestroy();
|
|
}
|
|
}
|