diff options
| -rw-r--r-- | packages/SystemUI/shared/src/com/android/systemui/dagger/qualifiers/UiBackground.java (renamed from packages/SystemUI/src/com/android/systemui/dagger/qualifiers/UiBackground.java) | 0 | ||||
| -rw-r--r-- | packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldSharedComponent.kt | 2 | ||||
| -rw-r--r-- | packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldSharedModule.kt | 7 | ||||
| -rw-r--r-- | packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldTransitionFactory.kt | 2 | ||||
| -rw-r--r-- | packages/SystemUI/shared/src/com/android/systemui/unfold/updates/hinge/HingeSensorAngleProvider.kt | 16 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/dagger/GlobalModule.java | 16 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/util/concurrency/SysUIConcurrencyModule.java | 14 |
7 files changed, 37 insertions, 20 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/qualifiers/UiBackground.java b/packages/SystemUI/shared/src/com/android/systemui/dagger/qualifiers/UiBackground.java index bf2237aa8c11..bf2237aa8c11 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/qualifiers/UiBackground.java +++ b/packages/SystemUI/shared/src/com/android/systemui/dagger/qualifiers/UiBackground.java diff --git a/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldSharedComponent.kt b/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldSharedComponent.kt index ac62cf9f9d5b..15593ea5f0e4 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldSharedComponent.kt +++ b/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldSharedComponent.kt @@ -22,6 +22,7 @@ import android.hardware.SensorManager import android.hardware.devicestate.DeviceStateManager import android.os.Handler import com.android.systemui.dagger.qualifiers.Main +import com.android.systemui.dagger.qualifiers.UiBackground import com.android.systemui.unfold.config.UnfoldTransitionConfig import com.android.systemui.unfold.updates.screen.ScreenStatusProvider import com.android.systemui.unfold.util.UnfoldTransitionATracePrefix @@ -53,6 +54,7 @@ internal interface UnfoldSharedComponent { @BindsInstance sensorManager: SensorManager, @BindsInstance @Main handler: Handler, @BindsInstance @Main executor: Executor, + @BindsInstance @UiBackground backgroundExecutor: Executor, @BindsInstance @UnfoldTransitionATracePrefix tracingTagPrefix: String, @BindsInstance contentResolver: ContentResolver = context.contentResolver ): UnfoldSharedComponent diff --git a/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldSharedModule.kt b/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldSharedModule.kt index 23e4c97fc271..c612995241ef 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldSharedModule.kt +++ b/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldSharedModule.kt @@ -17,6 +17,7 @@ package com.android.systemui.unfold import android.hardware.SensorManager +import com.android.systemui.dagger.qualifiers.UiBackground import com.android.systemui.unfold.config.UnfoldTransitionConfig import com.android.systemui.unfold.progress.FixedTimingTransitionProgressProvider import com.android.systemui.unfold.progress.PhysicsBasedUnfoldTransitionProgressProvider @@ -30,6 +31,7 @@ import com.android.systemui.unfold.util.ScaleAwareTransitionProgressProvider import dagger.Module import dagger.Provides import java.util.Optional +import java.util.concurrent.Executor import javax.inject.Singleton @Module @@ -67,10 +69,11 @@ class UnfoldSharedModule { @Provides fun hingeAngleProvider( config: UnfoldTransitionConfig, - sensorManager: SensorManager + sensorManager: SensorManager, + @UiBackground executor: Executor ): HingeAngleProvider = if (config.isHingeAngleEnabled) { - HingeSensorAngleProvider(sensorManager) + HingeSensorAngleProvider(sensorManager, executor) } else { EmptyHingeAngleProvider } diff --git a/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldTransitionFactory.kt b/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldTransitionFactory.kt index d5d636208747..8e4ff9bc9133 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldTransitionFactory.kt +++ b/packages/SystemUI/shared/src/com/android/systemui/unfold/UnfoldTransitionFactory.kt @@ -42,6 +42,7 @@ fun createUnfoldTransitionProgressProvider( sensorManager: SensorManager, mainHandler: Handler, mainExecutor: Executor, + backgroundExecutor: Executor, tracingTagPrefix: String ): UnfoldTransitionProgressProvider = DaggerUnfoldSharedComponent.factory() @@ -53,6 +54,7 @@ fun createUnfoldTransitionProgressProvider( sensorManager, mainHandler, mainExecutor, + backgroundExecutor, tracingTagPrefix) .unfoldTransitionProvider .orElse(null) diff --git a/packages/SystemUI/shared/src/com/android/systemui/unfold/updates/hinge/HingeSensorAngleProvider.kt b/packages/SystemUI/shared/src/com/android/systemui/unfold/updates/hinge/HingeSensorAngleProvider.kt index a50d852e9b36..c93412b53817 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/unfold/updates/hinge/HingeSensorAngleProvider.kt +++ b/packages/SystemUI/shared/src/com/android/systemui/unfold/updates/hinge/HingeSensorAngleProvider.kt @@ -6,21 +6,29 @@ import android.hardware.SensorEventListener import android.hardware.SensorManager import android.os.Trace import androidx.core.util.Consumer +import java.util.concurrent.Executor -internal class HingeSensorAngleProvider(private val sensorManager: SensorManager) : +internal class HingeSensorAngleProvider( + private val sensorManager: SensorManager, + private val executor: Executor +) : HingeAngleProvider { private val sensorListener = HingeAngleSensorListener() private val listeners: MutableList<Consumer<Float>> = arrayListOf() - override fun start() { + override fun start() = executor.execute { Trace.beginSection("HingeSensorAngleProvider#start") val sensor = sensorManager.getDefaultSensor(Sensor.TYPE_HINGE_ANGLE) - sensorManager.registerListener(sensorListener, sensor, SensorManager.SENSOR_DELAY_FASTEST) + sensorManager.registerListener( + sensorListener, + sensor, + SensorManager.SENSOR_DELAY_FASTEST + ) Trace.endSection() } - override fun stop() { + override fun stop() = executor.execute { sensorManager.unregisterListener(sensorListener) } diff --git a/packages/SystemUI/src/com/android/systemui/dagger/GlobalModule.java b/packages/SystemUI/src/com/android/systemui/dagger/GlobalModule.java index 18f85196aa0b..620feec8fbb8 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/GlobalModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/GlobalModule.java @@ -23,10 +23,14 @@ import android.util.DisplayMetrics; import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.UiEventLoggerImpl; import com.android.systemui.dagger.qualifiers.TestHarness; +import com.android.systemui.dagger.qualifiers.UiBackground; import com.android.systemui.plugins.PluginsModule; import com.android.systemui.unfold.UnfoldTransitionModule; import com.android.systemui.util.concurrency.GlobalConcurrencyModule; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; + import javax.inject.Singleton; import dagger.Module; @@ -75,4 +79,16 @@ public class GlobalModule { static boolean provideIsTestHarness() { return ActivityManager.isRunningInUserTestHarness(); } + + /** + * Provide an Executor specifically for running UI operations on a separate thread. + * + * Keep submitted runnables short and to the point, just as with any other UI code. + */ + @Provides + @Singleton + @UiBackground + public static Executor provideUiBackgroundExecutor() { + return Executors.newSingleThreadExecutor(); + } } diff --git a/packages/SystemUI/src/com/android/systemui/util/concurrency/SysUIConcurrencyModule.java b/packages/SystemUI/src/com/android/systemui/util/concurrency/SysUIConcurrencyModule.java index e8a9bc702352..8f61abcca4dc 100644 --- a/packages/SystemUI/src/com/android/systemui/util/concurrency/SysUIConcurrencyModule.java +++ b/packages/SystemUI/src/com/android/systemui/util/concurrency/SysUIConcurrencyModule.java @@ -25,10 +25,8 @@ import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.LongRunning; import com.android.systemui.dagger.qualifiers.Main; -import com.android.systemui.dagger.qualifiers.UiBackground; import java.util.concurrent.Executor; -import java.util.concurrent.Executors; import dagger.Module; import dagger.Provides; @@ -149,18 +147,6 @@ public abstract class SysUIConcurrencyModule { return new RepeatableExecutorImpl(exec); } - /** - * Provide an Executor specifically for running UI operations on a separate thread. - * - * Keep submitted runnables short and to the point, just as with any other UI code. - */ - @Provides - @SysUISingleton - @UiBackground - public static Executor provideUiBackgroundExecutor() { - return Executors.newSingleThreadExecutor(); - } - /** */ @Provides @Main |