Loading packages/SystemUI/shared/src/com/android/systemui/unfold/system/SystemUnfoldSharedModule.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -56,6 +56,6 @@ abstract class SystemUnfoldSharedModule { abstract fun mainHandler(@Main handler: Handler): Handler @Binds @UnfoldBackground @UnfoldSingleThreadBg abstract fun backgroundExecutor(@UiBackground executor: Executor): Executor } packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldSharedComponent.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldSharedModule.kt +50 −41 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) Loading @@ -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 } } packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldTransitionFactory.kt +25 −25 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ fun createUnfoldSharedComponent( sensorManager: SensorManager, mainHandler: Handler, mainExecutor: Executor, backgroundExecutor: Executor, singleThreadBgExecutor: Executor, tracingTagPrefix: String, windowManager: IWindowManager, ): UnfoldSharedComponent = Loading @@ -59,7 +59,7 @@ fun createUnfoldSharedComponent( sensorManager, mainHandler, mainExecutor, backgroundExecutor, singleThreadBgExecutor, tracingTagPrefix, windowManager, ) packages/SystemUI/unfold/src/com/android/systemui/unfold/dagger/UnfoldBackground.kt→packages/SystemUI/unfold/src/com/android/systemui/unfold/dagger/UnfoldSingleThreadBg.kt +2 −3 Original line number Diff line number Diff line Loading @@ -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
packages/SystemUI/shared/src/com/android/systemui/unfold/system/SystemUnfoldSharedModule.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -56,6 +56,6 @@ abstract class SystemUnfoldSharedModule { abstract fun mainHandler(@Main handler: Handler): Handler @Binds @UnfoldBackground @UnfoldSingleThreadBg abstract fun backgroundExecutor(@UiBackground executor: Executor): Executor }
packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldSharedComponent.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading
packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldSharedModule.kt +50 −41 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) Loading @@ -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 } }
packages/SystemUI/unfold/src/com/android/systemui/unfold/UnfoldTransitionFactory.kt +25 −25 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ fun createUnfoldSharedComponent( sensorManager: SensorManager, mainHandler: Handler, mainExecutor: Executor, backgroundExecutor: Executor, singleThreadBgExecutor: Executor, tracingTagPrefix: String, windowManager: IWindowManager, ): UnfoldSharedComponent = Loading @@ -59,7 +59,7 @@ fun createUnfoldSharedComponent( sensorManager, mainHandler, mainExecutor, backgroundExecutor, singleThreadBgExecutor, tracingTagPrefix, windowManager, )
packages/SystemUI/unfold/src/com/android/systemui/unfold/dagger/UnfoldBackground.kt→packages/SystemUI/unfold/src/com/android/systemui/unfold/dagger/UnfoldSingleThreadBg.kt +2 −3 Original line number Diff line number Diff line Loading @@ -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