mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-18 18:28:20 +00:00
Merge "Recreate taskbar when dark mode changes" into sc-v2-dev am: d71a4288cf
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/16144065 Change-Id: I7d5777ed488f8e200cc556e584d29c9cd0545daf
This commit is contained in:
@@ -121,10 +121,9 @@ public class NavbarButtonsViewController {
|
||||
/**
|
||||
* Initializes the controller
|
||||
*/
|
||||
public void init(TaskbarControllers controllers, TaskbarSharedState sharedState) {
|
||||
public void init(TaskbarControllers controllers) {
|
||||
mControllers = controllers;
|
||||
mNavButtonsView.getLayoutParams().height = mContext.getDeviceProfile().taskbarSize;
|
||||
parseSystemUiFlags(sharedState.sysuiStateFlags);
|
||||
mNavButtonTranslationYMultiplier.value = 1;
|
||||
|
||||
mA11yLongClickListener = view -> {
|
||||
@@ -290,12 +289,15 @@ public class NavbarButtonsViewController {
|
||||
}
|
||||
}
|
||||
|
||||
public void updateStateForSysuiFlags(int systemUiStateFlags) {
|
||||
public void updateStateForSysuiFlags(int systemUiStateFlags, boolean skipAnim) {
|
||||
if (systemUiStateFlags == mSysuiStateFlags) {
|
||||
return;
|
||||
}
|
||||
parseSystemUiFlags(systemUiStateFlags);
|
||||
applyState();
|
||||
if (skipAnim) {
|
||||
mPropertyHolders.forEach(StatePropertyHolder::endAnimation);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -191,6 +191,7 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ
|
||||
|
||||
// Initialize controllers after all are constructed.
|
||||
mControllers.init(sharedState);
|
||||
updateSysuiStateFlags(sharedState.sysuiStateFlags, true /* fromInit */);
|
||||
|
||||
mWindowManager.addView(mDragLayer, mWindowLayoutParams);
|
||||
}
|
||||
@@ -325,26 +326,28 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ
|
||||
mWindowManager.removeViewImmediate(mDragLayer);
|
||||
}
|
||||
|
||||
public void updateSysuiStateFlags(int systemUiStateFlags) {
|
||||
mControllers.navbarButtonsViewController.updateStateForSysuiFlags(systemUiStateFlags);
|
||||
public void updateSysuiStateFlags(int systemUiStateFlags, boolean fromInit) {
|
||||
mControllers.navbarButtonsViewController.updateStateForSysuiFlags(systemUiStateFlags,
|
||||
fromInit);
|
||||
mControllers.taskbarViewController.setImeIsVisible(
|
||||
mControllers.navbarButtonsViewController.isImeVisible());
|
||||
int shadeExpandedFlags = SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED
|
||||
| SYSUI_STATE_QUICK_SETTINGS_EXPANDED;
|
||||
onNotificationShadeExpandChanged((systemUiStateFlags & shadeExpandedFlags) != 0);
|
||||
onNotificationShadeExpandChanged((systemUiStateFlags & shadeExpandedFlags) != 0, fromInit);
|
||||
mControllers.taskbarViewController.setRecentsButtonDisabled(
|
||||
mControllers.navbarButtonsViewController.isRecentsDisabled());
|
||||
mControllers.stashedHandleViewController.setIsHomeButtonDisabled(
|
||||
mControllers.navbarButtonsViewController.isHomeDisabled());
|
||||
mControllers.taskbarKeyguardController.updateStateForSysuiFlags(systemUiStateFlags);
|
||||
mControllers.taskbarStashController.updateStateForSysuiFlags(systemUiStateFlags);
|
||||
mControllers.taskbarScrimViewController.updateStateForSysuiFlags(systemUiStateFlags);
|
||||
mControllers.taskbarStashController.updateStateForSysuiFlags(systemUiStateFlags, fromInit);
|
||||
mControllers.taskbarScrimViewController.updateStateForSysuiFlags(systemUiStateFlags,
|
||||
fromInit);
|
||||
}
|
||||
|
||||
/**
|
||||
* Hides the taskbar icons and background when the notication shade is expanded.
|
||||
*/
|
||||
private void onNotificationShadeExpandChanged(boolean isExpanded) {
|
||||
private void onNotificationShadeExpandChanged(boolean isExpanded, boolean skipAnim) {
|
||||
float alpha = isExpanded ? 0 : 1;
|
||||
AnimatorSet anim = new AnimatorSet();
|
||||
anim.play(mControllers.taskbarViewController.getTaskbarIconAlpha().getProperty(
|
||||
@@ -354,6 +357,9 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ
|
||||
.animateToValue(alpha));
|
||||
}
|
||||
anim.start();
|
||||
if (skipAnim) {
|
||||
anim.end();
|
||||
}
|
||||
}
|
||||
|
||||
public void onRotationProposal(int rotation, boolean isValid) {
|
||||
|
||||
@@ -79,7 +79,7 @@ public class TaskbarControllers {
|
||||
*/
|
||||
public void init(TaskbarSharedState sharedState) {
|
||||
taskbarDragController.init(this);
|
||||
navbarButtonsViewController.init(this, sharedState);
|
||||
navbarButtonsViewController.init(this);
|
||||
if (taskbarActivityContext.isThreeButtonNav()) {
|
||||
rotationButtonController.init();
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
int configDiff = mOldConfig.diff(newConfig);
|
||||
int configsRequiringRecreate = ActivityInfo.CONFIG_ASSETS_PATHS
|
||||
| ActivityInfo.CONFIG_LAYOUT_DIRECTION;
|
||||
| ActivityInfo.CONFIG_LAYOUT_DIRECTION | ActivityInfo.CONFIG_UI_MODE;
|
||||
if ((configDiff & configsRequiringRecreate) != 0) {
|
||||
// Color has changed, recreate taskbar to reload background color & icons.
|
||||
recreateTaskbar();
|
||||
@@ -231,7 +231,7 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen
|
||||
public void onSystemUiFlagsChanged(int systemUiStateFlags) {
|
||||
mSharedState.sysuiStateFlags = systemUiStateFlags;
|
||||
if (mTaskbarActivityContext != null) {
|
||||
mTaskbarActivityContext.updateSysuiStateFlags(systemUiStateFlags);
|
||||
mTaskbarActivityContext.updateSysuiStateFlags(systemUiStateFlags, false /* fromInit */);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ public class TaskbarScrimViewController {
|
||||
/**
|
||||
* Updates the scrim state based on the flags.
|
||||
*/
|
||||
public void updateStateForSysuiFlags(int stateFlags) {
|
||||
public void updateStateForSysuiFlags(int stateFlags, boolean skipAnim) {
|
||||
final boolean bubblesExpanded = (stateFlags & SYSUI_STATE_BUBBLES_EXPANDED) != 0;
|
||||
final boolean manageMenuExpanded =
|
||||
(stateFlags & SYSUI_STATE_BUBBLES_MANAGE_MENU_EXPANDED) != 0;
|
||||
@@ -73,15 +73,18 @@ public class TaskbarScrimViewController {
|
||||
// what the total transparency would be.
|
||||
? (SCRIM_ALPHA + (SCRIM_ALPHA * (1 - SCRIM_ALPHA)))
|
||||
: showScrim ? SCRIM_ALPHA : 0;
|
||||
showScrim(showScrim, scrimAlpha);
|
||||
showScrim(showScrim, scrimAlpha, skipAnim);
|
||||
}
|
||||
|
||||
private void showScrim(boolean showScrim, float alpha) {
|
||||
private void showScrim(boolean showScrim, float alpha, boolean skipAnim) {
|
||||
mScrimView.setOnClickListener(showScrim ? (view) -> onClick() : null);
|
||||
mScrimView.setClickable(showScrim);
|
||||
ObjectAnimator anim = mScrimAlpha.animateToValue(showScrim ? alpha : 0);
|
||||
anim.setInterpolator(showScrim ? SCRIM_ALPHA_IN : SCRIM_ALPHA_OUT);
|
||||
anim.start();
|
||||
if (skipAnim) {
|
||||
anim.end();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateScrimAlpha() {
|
||||
|
||||
@@ -408,10 +408,10 @@ public class TaskbarStashController {
|
||||
}
|
||||
|
||||
/** Called when some system ui state has changed. (See SYSUI_STATE_... in QuickstepContract) */
|
||||
public void updateStateForSysuiFlags(int systemUiStateFlags) {
|
||||
public void updateStateForSysuiFlags(int systemUiStateFlags, boolean skipAnim) {
|
||||
updateStateForFlag(FLAG_STASHED_IN_APP_PINNED,
|
||||
hasAnyFlag(systemUiStateFlags, SYSUI_STATE_SCREEN_PINNING));
|
||||
applyState();
|
||||
applyState(skipAnim ? 0 : TASKBAR_STASH_DURATION);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user