[Partial Screen Sharing] Migrate task switcher flag to aconfig
In order to launch the feature in V, we will have to use the
new flagging system (aconfig).
Flag: ACONFIG com.android.systemui.pss_task_switcher DISABLED
Test: MediaProjectionTaskSwitcherCoreStartableTest.kt
Test: Manual
Bug: 317208379
Fixes: 288868056
Change-Id: I8860987c5188d34178dc27b476907bd6bbf8a6d4
diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig
index d8d3f87..97ff379 100644
--- a/packages/SystemUI/aconfig/systemui.aconfig
+++ b/packages/SystemUI/aconfig/systemui.aconfig
@@ -175,6 +175,13 @@
}
flag {
+ name: "pss_task_switcher"
+ namespace: "systemui"
+ description: "Enable the task switcher feature for partial screen sharing"
+ bug: "317208379"
+}
+
+flag {
name: "rest_to_unlock"
namespace: "systemui"
description: "Require prolonged touch for fingerprint authentication"
diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt
index 7cb2c6e..7e19d5b 100644
--- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt
+++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt
@@ -601,10 +601,6 @@
@JvmField
val SPLIT_SHADE_SUBPIXEL_OPTIMIZATION = unreleasedFlag("split_shade_subpixel_optimization")
- // TODO(b/288868056): Tracking Bug
- @JvmField
- val PARTIAL_SCREEN_SHARING_TASK_SWITCHER = unreleasedFlag("pss_task_switcher")
-
// TODO(b/278761837): Tracking Bug
@JvmField val USE_NEW_ACTIVITY_STARTER = releasedFlag(name = "use_new_activity_starter")
diff --git a/packages/SystemUI/src/com/android/systemui/mediaprojection/taskswitcher/MediaProjectionTaskSwitcherCoreStartable.kt b/packages/SystemUI/src/com/android/systemui/mediaprojection/taskswitcher/MediaProjectionTaskSwitcherCoreStartable.kt
index 3c50127..2408af1 100644
--- a/packages/SystemUI/src/com/android/systemui/mediaprojection/taskswitcher/MediaProjectionTaskSwitcherCoreStartable.kt
+++ b/packages/SystemUI/src/com/android/systemui/mediaprojection/taskswitcher/MediaProjectionTaskSwitcherCoreStartable.kt
@@ -17,23 +17,22 @@
package com.android.systemui.mediaprojection.taskswitcher
import com.android.systemui.CoreStartable
+import com.android.systemui.Flags.pssTaskSwitcher
import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.flags.FeatureFlags
-import com.android.systemui.flags.Flags
import com.android.systemui.mediaprojection.taskswitcher.ui.TaskSwitcherNotificationCoordinator
+import dagger.Lazy
import javax.inject.Inject
@SysUISingleton
class MediaProjectionTaskSwitcherCoreStartable
@Inject
constructor(
- private val notificationCoordinator: TaskSwitcherNotificationCoordinator,
- private val featureFlags: FeatureFlags,
+ private val notificationCoordinatorLazy: Lazy<TaskSwitcherNotificationCoordinator>,
) : CoreStartable {
override fun start() {
- if (featureFlags.isEnabled(Flags.PARTIAL_SCREEN_SHARING_TASK_SWITCHER)) {
- notificationCoordinator.start()
+ if (pssTaskSwitcher()) {
+ notificationCoordinatorLazy.get().start()
}
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/MediaProjectionTaskSwitcherCoreStartableTest.kt b/packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/MediaProjectionTaskSwitcherCoreStartableTest.kt
index bcbf666..16c92ec 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/MediaProjectionTaskSwitcherCoreStartableTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/MediaProjectionTaskSwitcherCoreStartableTest.kt
@@ -18,38 +18,27 @@
import android.testing.AndroidTestingRunner
import androidx.test.filters.SmallTest
+import com.android.systemui.Flags.FLAG_PSS_TASK_SWITCHER
import com.android.systemui.SysuiTestCase
-import com.android.systemui.flags.FeatureFlags
-import com.android.systemui.flags.Flags
import com.android.systemui.mediaprojection.taskswitcher.ui.TaskSwitcherNotificationCoordinator
-import com.android.systemui.util.mockito.whenever
-import org.junit.Before
+import com.android.systemui.util.mockito.mock
import org.junit.Test
import org.junit.runner.RunWith
-import org.mockito.Mock
import org.mockito.Mockito.verify
import org.mockito.Mockito.verifyZeroInteractions
-import org.mockito.MockitoAnnotations
@RunWith(AndroidTestingRunner::class)
@SmallTest
class MediaProjectionTaskSwitcherCoreStartableTest : SysuiTestCase() {
- @Mock private lateinit var flags: FeatureFlags
- @Mock private lateinit var coordinator: TaskSwitcherNotificationCoordinator
+ private val coordinator = mock<TaskSwitcherNotificationCoordinator>()
- private lateinit var coreStartable: MediaProjectionTaskSwitcherCoreStartable
-
- @Before
- fun setUp() {
- MockitoAnnotations.initMocks(this)
-
- coreStartable = MediaProjectionTaskSwitcherCoreStartable(coordinator, flags)
- }
+ private val coreStartable =
+ MediaProjectionTaskSwitcherCoreStartable(notificationCoordinatorLazy = { coordinator })
@Test
fun start_flagEnabled_startsCoordinator() {
- whenever(flags.isEnabled(Flags.PARTIAL_SCREEN_SHARING_TASK_SWITCHER)).thenReturn(true)
+ mSetFlagsRule.enableFlags(FLAG_PSS_TASK_SWITCHER)
coreStartable.start()
@@ -58,7 +47,7 @@
@Test
fun start_flagDisabled_doesNotStartCoordinator() {
- whenever(flags.isEnabled(Flags.PARTIAL_SCREEN_SHARING_TASK_SWITCHER)).thenReturn(false)
+ mSetFlagsRule.disableFlags(FLAG_PSS_TASK_SWITCHER)
coreStartable.start()