Loading packages/SystemUI/src/com/android/systemui/KairosActivatable.kt +0 −2 Original line number Original line Diff line number Diff line Loading @@ -142,8 +142,6 @@ interface KairosBuilder : KairosActivatable { @OptIn(ExperimentalKairosApi::class) @OptIn(ExperimentalKairosApi::class) private class KairosBuilderImpl @Inject constructor() : KairosBuilder { private class KairosBuilderImpl @Inject constructor() : KairosBuilder { // TODO: atomic? // TODO: are two lists really necessary? private var _builds: MutableList<KairosActivatable>? = mutableListOf() private var _builds: MutableList<KairosActivatable>? = mutableListOf() private var _startables: MutableList<KairosActivatable>? = mutableListOf() private var _startables: MutableList<KairosActivatable>? = mutableListOf() Loading packages/SystemUI/src/com/android/systemui/statusbar/pipeline/dagger/StatusBarPipelineModule.kt +16 −4 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,8 @@ import com.android.systemui.CoreStartable import com.android.systemui.Flags import com.android.systemui.Flags import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.SysUISingleton import com.android.systemui.kairos.ExperimentalKairosApi import com.android.systemui.kairos.ExperimentalKairosApi import com.android.systemui.kairos.KairosNetwork import com.android.systemui.kairos.toColdConflatedFlow import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogBufferFactory import com.android.systemui.log.LogBufferFactory import com.android.systemui.log.table.TableLogBuffer import com.android.systemui.log.table.TableLogBuffer Loading Loading @@ -48,6 +50,7 @@ import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIc import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairosAdapter import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairosAdapter import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairosImpl import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairosImpl import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapterKairos import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModel import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModel import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModelKairos import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModelKairos import com.android.systemui.statusbar.pipeline.mobile.util.MobileMappingsProxy import com.android.systemui.statusbar.pipeline.mobile.util.MobileMappingsProxy Loading Loading @@ -99,6 +102,7 @@ import kotlinx.coroutines.flow.Flow MobileConnectionRepositoryKairosFactoryImpl.Module::class, MobileConnectionRepositoryKairosFactoryImpl.Module::class, MobileConnectionsRepositoryKairosAdapter.Module::class, MobileConnectionsRepositoryKairosAdapter.Module::class, MobileIconsInteractorKairosAdapter.Module::class, MobileIconsInteractorKairosAdapter.Module::class, MobileUiAdapterKairos.Module::class, ] ] ) ) abstract class StatusBarPipelineModule { abstract class StatusBarPipelineModule { Loading Loading @@ -217,11 +221,19 @@ abstract class StatusBarPipelineModule { @SysUISingleton @SysUISingleton @Named(FIRST_MOBILE_SUB_SHOWING_NETWORK_TYPE_ICON) @Named(FIRST_MOBILE_SUB_SHOWING_NETWORK_TYPE_ICON) fun provideFirstMobileSubShowingNetworkTypeIconProvider( fun provideFirstMobileSubShowingNetworkTypeIconProvider( mobileIconsViewModel: MobileIconsViewModel mobileIconsViewModel: Provider<MobileIconsViewModel>, kairosViewModel: Provider<MobileIconsViewModelKairos>, kairosNetwork: KairosNetwork, ): Supplier<Flow<Boolean>> { ): Supplier<Flow<Boolean>> { // TODO: kairos-ify return if (Flags.statusBarMobileIconKairos()) { return Supplier<Flow<Boolean>> { Supplier { mobileIconsViewModel.firstMobileSubShowingNetworkTypeIcon kairosViewModel .get() .firstMobileSubShowingNetworkTypeIcon .toColdConflatedFlow(kairosNetwork) } } else { Supplier { mobileIconsViewModel.get().firstMobileSubShowingNetworkTypeIcon } } } } } Loading packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/MobileUiAdapterKairos.kt +14 −0 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar.pipeline.mobile.ui package com.android.systemui.statusbar.pipeline.mobile.ui import com.android.systemui.Dumpable import com.android.systemui.Dumpable import com.android.systemui.Flags import com.android.systemui.KairosActivatable import com.android.systemui.KairosActivatable import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dump.DumpManager import com.android.systemui.dump.DumpManager Loading @@ -29,8 +30,11 @@ import com.android.systemui.shade.carrier.ShadeCarrierGroupController import com.android.systemui.statusbar.phone.ui.StatusBarIconController import com.android.systemui.statusbar.phone.ui.StatusBarIconController import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairos import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairos import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModelKairos import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModelKairos import dagger.Provides import dagger.multibindings.ElementsIntoSet import java.io.PrintWriter import java.io.PrintWriter import javax.inject.Inject import javax.inject.Inject import javax.inject.Provider /** /** * This class is intended to provide a context to collect on the * This class is intended to provide a context to collect on the Loading Loading @@ -92,4 +96,14 @@ constructor( pw.println("isCollecting=$isCollecting") pw.println("isCollecting=$isCollecting") pw.println("Last values sent to icon controller: $lastValue") pw.println("Last values sent to icon controller: $lastValue") } } @dagger.Module object Module { @Provides @ElementsIntoSet fun kairosActivatable( impl: Provider<MobileUiAdapterKairos> ): Set<@JvmSuppressWildcards KairosActivatable> = if (Flags.statusBarMobileIconKairos()) setOf(impl.get()) else emptySet() } } } Loading
packages/SystemUI/src/com/android/systemui/KairosActivatable.kt +0 −2 Original line number Original line Diff line number Diff line Loading @@ -142,8 +142,6 @@ interface KairosBuilder : KairosActivatable { @OptIn(ExperimentalKairosApi::class) @OptIn(ExperimentalKairosApi::class) private class KairosBuilderImpl @Inject constructor() : KairosBuilder { private class KairosBuilderImpl @Inject constructor() : KairosBuilder { // TODO: atomic? // TODO: are two lists really necessary? private var _builds: MutableList<KairosActivatable>? = mutableListOf() private var _builds: MutableList<KairosActivatable>? = mutableListOf() private var _startables: MutableList<KairosActivatable>? = mutableListOf() private var _startables: MutableList<KairosActivatable>? = mutableListOf() Loading
packages/SystemUI/src/com/android/systemui/statusbar/pipeline/dagger/StatusBarPipelineModule.kt +16 −4 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,8 @@ import com.android.systemui.CoreStartable import com.android.systemui.Flags import com.android.systemui.Flags import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.SysUISingleton import com.android.systemui.kairos.ExperimentalKairosApi import com.android.systemui.kairos.ExperimentalKairosApi import com.android.systemui.kairos.KairosNetwork import com.android.systemui.kairos.toColdConflatedFlow import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogBufferFactory import com.android.systemui.log.LogBufferFactory import com.android.systemui.log.table.TableLogBuffer import com.android.systemui.log.table.TableLogBuffer Loading Loading @@ -48,6 +50,7 @@ import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIc import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairosAdapter import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairosAdapter import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairosImpl import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairosImpl import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapterKairos import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModel import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModel import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModelKairos import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModelKairos import com.android.systemui.statusbar.pipeline.mobile.util.MobileMappingsProxy import com.android.systemui.statusbar.pipeline.mobile.util.MobileMappingsProxy Loading Loading @@ -99,6 +102,7 @@ import kotlinx.coroutines.flow.Flow MobileConnectionRepositoryKairosFactoryImpl.Module::class, MobileConnectionRepositoryKairosFactoryImpl.Module::class, MobileConnectionsRepositoryKairosAdapter.Module::class, MobileConnectionsRepositoryKairosAdapter.Module::class, MobileIconsInteractorKairosAdapter.Module::class, MobileIconsInteractorKairosAdapter.Module::class, MobileUiAdapterKairos.Module::class, ] ] ) ) abstract class StatusBarPipelineModule { abstract class StatusBarPipelineModule { Loading Loading @@ -217,11 +221,19 @@ abstract class StatusBarPipelineModule { @SysUISingleton @SysUISingleton @Named(FIRST_MOBILE_SUB_SHOWING_NETWORK_TYPE_ICON) @Named(FIRST_MOBILE_SUB_SHOWING_NETWORK_TYPE_ICON) fun provideFirstMobileSubShowingNetworkTypeIconProvider( fun provideFirstMobileSubShowingNetworkTypeIconProvider( mobileIconsViewModel: MobileIconsViewModel mobileIconsViewModel: Provider<MobileIconsViewModel>, kairosViewModel: Provider<MobileIconsViewModelKairos>, kairosNetwork: KairosNetwork, ): Supplier<Flow<Boolean>> { ): Supplier<Flow<Boolean>> { // TODO: kairos-ify return if (Flags.statusBarMobileIconKairos()) { return Supplier<Flow<Boolean>> { Supplier { mobileIconsViewModel.firstMobileSubShowingNetworkTypeIcon kairosViewModel .get() .firstMobileSubShowingNetworkTypeIcon .toColdConflatedFlow(kairosNetwork) } } else { Supplier { mobileIconsViewModel.get().firstMobileSubShowingNetworkTypeIcon } } } } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/MobileUiAdapterKairos.kt +14 −0 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar.pipeline.mobile.ui package com.android.systemui.statusbar.pipeline.mobile.ui import com.android.systemui.Dumpable import com.android.systemui.Dumpable import com.android.systemui.Flags import com.android.systemui.KairosActivatable import com.android.systemui.KairosActivatable import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dump.DumpManager import com.android.systemui.dump.DumpManager Loading @@ -29,8 +30,11 @@ import com.android.systemui.shade.carrier.ShadeCarrierGroupController import com.android.systemui.statusbar.phone.ui.StatusBarIconController import com.android.systemui.statusbar.phone.ui.StatusBarIconController import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairos import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorKairos import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModelKairos import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModelKairos import dagger.Provides import dagger.multibindings.ElementsIntoSet import java.io.PrintWriter import java.io.PrintWriter import javax.inject.Inject import javax.inject.Inject import javax.inject.Provider /** /** * This class is intended to provide a context to collect on the * This class is intended to provide a context to collect on the Loading Loading @@ -92,4 +96,14 @@ constructor( pw.println("isCollecting=$isCollecting") pw.println("isCollecting=$isCollecting") pw.println("Last values sent to icon controller: $lastValue") pw.println("Last values sent to icon controller: $lastValue") } } @dagger.Module object Module { @Provides @ElementsIntoSet fun kairosActivatable( impl: Provider<MobileUiAdapterKairos> ): Set<@JvmSuppressWildcards KairosActivatable> = if (Flags.statusBarMobileIconKairos()) setOf(impl.get()) else emptySet() } } }