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

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

Merge "[DO NOT MERGE] Unfold refactor" into sc-v2-dev

parents af23af4c 61b224cc
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
@@ -73,6 +73,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;
@@ -115,6 +116,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);

@@ -2560,7 +2559,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