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

Commit a56031d1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Unfold refactor"

parents d65fde6e 8ff06515
Loading
Loading
Loading
Loading
+49 −0
Original line number Diff line number Diff line
/*
 * 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.keyguard

import android.view.ViewGroup
import com.android.systemui.unfold.SysUIUnfoldScope
import com.android.systemui.unfold.UnfoldTransitionProgressProvider
import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener
import javax.inject.Inject

/**
 * Translates items away/towards the hinge when the device is opened/closed.
 */
@SysUIUnfoldScope
class KeyguardUnfoldTransition @Inject constructor(
    val unfoldProgressProvider: UnfoldTransitionProgressProvider
) {
    init {
        unfoldProgressProvider.addCallback(
            object : TransitionProgressListener {
                override fun onTransitionStarted() {
                }

                override fun onTransitionProgress(progress: Float) {
                }

                override fun onTransitionFinished() {
                }
            }
        )
    }

    fun setup(parent: ViewGroup) {
    }
}
+20 −1
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import com.android.systemui.dump.DumpManager;
import com.android.systemui.keyguard.KeyguardSliceProvider;
import com.android.systemui.people.PeopleProvider;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.unfold.SysUIUnfoldComponent;
import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider;
import com.android.wm.shell.ShellCommandHandler;
import com.android.wm.shell.TaskViewFactory;
import com.android.wm.shell.apppairs.AppPairs;
@@ -112,7 +114,14 @@ public interface SysUIComponent {
     * Initializes all the SysUI components.
     */
    default void init() {
        // Do nothing
        // Initialize components that have no direct tie to the dagger dependency graph,
        // but are critical to this component's operation
        // TODO(b/205034537): I think this is a good idea?
        getSysUIUnfoldComponent().ifPresent(c -> {
            c.getUnfoldLightRevealOverlayAnimation().init();
            c.getUnfoldTransitionWallpaperController().init();
        });
        getNaturalRotationUnfoldProgressProvider().ifPresent(o -> o.init());
    }

    /**
@@ -149,6 +158,16 @@ public interface SysUIComponent {
    @SysUISingleton
    InitController getInitController();

    /**
     * For devices with a hinge: access objects within this component
     */
    Optional<SysUIUnfoldComponent> getSysUIUnfoldComponent();

    /**
     * For devices with a hinge: the rotation animation
     */
    Optional<NaturalRotationUnfoldProgressProvider> getNaturalRotationUnfoldProgressProvider();

    /**
     * Member injection into the supplied argument.
     */
+2 −0
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ import com.android.systemui.statusbar.policy.dagger.SmartRepliesInflationModule;
import com.android.systemui.statusbar.policy.dagger.StatusBarPolicyModule;
import com.android.systemui.statusbar.window.StatusBarWindowModule;
import com.android.systemui.tuner.dagger.TunerModule;
import com.android.systemui.unfold.SysUIUnfoldModule;
import com.android.systemui.user.UserModule;
import com.android.systemui.util.concurrency.SysUIConcurrencyModule;
import com.android.systemui.util.dagger.UtilModule;
@@ -119,6 +120,7 @@ import dagger.Provides;
            StatusBarPolicyModule.class,
            StatusBarWindowModule.class,
            SysUIConcurrencyModule.class,
            SysUIUnfoldModule.class,
            TunerModule.class,
            UserModule.class,
            UtilModule.class,
+7 −8
Original line number Diff line number Diff line
@@ -122,13 +122,14 @@ import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.unfold.SysUIUnfoldComponent;
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
import com.android.systemui.unfold.config.UnfoldTransitionConfig;
import com.android.systemui.util.DeviceConfigProxy;

import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Optional;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicInteger;

@@ -814,8 +815,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
    private DeviceConfigProxy mDeviceConfig;
    private DozeParameters mDozeParameters;

    private final UnfoldTransitionConfig mUnfoldTransitionConfig;
    private final Lazy<UnfoldLightRevealOverlayAnimation> mUnfoldLightRevealAnimation;
    private final Optional<UnfoldLightRevealOverlayAnimation> mUnfoldLightRevealAnimation;
    private final AtomicInteger mPendingDrawnTasks = new AtomicInteger();

    private final KeyguardStateController mKeyguardStateController;
@@ -840,8 +840,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
            NavigationModeController navigationModeController,
            KeyguardDisplayManager keyguardDisplayManager,
            DozeParameters dozeParameters,
            UnfoldTransitionConfig unfoldTransitionConfig,
            Lazy<UnfoldLightRevealOverlayAnimation> unfoldLightRevealOverlayAnimation,
            Optional<SysUIUnfoldComponent> unfoldComponent,
            SysuiStatusBarStateController statusBarStateController,
            KeyguardStateController keyguardStateController,
            Lazy<KeyguardUnlockAnimationController> keyguardUnlockAnimationControllerLazy,
@@ -875,8 +874,8 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
                    mInGestureNavigationMode = QuickStepContract.isGesturalMode(mode);
                }));
        mDozeParameters = dozeParameters;
        mUnfoldTransitionConfig = unfoldTransitionConfig;
        mUnfoldLightRevealAnimation = unfoldLightRevealOverlayAnimation;
        mUnfoldLightRevealAnimation = unfoldComponent.map(
                c -> c.getUnfoldLightRevealOverlayAnimation());
        mStatusBarStateController = statusBarStateController;
        statusBarStateController.addCallback(this);

@@ -2566,7 +2565,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
        synchronized (KeyguardViewMediator.this) {
            if (DEBUG) Log.d(TAG, "handleNotifyScreenTurningOn");

            if (mUnfoldTransitionConfig.isEnabled()) {
            if (mUnfoldLightRevealAnimation.isPresent()) {
                mPendingDrawnTasks.set(2); // unfold overlay and keyguard drawn

                mUnfoldLightRevealAnimation.get()
+4 −6
Original line number Diff line number Diff line
@@ -49,11 +49,11 @@ import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
import com.android.systemui.unfold.config.UnfoldTransitionConfig;
import com.android.systemui.unfold.SysUIUnfoldComponent;
import com.android.systemui.util.DeviceConfigProxy;
import com.android.systemui.util.sensors.AsyncSensorManager;

import java.util.Optional;
import java.util.concurrent.Executor;

import dagger.Lazy;
@@ -92,8 +92,7 @@ public class KeyguardModule {
            NavigationModeController navigationModeController,
            KeyguardDisplayManager keyguardDisplayManager,
            DozeParameters dozeParameters,
            UnfoldTransitionConfig unfoldTransitionConfig,
            Lazy<UnfoldLightRevealOverlayAnimation> unfoldLightRevealOverlayAnimation,
            Optional<SysUIUnfoldComponent> unfoldComponent,
            SysuiStatusBarStateController statusBarStateController,
            KeyguardStateController keyguardStateController,
            Lazy<KeyguardUnlockAnimationController> keyguardUnlockAnimationController,
@@ -116,8 +115,7 @@ public class KeyguardModule {
                navigationModeController,
                keyguardDisplayManager,
                dozeParameters,
                unfoldTransitionConfig,
                unfoldLightRevealOverlayAnimation,
                unfoldComponent,
                statusBarStateController,
                keyguardStateController,
                keyguardUnlockAnimationController,
Loading