summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author 0 <syeonlee@google.com> 2024-04-08 14:50:17 -0700
committer Shawn Lee <syeonlee@google.com> 2024-04-11 20:47:28 +0000
commit295b52349e87d581c8a9d985d1c4c972fb14780e (patch)
treece8127b36dafbc2bc4edd596fd65b18370da2e58
parentf702583d58543c42da5de46a774fc870935a2ca4 (diff)
[flexiglass] Add onClick handling to ShadeCarrierGroup
Bug: 325530645 Test: verified ShadeCarrierGroup click launches network settings Flag: ACONFIG com.android.systemui.scene_container DEVELOPMENT Change-Id: I14dbccfe7766f6b422d51cd157ed3e6dfdbb01f5
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt19
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt14
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt11
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelKosmos.kt2
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,