Loading quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +37 −0 Original line number Original line Diff line number Diff line Loading @@ -21,14 +21,20 @@ import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_APP; import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_STASHED_LAUNCHER_STATE; import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_STASHED_LAUNCHER_STATE; import static com.android.launcher3.taskbar.TaskbarStashController.TASKBAR_STASH_DURATION; import static com.android.launcher3.taskbar.TaskbarStashController.TASKBAR_STASH_DURATION; import static com.android.launcher3.taskbar.TaskbarViewController.ALPHA_INDEX_HOME; import static com.android.launcher3.taskbar.TaskbarViewController.ALPHA_INDEX_HOME; import static com.android.systemui.shared.system.WindowManagerWrapper.ITYPE_EXTRA_NAVIGATION_BAR; import android.animation.Animator; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.animation.ObjectAnimator; import android.annotation.ColorInt; import android.graphics.Rect; import android.graphics.Rect; import android.os.RemoteException; import android.util.Log; import android.view.MotionEvent; import android.view.MotionEvent; import android.view.TaskTransitionSpec; import android.view.View; import android.view.View; import android.view.WindowManagerGlobal; import androidx.annotation.NonNull; import androidx.annotation.NonNull; Loading @@ -36,6 +42,7 @@ import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.DeviceProfile; import com.android.launcher3.DeviceProfile; import com.android.launcher3.LauncherState; import com.android.launcher3.LauncherState; import com.android.launcher3.QuickstepTransitionManager; import com.android.launcher3.QuickstepTransitionManager; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.Utilities; import com.android.launcher3.anim.AnimatorListeners; import com.android.launcher3.anim.AnimatorListeners; import com.android.launcher3.anim.PendingAnimation; import com.android.launcher3.anim.PendingAnimation; Loading @@ -56,6 +63,7 @@ import com.android.quickstep.views.RecentsView; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.recents.model.ThumbnailData; import java.util.Arrays; import java.util.Arrays; import java.util.Set; import java.util.function.Supplier; import java.util.function.Supplier; import java.util.stream.Stream; import java.util.stream.Stream; Loading @@ -64,6 +72,8 @@ import java.util.stream.Stream; */ */ public class LauncherTaskbarUIController extends TaskbarUIController { public class LauncherTaskbarUIController extends TaskbarUIController { private static final String TAG = "TaskbarUIController"; private final BaseQuickstepLauncher mLauncher; private final BaseQuickstepLauncher mLauncher; private final AnimatedFloat mIconAlignmentForResumedState = private final AnimatedFloat mIconAlignmentForResumedState = Loading Loading @@ -193,6 +203,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { mLauncher.getHotseat().setIconsAlpha(1f); mLauncher.getHotseat().setIconsAlpha(1f); mLauncher.setTaskbarUIController(null); mLauncher.setTaskbarUIController(null); mLauncher.removeOnDeviceProfileChangeListener(mProfileChangeListener); mLauncher.removeOnDeviceProfileChangeListener(mProfileChangeListener); updateTaskTransitionSpec(true); } } @Override @Override Loading Loading @@ -367,6 +378,32 @@ public class LauncherTaskbarUIController extends TaskbarUIController { private void onStashedInAppChanged(DeviceProfile deviceProfile) { private void onStashedInAppChanged(DeviceProfile deviceProfile) { boolean taskbarStashedInApps = mControllers.taskbarStashController.isStashedInApp(); boolean taskbarStashedInApps = mControllers.taskbarStashController.isStashedInApp(); deviceProfile.isTaskbarPresentInApps = !taskbarStashedInApps; deviceProfile.isTaskbarPresentInApps = !taskbarStashedInApps; updateTaskTransitionSpec(taskbarStashedInApps); } private void updateTaskTransitionSpec(boolean taskbarIsHidden) { try { if (taskbarIsHidden) { // Clear custom task transition settings when the taskbar is stashed WindowManagerGlobal.getWindowManagerService().clearTaskTransitionSpec(); } else { // Adjust task transition spec to account for taskbar being visible @ColorInt int taskAnimationBackgroundColor = mLauncher.getColor(R.color.taskbar_background); TaskTransitionSpec customTaskAnimationSpec = new TaskTransitionSpec( taskAnimationBackgroundColor, Set.of(ITYPE_EXTRA_NAVIGATION_BAR) ); WindowManagerGlobal.getWindowManagerService() .setTaskTransitionSpec(customTaskAnimationSpec); } } catch (RemoteException e) { // This shouldn't happen but if it does task animations won't look good until the // taskbar stashing state is changed. Log.e(TAG, "Failed to update task transition spec to account for new taskbar state", e); } } } /** /** Loading Loading
quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +37 −0 Original line number Original line Diff line number Diff line Loading @@ -21,14 +21,20 @@ import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_APP; import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_STASHED_LAUNCHER_STATE; import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_STASHED_LAUNCHER_STATE; import static com.android.launcher3.taskbar.TaskbarStashController.TASKBAR_STASH_DURATION; import static com.android.launcher3.taskbar.TaskbarStashController.TASKBAR_STASH_DURATION; import static com.android.launcher3.taskbar.TaskbarViewController.ALPHA_INDEX_HOME; import static com.android.launcher3.taskbar.TaskbarViewController.ALPHA_INDEX_HOME; import static com.android.systemui.shared.system.WindowManagerWrapper.ITYPE_EXTRA_NAVIGATION_BAR; import android.animation.Animator; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.animation.ObjectAnimator; import android.annotation.ColorInt; import android.graphics.Rect; import android.graphics.Rect; import android.os.RemoteException; import android.util.Log; import android.view.MotionEvent; import android.view.MotionEvent; import android.view.TaskTransitionSpec; import android.view.View; import android.view.View; import android.view.WindowManagerGlobal; import androidx.annotation.NonNull; import androidx.annotation.NonNull; Loading @@ -36,6 +42,7 @@ import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.DeviceProfile; import com.android.launcher3.DeviceProfile; import com.android.launcher3.LauncherState; import com.android.launcher3.LauncherState; import com.android.launcher3.QuickstepTransitionManager; import com.android.launcher3.QuickstepTransitionManager; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.Utilities; import com.android.launcher3.anim.AnimatorListeners; import com.android.launcher3.anim.AnimatorListeners; import com.android.launcher3.anim.PendingAnimation; import com.android.launcher3.anim.PendingAnimation; Loading @@ -56,6 +63,7 @@ import com.android.quickstep.views.RecentsView; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.recents.model.ThumbnailData; import java.util.Arrays; import java.util.Arrays; import java.util.Set; import java.util.function.Supplier; import java.util.function.Supplier; import java.util.stream.Stream; import java.util.stream.Stream; Loading @@ -64,6 +72,8 @@ import java.util.stream.Stream; */ */ public class LauncherTaskbarUIController extends TaskbarUIController { public class LauncherTaskbarUIController extends TaskbarUIController { private static final String TAG = "TaskbarUIController"; private final BaseQuickstepLauncher mLauncher; private final BaseQuickstepLauncher mLauncher; private final AnimatedFloat mIconAlignmentForResumedState = private final AnimatedFloat mIconAlignmentForResumedState = Loading Loading @@ -193,6 +203,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { mLauncher.getHotseat().setIconsAlpha(1f); mLauncher.getHotseat().setIconsAlpha(1f); mLauncher.setTaskbarUIController(null); mLauncher.setTaskbarUIController(null); mLauncher.removeOnDeviceProfileChangeListener(mProfileChangeListener); mLauncher.removeOnDeviceProfileChangeListener(mProfileChangeListener); updateTaskTransitionSpec(true); } } @Override @Override Loading Loading @@ -367,6 +378,32 @@ public class LauncherTaskbarUIController extends TaskbarUIController { private void onStashedInAppChanged(DeviceProfile deviceProfile) { private void onStashedInAppChanged(DeviceProfile deviceProfile) { boolean taskbarStashedInApps = mControllers.taskbarStashController.isStashedInApp(); boolean taskbarStashedInApps = mControllers.taskbarStashController.isStashedInApp(); deviceProfile.isTaskbarPresentInApps = !taskbarStashedInApps; deviceProfile.isTaskbarPresentInApps = !taskbarStashedInApps; updateTaskTransitionSpec(taskbarStashedInApps); } private void updateTaskTransitionSpec(boolean taskbarIsHidden) { try { if (taskbarIsHidden) { // Clear custom task transition settings when the taskbar is stashed WindowManagerGlobal.getWindowManagerService().clearTaskTransitionSpec(); } else { // Adjust task transition spec to account for taskbar being visible @ColorInt int taskAnimationBackgroundColor = mLauncher.getColor(R.color.taskbar_background); TaskTransitionSpec customTaskAnimationSpec = new TaskTransitionSpec( taskAnimationBackgroundColor, Set.of(ITYPE_EXTRA_NAVIGATION_BAR) ); WindowManagerGlobal.getWindowManagerService() .setTaskTransitionSpec(customTaskAnimationSpec); } } catch (RemoteException e) { // This shouldn't happen but if it does task animations won't look good until the // taskbar stashing state is changed. Log.e(TAG, "Failed to update task transition spec to account for new taskbar state", e); } } } /** /** Loading