Loading packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt +57 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color Loading @@ -67,12 +68,15 @@ import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.modifiers.thenIf import com.android.compose.theme.colorAttr import com.android.settingslib.Utils import com.android.systemui.Flags import com.android.systemui.battery.BatteryMeterView import com.android.systemui.battery.BatteryMeterViewController import com.android.systemui.common.ui.compose.windowinsets.CutoutLocation import com.android.systemui.common.ui.compose.windowinsets.LocalDisplayCutout import com.android.systemui.common.ui.compose.windowinsets.LocalScreenCornerRadius import com.android.systemui.compose.modifiers.sysuiResTag import com.android.systemui.kairos.ExperimentalKairosApi import com.android.systemui.kairos.buildSpec import com.android.systemui.privacy.OngoingPrivacyChip import com.android.systemui.res.R import com.android.systemui.scene.shared.model.Scenes Loading @@ -86,8 +90,12 @@ import com.android.systemui.shade.ui.viewmodel.ShadeHeaderViewModel.HeaderChipHi import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.phone.StatusIconContainer import com.android.systemui.statusbar.pipeline.mobile.ui.view.ModernShadeCarrierGroupMobileView import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModelKairosComposeWrapper import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.ShadeCarrierGroupMobileIconViewModel import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.ShadeCarrierGroupMobileIconViewModelKairos import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.composeWrapper import com.android.systemui.statusbar.policy.Clock import com.android.systemui.util.composable.kairos.ActivatedKairosSpec object ShadeHeader { object Elements { Loading Loading @@ -520,8 +528,14 @@ private fun BatteryIcon( ) } @OptIn(ExperimentalKairosApi::class) @Composable private fun ShadeCarrierGroup(viewModel: ShadeHeaderViewModel, modifier: Modifier = Modifier) { if (Flags.statusBarMobileIconKairos()) { ShadeCarrierGroupKairos(viewModel, modifier) return } Row(modifier = modifier, horizontalArrangement = Arrangement.spacedBy(5.dp)) { for (subId in viewModel.mobileSubIds) { AndroidView( Loading @@ -543,6 +557,49 @@ private fun ShadeCarrierGroup(viewModel: ShadeHeaderViewModel, modifier: Modifie } } @ExperimentalKairosApi @Composable private fun ShadeCarrierGroupKairos( viewModel: ShadeHeaderViewModel, modifier: Modifier = Modifier, ) { Row(modifier = modifier) { ActivatedKairosSpec( buildSpec = viewModel.mobileIconsViewModelKairos.get().composeWrapper(), kairosNetwork = viewModel.kairosNetwork, ) { iconsViewModel: MobileIconsViewModelKairosComposeWrapper -> for ((subId, icon) in iconsViewModel.icons) { Spacer(modifier = Modifier.width(5.dp)) val scope = rememberCoroutineScope() AndroidView( factory = { context -> ModernShadeCarrierGroupMobileView.constructAndBind( context = context, logger = iconsViewModel.logger, slot = "mobile_carrier_shade_group", viewModel = buildSpec { ShadeCarrierGroupMobileIconViewModelKairos( icon, icon.iconInteractor, ) }, scope = scope, subscriptionId = subId, location = StatusBarLocation.SHADE_CARRIER_GROUP, kairosNetwork = viewModel.kairosNetwork, ) .first .also { it.setOnClickListener { viewModel.onShadeCarrierGroupClicked() } } } ) } } } } @Composable private fun ContentScope.StatusIcons( viewModel: ShadeHeaderViewModel, Loading packages/SystemUI/multivalentTests/src/com/android/systemui/shade/carrier/ShadeCarrierGroupControllerTest.java +7 −2 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import com.android.keyguard.CarrierTextManager; import com.android.systemui.kairos.KairosNetwork; import com.android.systemui.log.core.FakeLogBuffer; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.statusbar.connectivity.IconState; Loading @@ -55,6 +56,7 @@ import com.android.systemui.statusbar.connectivity.SignalCallback; import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider; import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags; 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.MobileViewLogger; import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModel; import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.ShadeCarrierGroupMobileIconViewModel; Loading @@ -63,6 +65,7 @@ import com.android.systemui.util.kotlin.FlowProviderKt; import com.android.systemui.utils.leaks.LeakCheckedTest; import com.android.systemui.utils.os.FakeHandler; import kotlinx.coroutines.CoroutineScope; import kotlinx.coroutines.flow.MutableStateFlow; import org.junit.Before; Loading Loading @@ -178,8 +181,10 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { mSlotIndexResolver, mMobileUiAdapter, mMobileContextProvider, mStatusBarPipelineFlags ) mStatusBarPipelineFlags, mock(CoroutineScope.class), mock(KairosNetwork.class), () -> mock(MobileUiAdapterKairos.class)) .setShadeCarrierGroup(mShadeCarrierGroup) .build(); Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/ui/IconManagerTest.kt +9 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ * limitations under the License. */ @file:OptIn(ExperimentalKairosApi::class) package com.android.systemui.statusbar.phone.ui import android.app.Flags Loading @@ -28,13 +30,17 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.statusbar.StatusBarIcon import com.android.systemui.SysuiTestCase import com.android.systemui.kairos.ExperimentalKairosApi import com.android.systemui.kairos.KairosNetwork import com.android.systemui.statusbar.StatusBarIconView import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapterKairos import com.android.systemui.statusbar.pipeline.wifi.ui.WifiUiAdapter import com.android.systemui.util.Assert import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.CoroutineScope import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading @@ -58,7 +64,10 @@ class IconManagerTest : SysuiTestCase() { StatusBarLocation.HOME, mock<WifiUiAdapter>(defaultAnswer = RETURNS_DEEP_STUBS), mock<MobileUiAdapter>(defaultAnswer = RETURNS_DEEP_STUBS), { mock<MobileUiAdapterKairos>(defaultAnswer = RETURNS_DEEP_STUBS) }, mock<MobileContextProvider>(defaultAnswer = RETURNS_DEEP_STUBS), mock<KairosNetwork>(defaultAnswer = RETURNS_DEEP_STUBS), mock<CoroutineScope>(defaultAnswer = RETURNS_DEEP_STUBS), ) } Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/ui/StatusBarIconControllerTest.java +25 −5 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import androidx.test.filters.SmallTest; import com.android.internal.statusbar.StatusBarIcon; import com.android.systemui.demomode.DemoModeController; import com.android.systemui.dump.DumpManager; import com.android.systemui.kairos.KairosNetwork; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.StatusBarIconView; Loading @@ -45,12 +46,15 @@ import com.android.systemui.statusbar.phone.StatusBarLocation; import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags; import com.android.systemui.statusbar.pipeline.icons.shared.BindableIconsRegistry; 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.wifi.ui.WifiUiAdapter; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.tuner.TunerService; import com.android.systemui.utils.leaks.LeakCheckedTest; import kotlinx.coroutines.CoroutineScope; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -76,7 +80,9 @@ public class StatusBarIconControllerTest extends LeakCheckedTest { public void testSetCalledOnAdd_IconManager() { LinearLayout layout = new LinearLayout(mContext); TestIconManager manager = new TestIconManager(layout, mMobileUiAdapter, mMobileContextProvider); new TestIconManager(layout, mMobileUiAdapter, mMobileContextProvider, mock(MobileUiAdapterKairos.class), mock( KairosNetwork.class), mock(CoroutineScope.class)); testCallOnAdd_forManager(manager); } Loading @@ -89,7 +95,9 @@ public class StatusBarIconControllerTest extends LeakCheckedTest { mock(WifiUiAdapter.class), mMobileUiAdapter, mMobileContextProvider, mock(DarkIconDispatcher.class)); mock(DarkIconDispatcher.class), mock(MobileUiAdapterKairos.class), mock(KairosNetwork.class), mock(CoroutineScope.class)); testCallOnAdd_forManager(manager); } Loading Loading @@ -139,12 +147,18 @@ public class StatusBarIconControllerTest extends LeakCheckedTest { WifiUiAdapter wifiUiAdapter, MobileUiAdapter mobileUiAdapter, MobileContextProvider contextProvider, DarkIconDispatcher darkIconDispatcher) { DarkIconDispatcher darkIconDispatcher, MobileUiAdapterKairos mobileUiAdapterKairos, KairosNetwork kairosNetwork, CoroutineScope appScope) { super(group, location, wifiUiAdapter, mobileUiAdapter, () -> mobileUiAdapterKairos, contextProvider, kairosNetwork, appScope, darkIconDispatcher); } Loading @@ -167,13 +181,19 @@ public class StatusBarIconControllerTest extends LeakCheckedTest { TestIconManager( ViewGroup group, MobileUiAdapter adapter, MobileContextProvider contextProvider MobileContextProvider contextProvider, MobileUiAdapterKairos adapterKairos, KairosNetwork kairosNetwork, CoroutineScope appScope ) { super(group, StatusBarLocation.HOME, mock(WifiUiAdapter.class), adapter, contextProvider); () -> adapterKairos, contextProvider, kairosNetwork, appScope); } @Override Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt→packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt +0 −0 File moved. View file Loading
packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt +57 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color Loading @@ -67,12 +68,15 @@ import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.modifiers.thenIf import com.android.compose.theme.colorAttr import com.android.settingslib.Utils import com.android.systemui.Flags import com.android.systemui.battery.BatteryMeterView import com.android.systemui.battery.BatteryMeterViewController import com.android.systemui.common.ui.compose.windowinsets.CutoutLocation import com.android.systemui.common.ui.compose.windowinsets.LocalDisplayCutout import com.android.systemui.common.ui.compose.windowinsets.LocalScreenCornerRadius import com.android.systemui.compose.modifiers.sysuiResTag import com.android.systemui.kairos.ExperimentalKairosApi import com.android.systemui.kairos.buildSpec import com.android.systemui.privacy.OngoingPrivacyChip import com.android.systemui.res.R import com.android.systemui.scene.shared.model.Scenes Loading @@ -86,8 +90,12 @@ import com.android.systemui.shade.ui.viewmodel.ShadeHeaderViewModel.HeaderChipHi import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.phone.StatusIconContainer import com.android.systemui.statusbar.pipeline.mobile.ui.view.ModernShadeCarrierGroupMobileView import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModelKairosComposeWrapper import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.ShadeCarrierGroupMobileIconViewModel import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.ShadeCarrierGroupMobileIconViewModelKairos import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.composeWrapper import com.android.systemui.statusbar.policy.Clock import com.android.systemui.util.composable.kairos.ActivatedKairosSpec object ShadeHeader { object Elements { Loading Loading @@ -520,8 +528,14 @@ private fun BatteryIcon( ) } @OptIn(ExperimentalKairosApi::class) @Composable private fun ShadeCarrierGroup(viewModel: ShadeHeaderViewModel, modifier: Modifier = Modifier) { if (Flags.statusBarMobileIconKairos()) { ShadeCarrierGroupKairos(viewModel, modifier) return } Row(modifier = modifier, horizontalArrangement = Arrangement.spacedBy(5.dp)) { for (subId in viewModel.mobileSubIds) { AndroidView( Loading @@ -543,6 +557,49 @@ private fun ShadeCarrierGroup(viewModel: ShadeHeaderViewModel, modifier: Modifie } } @ExperimentalKairosApi @Composable private fun ShadeCarrierGroupKairos( viewModel: ShadeHeaderViewModel, modifier: Modifier = Modifier, ) { Row(modifier = modifier) { ActivatedKairosSpec( buildSpec = viewModel.mobileIconsViewModelKairos.get().composeWrapper(), kairosNetwork = viewModel.kairosNetwork, ) { iconsViewModel: MobileIconsViewModelKairosComposeWrapper -> for ((subId, icon) in iconsViewModel.icons) { Spacer(modifier = Modifier.width(5.dp)) val scope = rememberCoroutineScope() AndroidView( factory = { context -> ModernShadeCarrierGroupMobileView.constructAndBind( context = context, logger = iconsViewModel.logger, slot = "mobile_carrier_shade_group", viewModel = buildSpec { ShadeCarrierGroupMobileIconViewModelKairos( icon, icon.iconInteractor, ) }, scope = scope, subscriptionId = subId, location = StatusBarLocation.SHADE_CARRIER_GROUP, kairosNetwork = viewModel.kairosNetwork, ) .first .also { it.setOnClickListener { viewModel.onShadeCarrierGroupClicked() } } } ) } } } } @Composable private fun ContentScope.StatusIcons( viewModel: ShadeHeaderViewModel, Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/shade/carrier/ShadeCarrierGroupControllerTest.java +7 −2 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import com.android.keyguard.CarrierTextManager; import com.android.systemui.kairos.KairosNetwork; import com.android.systemui.log.core.FakeLogBuffer; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.statusbar.connectivity.IconState; Loading @@ -55,6 +56,7 @@ import com.android.systemui.statusbar.connectivity.SignalCallback; import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider; import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags; 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.MobileViewLogger; import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModel; import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.ShadeCarrierGroupMobileIconViewModel; Loading @@ -63,6 +65,7 @@ import com.android.systemui.util.kotlin.FlowProviderKt; import com.android.systemui.utils.leaks.LeakCheckedTest; import com.android.systemui.utils.os.FakeHandler; import kotlinx.coroutines.CoroutineScope; import kotlinx.coroutines.flow.MutableStateFlow; import org.junit.Before; Loading Loading @@ -178,8 +181,10 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { mSlotIndexResolver, mMobileUiAdapter, mMobileContextProvider, mStatusBarPipelineFlags ) mStatusBarPipelineFlags, mock(CoroutineScope.class), mock(KairosNetwork.class), () -> mock(MobileUiAdapterKairos.class)) .setShadeCarrierGroup(mShadeCarrierGroup) .build(); Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/ui/IconManagerTest.kt +9 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ * limitations under the License. */ @file:OptIn(ExperimentalKairosApi::class) package com.android.systemui.statusbar.phone.ui import android.app.Flags Loading @@ -28,13 +30,17 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.statusbar.StatusBarIcon import com.android.systemui.SysuiTestCase import com.android.systemui.kairos.ExperimentalKairosApi import com.android.systemui.kairos.KairosNetwork import com.android.systemui.statusbar.StatusBarIconView import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapterKairos import com.android.systemui.statusbar.pipeline.wifi.ui.WifiUiAdapter import com.android.systemui.util.Assert import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.CoroutineScope import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading @@ -58,7 +64,10 @@ class IconManagerTest : SysuiTestCase() { StatusBarLocation.HOME, mock<WifiUiAdapter>(defaultAnswer = RETURNS_DEEP_STUBS), mock<MobileUiAdapter>(defaultAnswer = RETURNS_DEEP_STUBS), { mock<MobileUiAdapterKairos>(defaultAnswer = RETURNS_DEEP_STUBS) }, mock<MobileContextProvider>(defaultAnswer = RETURNS_DEEP_STUBS), mock<KairosNetwork>(defaultAnswer = RETURNS_DEEP_STUBS), mock<CoroutineScope>(defaultAnswer = RETURNS_DEEP_STUBS), ) } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/ui/StatusBarIconControllerTest.java +25 −5 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import androidx.test.filters.SmallTest; import com.android.internal.statusbar.StatusBarIcon; import com.android.systemui.demomode.DemoModeController; import com.android.systemui.dump.DumpManager; import com.android.systemui.kairos.KairosNetwork; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.StatusBarIconView; Loading @@ -45,12 +46,15 @@ import com.android.systemui.statusbar.phone.StatusBarLocation; import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags; import com.android.systemui.statusbar.pipeline.icons.shared.BindableIconsRegistry; 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.wifi.ui.WifiUiAdapter; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.tuner.TunerService; import com.android.systemui.utils.leaks.LeakCheckedTest; import kotlinx.coroutines.CoroutineScope; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -76,7 +80,9 @@ public class StatusBarIconControllerTest extends LeakCheckedTest { public void testSetCalledOnAdd_IconManager() { LinearLayout layout = new LinearLayout(mContext); TestIconManager manager = new TestIconManager(layout, mMobileUiAdapter, mMobileContextProvider); new TestIconManager(layout, mMobileUiAdapter, mMobileContextProvider, mock(MobileUiAdapterKairos.class), mock( KairosNetwork.class), mock(CoroutineScope.class)); testCallOnAdd_forManager(manager); } Loading @@ -89,7 +95,9 @@ public class StatusBarIconControllerTest extends LeakCheckedTest { mock(WifiUiAdapter.class), mMobileUiAdapter, mMobileContextProvider, mock(DarkIconDispatcher.class)); mock(DarkIconDispatcher.class), mock(MobileUiAdapterKairos.class), mock(KairosNetwork.class), mock(CoroutineScope.class)); testCallOnAdd_forManager(manager); } Loading Loading @@ -139,12 +147,18 @@ public class StatusBarIconControllerTest extends LeakCheckedTest { WifiUiAdapter wifiUiAdapter, MobileUiAdapter mobileUiAdapter, MobileContextProvider contextProvider, DarkIconDispatcher darkIconDispatcher) { DarkIconDispatcher darkIconDispatcher, MobileUiAdapterKairos mobileUiAdapterKairos, KairosNetwork kairosNetwork, CoroutineScope appScope) { super(group, location, wifiUiAdapter, mobileUiAdapter, () -> mobileUiAdapterKairos, contextProvider, kairosNetwork, appScope, darkIconDispatcher); } Loading @@ -167,13 +181,19 @@ public class StatusBarIconControllerTest extends LeakCheckedTest { TestIconManager( ViewGroup group, MobileUiAdapter adapter, MobileContextProvider contextProvider MobileContextProvider contextProvider, MobileUiAdapterKairos adapterKairos, KairosNetwork kairosNetwork, CoroutineScope appScope ) { super(group, StatusBarLocation.HOME, mock(WifiUiAdapter.class), adapter, contextProvider); () -> adapterKairos, contextProvider, kairosNetwork, appScope); } @Override Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt→packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt +0 −0 File moved. View file