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

Commit 23b60318 authored by Yifei Zhang's avatar Yifei Zhang Committed by Android (Google) Code Review
Browse files

Merge "unfold: move some dependencies into SysUIUnfoldComponent" into main

parents 80923392 96dd17de
Loading
Loading
Loading
Loading
+15 −25
Original line number Diff line number Diff line
@@ -34,10 +34,8 @@ import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.unfold.FoldStateLogger;
import com.android.systemui.unfold.FoldStateLoggingProvider;
import com.android.systemui.unfold.SysUIUnfoldComponent;
import com.android.systemui.unfold.UnfoldLatencyTracker;
import com.android.systemui.unfold.UnfoldTransitionProgressProvider;
import com.android.systemui.unfold.progress.UnfoldTransitionProgressForwarder;
import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider;
import com.android.wm.shell.back.BackAnimation;
import com.android.wm.shell.bubbles.Bubbles;
import com.android.wm.shell.desktopmode.DesktopMode;
@@ -62,7 +60,7 @@ import javax.inject.Provider;

/**
 * An example Dagger Subcomponent for Core SysUI.
 *
 * <p>
 * See {@link ReferenceSysUIComponent} for the one actually used by AOSP.
 */
@SysUISingleton
@@ -131,23 +129,26 @@ public interface SysUIComponent {
    default void init() {
        // Initialize components that have no direct tie to the dagger dependency graph,
        // but are critical to this component's operation
        getSysUIUnfoldComponent().ifPresent(c -> {
        getSysUIUnfoldComponent()
                .ifPresent(
                        c -> {
                            c.getUnfoldLightRevealOverlayAnimation().init();
                            c.getUnfoldTransitionWallpaperController().init();
                            c.getUnfoldHapticsPlayer();
                            c.getNaturalRotationUnfoldProgressProvider().init();
                            c.getUnfoldLatencyTracker().init();
                        });
        getNaturalRotationUnfoldProgressProvider().ifPresent(o -> o.init());
        // No init method needed, just needs to be gotten so that it's created.
        getMediaMuteAwaitConnectionCli();
        getNearbyMediaDevicesManager();
        getUnfoldLatencyTracker().init();
        getConnectingDisplayViewModel().init();
        getFoldStateLoggingProvider().ifPresent(FoldStateLoggingProvider::init);
        getFoldStateLogger().ifPresent(FoldStateLogger::init);
        getUnfoldTransitionProgressProvider().ifPresent((progressProvider) ->
                getUnfoldTransitionProgressForwarder().ifPresent((forwarder) ->
                        progressProvider.addCallback(forwarder)
                ));
        getUnfoldTransitionProgressProvider()
                .ifPresent(
                        (progressProvider) ->
                                getUnfoldTransitionProgressForwarder()
                                        .ifPresent(progressProvider::addCallback));
    }

    /**
@@ -168,12 +169,6 @@ public interface SysUIComponent {
    @SysUISingleton
    ContextComponentHelper getContextComponentHelper();

    /**
     * Creates a UnfoldLatencyTracker.
     */
    @SysUISingleton
    UnfoldLatencyTracker getUnfoldLatencyTracker();

    /**
     * Creates a UnfoldTransitionProgressProvider.
     */
@@ -219,11 +214,6 @@ public interface SysUIComponent {
     */
    Optional<SysUIUnfoldComponent> getSysUIUnfoldComponent();

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

    /** */
    MediaMuteAwaitConnectionCli getMediaMuteAwaitConnectionCli();

+17 −10
Original line number Diff line number Diff line
@@ -20,11 +20,12 @@ import com.android.keyguard.KeyguardUnfoldTransition
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.shade.NotificationPanelUnfoldAnimationController
import com.android.systemui.statusbar.phone.StatusBarMoveFromCenterAnimationController
import com.android.systemui.unfold.util.UnfoldKeyguardVisibilityManager
import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider
import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider
import com.android.systemui.unfold.util.UnfoldKeyguardVisibilityManager
import com.android.systemui.util.kotlin.getOrNull
import dagger.BindsInstance
import dagger.Lazy
import dagger.Module
import dagger.Provides
import dagger.Subcomponent
@@ -56,7 +57,9 @@ class SysUIUnfoldModule {
    fun provideSysUIUnfoldComponent(
            provider: Optional<UnfoldTransitionProgressProvider>,
            rotationProvider: Optional<NaturalRotationUnfoldProgressProvider>,
        @Named(UNFOLD_STATUS_BAR) scopedProvider: Optional<ScopedUnfoldTransitionProgressProvider>,
            @Named(UNFOLD_STATUS_BAR) scopedProvider:
            Optional<ScopedUnfoldTransitionProgressProvider>,
            unfoldLatencyTracker: Lazy<UnfoldLatencyTracker>,
            factory: SysUIUnfoldComponent.Factory
    ): Optional<SysUIUnfoldComponent> {
        val p1 = provider.getOrNull()
@@ -65,7 +68,7 @@ class SysUIUnfoldModule {
        return if (p1 == null || p2 == null || p3 == null) {
            Optional.empty()
        } else {
            Optional.of(factory.create(p1, p2, p3))
            Optional.of(factory.create(p1, p2, p3, unfoldLatencyTracker.get()))
        }
    }
}
@@ -73,13 +76,13 @@ class SysUIUnfoldModule {
@SysUIUnfoldScope
@Subcomponent
interface SysUIUnfoldComponent {

    @Subcomponent.Factory
    interface Factory {
        fun create(
                @BindsInstance p1: UnfoldTransitionProgressProvider,
                @BindsInstance p2: NaturalRotationUnfoldProgressProvider,
            @BindsInstance p3: ScopedUnfoldTransitionProgressProvider
                @BindsInstance p3: ScopedUnfoldTransitionProgressProvider,
                @BindsInstance p4: UnfoldLatencyTracker,
        ): SysUIUnfoldComponent
    }

@@ -98,4 +101,8 @@ interface SysUIUnfoldComponent {
    fun getUnfoldLightRevealOverlayAnimation(): UnfoldLightRevealOverlayAnimation

    fun getUnfoldKeyguardVisibilityManager(): UnfoldKeyguardVisibilityManager

    fun getUnfoldLatencyTracker(): UnfoldLatencyTracker

    fun getNaturalRotationUnfoldProgressProvider(): NaturalRotationUnfoldProgressProvider
}