Loading packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/NotificationSection.kt +2 −1 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import com.android.systemui.notifications.ui.composable.ConstrainedNotificationS import com.android.systemui.notifications.ui.composable.SnoozeableHeadsUpNotificationSpace import com.android.systemui.res.R import com.android.systemui.shade.LargeScreenHeaderHelper import com.android.systemui.shade.ShadeDisplayAware import com.android.systemui.statusbar.notification.icon.ui.viewbinder.AlwaysOnDisplayNotificationIconViewStore import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerViewBinder import com.android.systemui.statusbar.notification.icon.ui.viewbinder.StatusBarIconViewBindingFailureTracker Loading Loading @@ -84,7 +85,7 @@ constructor( stackScrollLayout: NotificationStackScrollLayout, sharedNotificationContainerBinder: SharedNotificationContainerBinder, private val keyguardRootViewModel: KeyguardRootViewModel, private val configurationState: ConfigurationState, @ShadeDisplayAware private val configurationState: ConfigurationState, private val iconBindingFailureTracker: StatusBarIconViewBindingFailureTracker, private val nicAodViewModel: NotificationIconContainerAlwaysOnDisplayViewModel, private val nicAodIconViewStore: AlwaysOnDisplayNotificationIconViewStore, Loading packages/SystemUI/src/com/android/systemui/common/data/CommonDataLayerModule.kt +0 −5 Original line number Diff line number Diff line Loading @@ -25,11 +25,6 @@ import dagger.Module @Module abstract class CommonDataLayerModule { @Binds abstract fun bindConfigurationRepository( impl: ConfigurationRepositoryImpl ): ConfigurationRepository @Binds abstract fun bindPackageChangeRepository( impl: PackageChangeRepositoryImpl Loading packages/SystemUI/src/com/android/systemui/common/ui/ConfigurationStateModule.kt +2 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.common.ui import android.content.Context import com.android.systemui.common.ui.data.repository.ConfigurationRepositoryModule import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.statusbar.policy.ConfigurationController Loading @@ -28,7 +29,7 @@ import javax.inject.Qualifier /** * Annotates elements that provide information from the global configuration. * * The global configuration is the one associted with the main display. Secondary displays will * The global configuration is the one associated with the main display. Secondary displays will * apply override to the global configuration. Elements annotated with this shouldn't be used for * secondary displays. */ Loading packages/SystemUI/src/com/android/systemui/common/ui/data/repository/ConfigurationRepository.kt +83 −53 Original line number Diff line number Diff line Loading @@ -23,13 +23,17 @@ import android.view.DisplayInfo import androidx.annotation.DimenRes import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.common.ui.GlobalConfig import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.util.wrapper.DisplayUtilsWrapper import dagger.Binds import dagger.Module import javax.inject.Inject import dagger.Provides import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.channels.awaitClose Loading Loading @@ -57,19 +61,17 @@ interface ConfigurationRepository { fun getDimensionPixelSize(id: Int): Int } @SysUISingleton class ConfigurationRepositoryImpl @Inject @AssistedInject constructor( private val configurationController: ConfigurationController, private val context: Context, @Assisted private val configurationController: ConfigurationController, @Assisted private val context: Context, @Application private val scope: CoroutineScope, private val displayUtils: DisplayUtilsWrapper, ) : ConfigurationRepository { private val displayInfo = MutableStateFlow(DisplayInfo()) override val onAnyConfigurationChange: Flow<Unit> = conflatedCallbackFlow { override val onAnyConfigurationChange: Flow<Unit> = conflatedCallbackFlow { val callback = object : ConfigurationController.ConfigurationListener { override fun onUiModeChanged() { Loading @@ -92,8 +94,7 @@ constructor( awaitClose { configurationController.removeCallback(callback) } } override val onConfigurationChange: Flow<Unit> = conflatedCallbackFlow { override val onConfigurationChange: Flow<Unit> = conflatedCallbackFlow { val callback = object : ConfigurationController.ConfigurationListener { override fun onConfigChanged(newConfig: Configuration) { Loading @@ -104,8 +105,7 @@ constructor( awaitClose { configurationController.removeCallback(callback) } } override val configurationValues: Flow<Configuration> = conflatedCallbackFlow { override val configurationValues: Flow<Configuration> = conflatedCallbackFlow { val callback = object : ConfigurationController.ConfigurationListener { override fun onConfigChanged(newConfig: Configuration) { Loading Loading @@ -134,8 +134,7 @@ constructor( maxDisplayMode.physicalWidth, maxDisplayMode.physicalHeight, displayInfo.value.naturalWidth, displayInfo.value.naturalHeight ) displayInfo.value.naturalHeight) return if (scaleFactor == Float.POSITIVE_INFINITY) 1f else scaleFactor } return 1f Loading @@ -144,9 +143,40 @@ constructor( override fun getDimensionPixelSize(@DimenRes id: Int): Int { return context.resources.getDimensionPixelSize(id) } @AssistedFactory interface Factory { fun create( context: Context, configurationController: ConfigurationController ): ConfigurationRepositoryImpl } } @Module interface ConfigurationRepositoryModule { @Binds fun bindImpl(impl: ConfigurationRepositoryImpl): ConfigurationRepository abstract class ConfigurationRepositoryModule { /** * For compatibility reasons. Ideally, only the an annotated [ConfigurationRepository] should be * injected. */ @Binds @Deprecated("Use the ConfigurationRepository annotated with @GlobalConfig instead.") @SysUISingleton abstract fun provideDefaultConfigRepository( @GlobalConfig configurationRepository: ConfigurationRepository ): ConfigurationRepository companion object { @Provides @GlobalConfig @SysUISingleton fun provideGlobalConfigRepository( context: Context, @GlobalConfig configurationController: ConfigurationController, factory: ConfigurationRepositoryImpl.Factory ): ConfigurationRepository { return factory.create(context, configurationController) } } } packages/SystemUI/src/com/android/systemui/common/ui/domain/interactor/ConfigurationInteractor.kt +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import kotlinx.coroutines.flow.mapLatest import kotlinx.coroutines.flow.onStart /** Business logic related to configuration changes. */ // TODO: b/374267505 - Create a @ShadeDisplayWindow annotated version of this. @SysUISingleton class ConfigurationInteractor @Inject constructor(private val repository: ConfigurationRepository) { /** Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/NotificationSection.kt +2 −1 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import com.android.systemui.notifications.ui.composable.ConstrainedNotificationS import com.android.systemui.notifications.ui.composable.SnoozeableHeadsUpNotificationSpace import com.android.systemui.res.R import com.android.systemui.shade.LargeScreenHeaderHelper import com.android.systemui.shade.ShadeDisplayAware import com.android.systemui.statusbar.notification.icon.ui.viewbinder.AlwaysOnDisplayNotificationIconViewStore import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerViewBinder import com.android.systemui.statusbar.notification.icon.ui.viewbinder.StatusBarIconViewBindingFailureTracker Loading Loading @@ -84,7 +85,7 @@ constructor( stackScrollLayout: NotificationStackScrollLayout, sharedNotificationContainerBinder: SharedNotificationContainerBinder, private val keyguardRootViewModel: KeyguardRootViewModel, private val configurationState: ConfigurationState, @ShadeDisplayAware private val configurationState: ConfigurationState, private val iconBindingFailureTracker: StatusBarIconViewBindingFailureTracker, private val nicAodViewModel: NotificationIconContainerAlwaysOnDisplayViewModel, private val nicAodIconViewStore: AlwaysOnDisplayNotificationIconViewStore, Loading
packages/SystemUI/src/com/android/systemui/common/data/CommonDataLayerModule.kt +0 −5 Original line number Diff line number Diff line Loading @@ -25,11 +25,6 @@ import dagger.Module @Module abstract class CommonDataLayerModule { @Binds abstract fun bindConfigurationRepository( impl: ConfigurationRepositoryImpl ): ConfigurationRepository @Binds abstract fun bindPackageChangeRepository( impl: PackageChangeRepositoryImpl Loading
packages/SystemUI/src/com/android/systemui/common/ui/ConfigurationStateModule.kt +2 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.common.ui import android.content.Context import com.android.systemui.common.ui.data.repository.ConfigurationRepositoryModule import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.statusbar.policy.ConfigurationController Loading @@ -28,7 +29,7 @@ import javax.inject.Qualifier /** * Annotates elements that provide information from the global configuration. * * The global configuration is the one associted with the main display. Secondary displays will * The global configuration is the one associated with the main display. Secondary displays will * apply override to the global configuration. Elements annotated with this shouldn't be used for * secondary displays. */ Loading
packages/SystemUI/src/com/android/systemui/common/ui/data/repository/ConfigurationRepository.kt +83 −53 Original line number Diff line number Diff line Loading @@ -23,13 +23,17 @@ import android.view.DisplayInfo import androidx.annotation.DimenRes import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.common.ui.GlobalConfig import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.util.wrapper.DisplayUtilsWrapper import dagger.Binds import dagger.Module import javax.inject.Inject import dagger.Provides import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.channels.awaitClose Loading Loading @@ -57,19 +61,17 @@ interface ConfigurationRepository { fun getDimensionPixelSize(id: Int): Int } @SysUISingleton class ConfigurationRepositoryImpl @Inject @AssistedInject constructor( private val configurationController: ConfigurationController, private val context: Context, @Assisted private val configurationController: ConfigurationController, @Assisted private val context: Context, @Application private val scope: CoroutineScope, private val displayUtils: DisplayUtilsWrapper, ) : ConfigurationRepository { private val displayInfo = MutableStateFlow(DisplayInfo()) override val onAnyConfigurationChange: Flow<Unit> = conflatedCallbackFlow { override val onAnyConfigurationChange: Flow<Unit> = conflatedCallbackFlow { val callback = object : ConfigurationController.ConfigurationListener { override fun onUiModeChanged() { Loading @@ -92,8 +94,7 @@ constructor( awaitClose { configurationController.removeCallback(callback) } } override val onConfigurationChange: Flow<Unit> = conflatedCallbackFlow { override val onConfigurationChange: Flow<Unit> = conflatedCallbackFlow { val callback = object : ConfigurationController.ConfigurationListener { override fun onConfigChanged(newConfig: Configuration) { Loading @@ -104,8 +105,7 @@ constructor( awaitClose { configurationController.removeCallback(callback) } } override val configurationValues: Flow<Configuration> = conflatedCallbackFlow { override val configurationValues: Flow<Configuration> = conflatedCallbackFlow { val callback = object : ConfigurationController.ConfigurationListener { override fun onConfigChanged(newConfig: Configuration) { Loading Loading @@ -134,8 +134,7 @@ constructor( maxDisplayMode.physicalWidth, maxDisplayMode.physicalHeight, displayInfo.value.naturalWidth, displayInfo.value.naturalHeight ) displayInfo.value.naturalHeight) return if (scaleFactor == Float.POSITIVE_INFINITY) 1f else scaleFactor } return 1f Loading @@ -144,9 +143,40 @@ constructor( override fun getDimensionPixelSize(@DimenRes id: Int): Int { return context.resources.getDimensionPixelSize(id) } @AssistedFactory interface Factory { fun create( context: Context, configurationController: ConfigurationController ): ConfigurationRepositoryImpl } } @Module interface ConfigurationRepositoryModule { @Binds fun bindImpl(impl: ConfigurationRepositoryImpl): ConfigurationRepository abstract class ConfigurationRepositoryModule { /** * For compatibility reasons. Ideally, only the an annotated [ConfigurationRepository] should be * injected. */ @Binds @Deprecated("Use the ConfigurationRepository annotated with @GlobalConfig instead.") @SysUISingleton abstract fun provideDefaultConfigRepository( @GlobalConfig configurationRepository: ConfigurationRepository ): ConfigurationRepository companion object { @Provides @GlobalConfig @SysUISingleton fun provideGlobalConfigRepository( context: Context, @GlobalConfig configurationController: ConfigurationController, factory: ConfigurationRepositoryImpl.Factory ): ConfigurationRepository { return factory.create(context, configurationController) } } }
packages/SystemUI/src/com/android/systemui/common/ui/domain/interactor/ConfigurationInteractor.kt +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import kotlinx.coroutines.flow.mapLatest import kotlinx.coroutines.flow.onStart /** Business logic related to configuration changes. */ // TODO: b/374267505 - Create a @ShadeDisplayWindow annotated version of this. @SysUISingleton class ConfigurationInteractor @Inject constructor(private val repository: ConfigurationRepository) { /** Loading