Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a0f2b988 authored by Dmitrii Merkurev's avatar Dmitrii Merkurev Committed by Automerger Merge Worker
Browse files

Merge "Migrate unfold animation to Shell transitions [Part 2]" into tm-qpr-dev am: 37f9fa6a

parents 4d0aae9b 37f9fa6a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<!-- Should be the same as in packages/apps/Launcher3/res/color-v31/taskbar_background.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/system_neutral1_500" android:lStar="35" />
    <item android:color="@android:color/system_neutral1_500" android:lStar="15" />
</selector>
 No newline at end of file
+0 −19
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Matches taskbar color -->
    <item android:color="@android:color/system_neutral2_500" android:lStar="35" />
</selector>
+10 −9
Original line number Diff line number Diff line
@@ -319,26 +319,27 @@ public abstract class WMShellBaseModule {
    @WMSingleton
    @Provides
    static Optional<FullscreenUnfoldController> provideFullscreenUnfoldController(
            @DynamicOverride Optional<FullscreenUnfoldController> fullscreenUnfoldController,
            @DynamicOverride Lazy<Optional<FullscreenUnfoldController>> fullscreenUnfoldController,
            Optional<ShellUnfoldProgressProvider> progressProvider) {
        if (progressProvider.isPresent()
                && progressProvider.get() != ShellUnfoldProgressProvider.NO_PROVIDER) {
            return fullscreenUnfoldController;
            return fullscreenUnfoldController.get();
        }
        return Optional.empty();
    }

    @BindsOptionalOf
    @DynamicOverride
    abstract UnfoldTransitionHandler optionalUnfoldTransitionHandler();

    @WMSingleton
    @Provides
    static Optional<UnfoldTransitionHandler> provideUnfoldTransitionHandler(
            Optional<ShellUnfoldProgressProvider> progressProvider,
            TransactionPool transactionPool,
            Transitions transitions,
            @ShellMainThread ShellExecutor executor) {
        if (progressProvider.isPresent()) {
            return Optional.of(
                    new UnfoldTransitionHandler(progressProvider.get(), transactionPool, executor,
                            transitions));
            @DynamicOverride Lazy<Optional<UnfoldTransitionHandler>> handler) {
        if (progressProvider.isPresent()
                && progressProvider.get() != ShellUnfoldProgressProvider.NO_PROVIDER) {
            return handler.get();
        }
        return Optional.empty();
    }
+30 −6
Original line number Diff line number Diff line
@@ -70,6 +70,8 @@ import com.android.wm.shell.splitscreen.StageTaskUnfoldController;
import com.android.wm.shell.transition.Transitions;
import com.android.wm.shell.unfold.ShellUnfoldProgressProvider;
import com.android.wm.shell.unfold.UnfoldBackgroundController;
import com.android.wm.shell.unfold.UnfoldTransitionHandler;
import com.android.wm.shell.unfold.animation.FullscreenUnfoldTaskAnimator;

import java.util.Optional;

@@ -344,15 +346,37 @@ public class WMShellModule {
    @Provides
    @DynamicOverride
    static FullscreenUnfoldController provideFullscreenUnfoldController(
            Context context,
            Optional<ShellUnfoldProgressProvider> progressProvider,
            Lazy<UnfoldBackgroundController> unfoldBackgroundController,
            DisplayInsetsController displayInsetsController,
            Optional<UnfoldTransitionHandler> unfoldTransitionHandler,
            FullscreenUnfoldTaskAnimator fullscreenUnfoldTaskAnimator,
            UnfoldBackgroundController unfoldBackgroundController,
            @ShellMainThread ShellExecutor mainExecutor
    ) {
        return new FullscreenUnfoldController(context, mainExecutor,
                unfoldBackgroundController.get(), progressProvider.get(),
                displayInsetsController);
        return new FullscreenUnfoldController(mainExecutor,
                unfoldBackgroundController, progressProvider.get(),
                unfoldTransitionHandler.get(), fullscreenUnfoldTaskAnimator);
    }

    @Provides
    static FullscreenUnfoldTaskAnimator provideFullscreenUnfoldTaskAnimator(
            Context context,
            DisplayInsetsController displayInsetsController
    ) {
        return new FullscreenUnfoldTaskAnimator(context, displayInsetsController);
    }

    @WMSingleton
    @Provides
    @DynamicOverride
    static UnfoldTransitionHandler provideUnfoldTransitionHandler(
            Optional<ShellUnfoldProgressProvider> progressProvider,
            FullscreenUnfoldTaskAnimator animator,
            UnfoldBackgroundController backgroundController,
            TransactionPool transactionPool,
            Transitions transitions,
            @ShellMainThread ShellExecutor executor) {
        return new UnfoldTransitionHandler(progressProvider.get(), animator,
                transactionPool, backgroundController, executor, transitions);
    }

    @Provides
+4 −2
Original line number Diff line number Diff line
@@ -76,6 +76,8 @@ public class FullscreenTaskListener implements ShellTaskOrganizer.TaskListener {
                taskInfo.taskId);
        final Point positionInParent = taskInfo.positionInParent;
        mDataByTaskId.put(taskInfo.taskId, new TaskData(leash, positionInParent));
        mAnimatableTasksListener.onTaskAppeared(taskInfo);

        if (Transitions.ENABLE_SHELL_TRANSITIONS) return;
        mSyncQueue.runInSync(t -> {
            // Reset several properties back to fullscreen (PiP, for example, leaves all these
@@ -87,15 +89,15 @@ public class FullscreenTaskListener implements ShellTaskOrganizer.TaskListener {
            t.show(leash);
        });

        mAnimatableTasksListener.onTaskAppeared(taskInfo);
        updateRecentsForVisibleFullscreenTask(taskInfo);
    }

    @Override
    public void onTaskInfoChanged(RunningTaskInfo taskInfo) {
        mAnimatableTasksListener.onTaskInfoChanged(taskInfo);

        if (Transitions.ENABLE_SHELL_TRANSITIONS) return;

        mAnimatableTasksListener.onTaskInfoChanged(taskInfo);
        updateRecentsForVisibleFullscreenTask(taskInfo);

        final TaskData data = mDataByTaskId.get(taskInfo.taskId);
Loading