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

Commit c6217905 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Rename unfold background executor to add single thread assumption" into...

Merge "Rename unfold background executor to add single thread assumption" into tm-qpr-dev am: 60a0560b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20919272



Change-Id: Ie7620b74e5a4ea03dd66ba866b063f2eade8aff1
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents e550138d 60a0560b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dagger.qualifiers.UiBackground
import com.android.systemui.unfold.config.ResourceUnfoldTransitionConfig
import com.android.systemui.unfold.config.UnfoldTransitionConfig
import com.android.systemui.unfold.dagger.UnfoldBackground
import com.android.systemui.unfold.dagger.UnfoldSingleThreadBg
import com.android.systemui.unfold.dagger.UnfoldMain
import com.android.systemui.unfold.updates.FoldProvider
import com.android.systemui.unfold.util.CurrentActivityTypeProvider
@@ -56,6 +56,6 @@ abstract class SystemUnfoldSharedModule {
    abstract fun mainHandler(@Main handler: Handler): Handler

    @Binds
    @UnfoldBackground
    @UnfoldSingleThreadBg
    abstract fun backgroundExecutor(@UiBackground executor: Executor): Executor
}
+2 −2
Original line number Diff line number Diff line
@@ -22,8 +22,8 @@ import android.hardware.SensorManager
import android.os.Handler
import android.view.IWindowManager
import com.android.systemui.unfold.config.UnfoldTransitionConfig
import com.android.systemui.unfold.dagger.UnfoldBackground
import com.android.systemui.unfold.dagger.UnfoldMain
import com.android.systemui.unfold.dagger.UnfoldSingleThreadBg
import com.android.systemui.unfold.updates.FoldProvider
import com.android.systemui.unfold.updates.RotationChangeProvider
import com.android.systemui.unfold.updates.screen.ScreenStatusProvider
@@ -58,7 +58,7 @@ interface UnfoldSharedComponent {
            @BindsInstance sensorManager: SensorManager,
            @BindsInstance @UnfoldMain handler: Handler,
            @BindsInstance @UnfoldMain executor: Executor,
            @BindsInstance @UnfoldBackground backgroundExecutor: Executor,
            @BindsInstance @UnfoldSingleThreadBg singleThreadBgExecutor: Executor,
            @BindsInstance @UnfoldTransitionATracePrefix tracingTagPrefix: String,
            @BindsInstance windowManager: IWindowManager,
            @BindsInstance contentResolver: ContentResolver = context.contentResolver
+50 −41
Original line number Diff line number Diff line
@@ -16,9 +16,7 @@

package com.android.systemui.unfold

import android.hardware.SensorManager
import com.android.systemui.unfold.config.UnfoldTransitionConfig
import com.android.systemui.unfold.dagger.UnfoldBackground
import com.android.systemui.unfold.progress.FixedTimingTransitionProgressProvider
import com.android.systemui.unfold.progress.PhysicsBasedUnfoldTransitionProgressProvider
import com.android.systemui.unfold.updates.DeviceFoldStateProvider
@@ -34,29 +32,58 @@ import com.android.systemui.unfold.util.UnfoldKeyguardVisibilityProvider
import dagger.Module
import dagger.Provides
import java.util.Optional
import java.util.concurrent.Executor
import javax.inject.Provider
import javax.inject.Singleton

@Module
@Module(includes = [UnfoldSharedInternalModule::class])
class UnfoldSharedModule {
    @Provides
    @Singleton
    fun provideFoldStateProvider(
        deviceFoldStateProvider: DeviceFoldStateProvider
    ): FoldStateProvider = deviceFoldStateProvider

    @Provides
    @Singleton
    fun unfoldKeyguardVisibilityProvider(
        impl: UnfoldKeyguardVisibilityManagerImpl
    ): UnfoldKeyguardVisibilityProvider = impl

    @Provides
    @Singleton
    fun unfoldKeyguardVisibilityManager(
        impl: UnfoldKeyguardVisibilityManagerImpl
    ): UnfoldKeyguardVisibilityManager = impl
}

/**
 * Needed as methods inside must be public, but their parameters can be internal (and, a public
 * method can't have internal parameters). Making the module internal and included in a public one
 * fixes the issue.
 */
@Module
internal class UnfoldSharedInternalModule {
    @Provides
    @Singleton
    fun unfoldTransitionProgressProvider(
        config: UnfoldTransitionConfig,
        scaleAwareProviderFactory: ScaleAwareTransitionProgressProvider.Factory,
        tracingListener: ATraceLoggerTransitionProgressListener,
        foldStateProvider: FoldStateProvider
    ): Optional<UnfoldTransitionProgressProvider> =
        physicsBasedUnfoldTransitionProgressProvider:
            Provider<PhysicsBasedUnfoldTransitionProgressProvider>,
        fixedTimingTransitionProgressProvider: Provider<FixedTimingTransitionProgressProvider>,
    ): Optional<UnfoldTransitionProgressProvider> {
        if (!config.isEnabled) {
            Optional.empty()
        } else {
            return Optional.empty()
        }
        val baseProgressProvider =
            if (config.isHingeAngleEnabled) {
                    PhysicsBasedUnfoldTransitionProgressProvider(foldStateProvider)
                physicsBasedUnfoldTransitionProgressProvider.get()
            } else {
                    FixedTimingTransitionProgressProvider(foldStateProvider)
                fixedTimingTransitionProgressProvider.get()
            }
            Optional.of(

        return Optional.of(
            scaleAwareProviderFactory.wrap(baseProgressProvider).apply {
                // Always present callback that logs animation beginning and end.
                addCallback(tracingListener)
@@ -64,33 +91,15 @@ class UnfoldSharedModule {
        )
    }

    @Provides
    @Singleton
    fun provideFoldStateProvider(
        deviceFoldStateProvider: DeviceFoldStateProvider
    ): FoldStateProvider = deviceFoldStateProvider

    @Provides
    fun hingeAngleProvider(
        config: UnfoldTransitionConfig,
        sensorManager: SensorManager,
        @UnfoldBackground executor: Executor
    ): HingeAngleProvider =
        if (config.isHingeAngleEnabled) {
            HingeSensorAngleProvider(sensorManager, executor)
        hingeAngleSensorProvider: Provider<HingeSensorAngleProvider>
    ): HingeAngleProvider {
        return if (config.isHingeAngleEnabled) {
            hingeAngleSensorProvider.get()
        } else {
            EmptyHingeAngleProvider
        }

    @Provides
    @Singleton
    fun unfoldKeyguardVisibilityProvider(
        impl: UnfoldKeyguardVisibilityManagerImpl
    ): UnfoldKeyguardVisibilityProvider = impl

    @Provides
    @Singleton
    fun unfoldKeyguardVisibilityManager(
        impl: UnfoldKeyguardVisibilityManagerImpl
    ): UnfoldKeyguardVisibilityManager = impl
    }
}
+25 −25
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ fun createUnfoldSharedComponent(
        sensorManager: SensorManager,
        mainHandler: Handler,
        mainExecutor: Executor,
    backgroundExecutor: Executor,
        singleThreadBgExecutor: Executor,
        tracingTagPrefix: String,
        windowManager: IWindowManager,
): UnfoldSharedComponent =
@@ -59,7 +59,7 @@ fun createUnfoldSharedComponent(
                        sensorManager,
                        mainHandler,
                        mainExecutor,
            backgroundExecutor,
                        singleThreadBgExecutor,
                        tracingTagPrefix,
                        windowManager,
                )
+2 −3
Original line number Diff line number Diff line
@@ -18,8 +18,7 @@ import javax.inject.Qualifier

/**
 * Alternative to [UiBackground] qualifier annotation in unfold module.
 *
 * It is needed as we can't depend on SystemUI code in this module.
 */
@Qualifier
@Retention(AnnotationRetention.RUNTIME)
annotation class UnfoldBackground
@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class UnfoldSingleThreadBg
Loading