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

Commit d4394fc0 authored by Steve Elliott's avatar Steve Elliott Committed by Android (Google) Code Review
Browse files

Merge "[kairos] Activate MobileUiAdapterKairos" into main

parents e661dd1c e33227aa
Loading
Loading
Loading
Loading
+0 −2
Original line number Original line Diff line number Diff line
@@ -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()


+16 −4
Original line number Original line Diff line number Diff line
@@ -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
@@ -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
@@ -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 {
@@ -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 }
            }
            }
        }
        }


+14 −0
Original line number Original line Diff line number Diff line
@@ -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
@@ -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
@@ -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()
    }
}
}