diff options
4 files changed, 37 insertions, 9 deletions
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt index 02a12e4e0814..c6c6f5773101 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt @@ -407,15 +407,16 @@ private fun ShadeCarrierGroup( AndroidView( factory = { context -> ModernShadeCarrierGroupMobileView.constructAndBind( - context = context, - logger = viewModel.mobileIconsViewModel.logger, - slot = "mobile_carrier_shade_group", - viewModel = - (viewModel.mobileIconsViewModel.viewModelForSub( - subId, - StatusBarLocation.SHADE_CARRIER_GROUP - ) as ShadeCarrierGroupMobileIconViewModel), - ) + context = context, + logger = viewModel.mobileIconsViewModel.logger, + slot = "mobile_carrier_shade_group", + viewModel = + (viewModel.mobileIconsViewModel.viewModelForSub( + subId, + StatusBarLocation.SHADE_CARRIER_GROUP + ) as ShadeCarrierGroupMobileIconViewModel), + ) + .also { it.setOnClickListener { viewModel.onShadeCarrierGroupClicked() } } }, ) } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt index 3faecc38bde9..f89f18ac29f1 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt @@ -2,6 +2,7 @@ package com.android.systemui.shade.ui.viewmodel import android.content.Intent import android.provider.AlarmClock +import android.provider.Settings import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest @@ -63,6 +64,19 @@ class ShadeHeaderViewModelTest : SysuiTestCase() { ) } + @Test + fun onShadeCarrierGroupClicked_launchesNetworkSettings() = + testScope.runTest { + val activityStarter = kosmos.activityStarter + underTest.onShadeCarrierGroupClicked() + + verify(activityStarter) + .postStartActivityDismissingKeyguard( + argThat(IntentMatcherAction(Settings.ACTION_WIRELESS_SETTINGS)), + anyInt(), + ) + } + companion object { private val SUB_1 = SubscriptionModel( diff --git a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt index 72a9c8d01554..6c7606170d9f 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt @@ -22,9 +22,11 @@ import android.content.IntentFilter import android.icu.text.DateFormat import android.icu.text.DisplayContext import android.os.UserHandle +import android.provider.Settings import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.plugins.ActivityStarter import com.android.systemui.privacy.OngoingPrivacyChip import com.android.systemui.privacy.PrivacyItem import com.android.systemui.res.R @@ -54,6 +56,7 @@ class ShadeHeaderViewModel constructor( @Application private val applicationScope: CoroutineScope, context: Context, + private val activityStarter: ActivityStarter, shadeInteractor: ShadeInteractor, mobileIconsInteractor: MobileIconsInteractor, val mobileIconsViewModel: MobileIconsViewModel, @@ -136,6 +139,14 @@ constructor( clockInteractor.launchClockActivity() } + /** Notifies that the shadeCarrierGroup was clicked. */ + fun onShadeCarrierGroupClicked() { + activityStarter.postStartActivityDismissingKeyguard( + Intent(Settings.ACTION_WIRELESS_SETTINGS), + 0 + ) + } + private fun updateDateTexts(invalidateFormats: Boolean) { if (invalidateFormats) { longerDateFormat.value = getFormatFromPattern(longerPattern) diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelKosmos.kt index 9f86cc361af0..8d653f7212aa 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelKosmos.kt @@ -20,6 +20,7 @@ import android.content.applicationContext import com.android.systemui.broadcast.broadcastDispatcher import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.applicationCoroutineScope +import com.android.systemui.plugins.activityStarter import com.android.systemui.shade.domain.interactor.privacyChipInteractor import com.android.systemui.shade.domain.interactor.shadeHeaderClockInteractor import com.android.systemui.shade.domain.interactor.shadeInteractor @@ -31,6 +32,7 @@ val Kosmos.shadeHeaderViewModel: ShadeHeaderViewModel by ShadeHeaderViewModel( applicationScope = applicationCoroutineScope, context = applicationContext, + activityStarter = activityStarter, shadeInteractor = shadeInteractor, mobileIconsInteractor = mobileIconsInteractor, mobileIconsViewModel = mobileIconsViewModel, |