Merge "Remove USE_APP_PANELS flag" into udc-qpr-dev

This commit is contained in:
Anton Potapov
2023-07-31 12:51:18 +00:00
committed by Android (Google) Code Review
6 changed files with 5 additions and 67 deletions

View File

@@ -124,8 +124,7 @@ class ControlsListingControllerImpl @VisibleForTesting constructor(
} }
private fun updateServices(newServices: List<ControlsServiceInfo>) { private fun updateServices(newServices: List<ControlsServiceInfo>) {
if (featureFlags.isEnabled(Flags.USE_APP_PANELS) && if (activityTaskManagerProxy.supportsMultiWindow(context)) {
activityTaskManagerProxy.supportsMultiWindow(context)) {
val allowAllApps = featureFlags.isEnabled(Flags.APP_PANELS_ALL_APPS_ALLOWED) val allowAllApps = featureFlags.isEnabled(Flags.APP_PANELS_ALL_APPS_ALLOWED)
newServices.forEach { newServices.forEach {
it.resolvePanelActivity(allowAllApps) } it.resolvePanelActivity(allowAllApps) }

View File

@@ -34,12 +34,9 @@ import android.view.HapticFeedbackConstants
import com.android.internal.annotations.VisibleForTesting import com.android.internal.annotations.VisibleForTesting
import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.broadcast.BroadcastSender
import com.android.systemui.controls.ControlsMetricsLogger import com.android.systemui.controls.ControlsMetricsLogger
import com.android.systemui.controls.settings.ControlsSettingsDialogManager
import com.android.systemui.controls.settings.ControlsSettingsRepository import com.android.systemui.controls.settings.ControlsSettingsRepository
import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.VibratorHelper import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -60,8 +57,6 @@ class ControlActionCoordinatorImpl @Inject constructor(
private val controlsMetricsLogger: ControlsMetricsLogger, private val controlsMetricsLogger: ControlsMetricsLogger,
private val vibrator: VibratorHelper, private val vibrator: VibratorHelper,
private val controlsSettingsRepository: ControlsSettingsRepository, private val controlsSettingsRepository: ControlsSettingsRepository,
private val controlsSettingsDialogManager: ControlsSettingsDialogManager,
private val featureFlags: FeatureFlags,
) : ControlActionCoordinator { ) : ControlActionCoordinator {
private var dialog: Dialog? = null private var dialog: Dialog? = null
private var pendingAction: Action? = null private var pendingAction: Action? = null
@@ -77,9 +72,6 @@ class ControlActionCoordinatorImpl @Inject constructor(
} }
override fun closeDialogs() { override fun closeDialogs() {
if (!featureFlags.isEnabled(Flags.USE_APP_PANELS)) {
controlsSettingsDialogManager.closeDialog()
}
val isActivityFinishing = val isActivityFinishing =
(activityContext as? Activity)?.let { it.isFinishing || it.isDestroyed } (activityContext as? Activity)?.let { it.isFinishing || it.isDestroyed }
if (isActivityFinishing == true) { if (isActivityFinishing == true) {
@@ -169,7 +161,6 @@ class ControlActionCoordinatorImpl @Inject constructor(
override fun runPendingAction(controlId: String) { override fun runPendingAction(controlId: String) {
if (isLocked) return if (isLocked) return
if (pendingAction?.controlId == controlId) { if (pendingAction?.controlId == controlId) {
showSettingsDialogIfNeeded(pendingAction!!)
pendingAction?.invoke() pendingAction?.invoke()
pendingAction = null pendingAction = null
} }
@@ -208,7 +199,6 @@ class ControlActionCoordinatorImpl @Inject constructor(
true true
}, { pendingAction = null }, true /* afterKeyguardGone */) }, { pendingAction = null }, true /* afterKeyguardGone */)
} else { } else {
showSettingsDialogIfNeeded(action)
action.invoke() action.invoke()
} }
} }
@@ -243,15 +233,6 @@ class ControlActionCoordinatorImpl @Inject constructor(
} }
} }
private fun showSettingsDialogIfNeeded(action: Action) {
if (action.authIsRequired) {
return
}
if (!featureFlags.isEnabled(Flags.USE_APP_PANELS)) {
controlsSettingsDialogManager.maybeShowDialog(activityContext) {}
}
}
@VisibleForTesting @VisibleForTesting
fun createAction( fun createAction(
controlId: String, controlId: String,

View File

@@ -36,7 +36,6 @@ import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.controls.management.ControlsAnimations import com.android.systemui.controls.management.ControlsAnimations
import com.android.systemui.controls.settings.ControlsSettingsDialogManager import com.android.systemui.controls.settings.ControlsSettingsDialogManager
import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.statusbar.policy.KeyguardStateController
import javax.inject.Inject import javax.inject.Inject
@@ -66,9 +65,7 @@ open class ControlsActivity @Inject constructor(
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
lastConfiguration.setTo(resources.configuration) lastConfiguration.setTo(resources.configuration)
if (featureFlags.isEnabled(Flags.USE_APP_PANELS)) {
window.addPrivateFlags(WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY) window.addPrivateFlags(WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY)
}
setContentView(R.layout.controls_fullscreen) setContentView(R.layout.controls_fullscreen)
@@ -77,7 +74,7 @@ open class ControlsActivity @Inject constructor(
requireViewById(R.id.control_detail_root), requireViewById(R.id.control_detail_root),
window, window,
intent, intent,
!featureFlags.isEnabled(Flags.USE_APP_PANELS) false
) )
) )
@@ -114,7 +111,7 @@ open class ControlsActivity @Inject constructor(
parent = requireViewById(R.id.control_detail_root) parent = requireViewById(R.id.control_detail_root)
parent.alpha = 0f parent.alpha = 0f
if (featureFlags.isEnabled(Flags.USE_APP_PANELS) && !keyguardStateController.isUnlocked) { if (!keyguardStateController.isUnlocked) {
controlsSettingsDialogManager.maybeShowDialog(this) { controlsSettingsDialogManager.maybeShowDialog(this) {
uiController.show(parent, { finishOrReturnToDream() }, this) uiController.show(parent, { finishOrReturnToDream() }, this)
} }

View File

@@ -617,8 +617,6 @@ object Flags {
@JvmField val NOTE_TASKS = releasedFlag(1900, "keycode_flag") @JvmField val NOTE_TASKS = releasedFlag(1900, "keycode_flag")
// 2000 - device controls // 2000 - device controls
@Keep @JvmField val USE_APP_PANELS = releasedFlag(2000, "use_app_panels")
@JvmField val APP_PANELS_ALL_APPS_ALLOWED = releasedFlag(2001, "app_panels_all_apps_allowed") @JvmField val APP_PANELS_ALL_APPS_ALLOWED = releasedFlag(2001, "app_panels_all_apps_allowed")
@JvmField @JvmField

View File

@@ -24,7 +24,6 @@ import com.android.systemui.controls.ControlsMetricsLogger
import com.android.systemui.controls.settings.ControlsSettingsDialogManager import com.android.systemui.controls.settings.ControlsSettingsDialogManager
import com.android.systemui.controls.settings.FakeControlsSettingsRepository import com.android.systemui.controls.settings.FakeControlsSettingsRepository
import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.VibratorHelper import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -36,7 +35,6 @@ import org.junit.runner.RunWith
import org.mockito.Answers import org.mockito.Answers
import org.mockito.Mock import org.mockito.Mock
import org.mockito.Mockito import org.mockito.Mockito
import org.mockito.Mockito.`when`
import org.mockito.Mockito.anyBoolean import org.mockito.Mockito.anyBoolean
import org.mockito.Mockito.doNothing import org.mockito.Mockito.doNothing
import org.mockito.Mockito.doReturn import org.mockito.Mockito.doReturn
@@ -44,6 +42,7 @@ import org.mockito.Mockito.never
import org.mockito.Mockito.reset import org.mockito.Mockito.reset
import org.mockito.Mockito.spy import org.mockito.Mockito.spy
import org.mockito.Mockito.verify import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations import org.mockito.MockitoAnnotations
import java.util.Optional import java.util.Optional
@@ -102,14 +101,11 @@ class ControlActionCoordinatorImplTest : SysuiTestCase() {
metricsLogger, metricsLogger,
vibratorHelper, vibratorHelper,
controlsSettingsRepository, controlsSettingsRepository,
controlsSettingsDialogManager,
featureFlags
)) ))
coordinator.activityContext = mContext coordinator.activityContext = mContext
`when`(cvh.cws.ci.controlId).thenReturn(ID) `when`(cvh.cws.ci.controlId).thenReturn(ID)
`when`(cvh.cws.control?.isAuthRequired()).thenReturn(true) `when`(cvh.cws.control?.isAuthRequired()).thenReturn(true)
`when`(featureFlags.isEnabled(Flags.USE_APP_PANELS)).thenReturn(false)
action = spy(coordinator.Action(ID, {}, false, true)) action = spy(coordinator.Action(ID, {}, false, true))
doReturn(action).`when`(coordinator).createAction(any(), any(), anyBoolean(), anyBoolean()) doReturn(action).`when`(coordinator).createAction(any(), any(), anyBoolean(), anyBoolean())
@@ -155,13 +151,11 @@ class ControlActionCoordinatorImplTest : SysuiTestCase() {
coordinator.toggle(cvh, "", true) coordinator.toggle(cvh, "", true)
verify(coordinator).bouncerOrRun(action) verify(coordinator).bouncerOrRun(action)
verify(controlsSettingsDialogManager).maybeShowDialog(any(), any())
verify(action).invoke() verify(action).invoke()
} }
@Test @Test
fun testToggleWhenLockedDoesNotTriggerDialog_featureFlagEnabled() { fun testToggleWhenLockedDoesNotTriggerDialog_featureFlagEnabled() {
`when`(featureFlags.isEnabled(Flags.USE_APP_PANELS)).thenReturn(true)
action = spy(coordinator.Action(ID, {}, false, false)) action = spy(coordinator.Action(ID, {}, false, false))
doReturn(action).`when`(coordinator).createAction(any(), any(), anyBoolean(), anyBoolean()) doReturn(action).`when`(coordinator).createAction(any(), any(), anyBoolean(), anyBoolean())

View File

@@ -37,7 +37,6 @@ import com.android.systemui.controls.ControlsServiceInfo
import com.android.systemui.dump.DumpManager import com.android.systemui.dump.DumpManager
import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags.APP_PANELS_ALL_APPS_ALLOWED import com.android.systemui.flags.Flags.APP_PANELS_ALL_APPS_ALLOWED
import com.android.systemui.flags.Flags.USE_APP_PANELS
import com.android.systemui.settings.UserTracker import com.android.systemui.settings.UserTracker
import com.android.systemui.util.ActivityTaskManagerProxy import com.android.systemui.util.ActivityTaskManagerProxy
import com.android.systemui.util.concurrency.FakeExecutor import com.android.systemui.util.concurrency.FakeExecutor
@@ -124,8 +123,6 @@ class ControlsListingControllerImplTest : SysuiTestCase() {
arrayOf(componentName.packageName) arrayOf(componentName.packageName)
) )
// Return true by default, we'll test the false path
`when`(featureFlags.isEnabled(USE_APP_PANELS)).thenReturn(true)
// Return false by default, we'll test the true path // Return false by default, we'll test the true path
`when`(featureFlags.isEnabled(APP_PANELS_ALL_APPS_ALLOWED)).thenReturn(false) `when`(featureFlags.isEnabled(APP_PANELS_ALL_APPS_ALLOWED)).thenReturn(false)
@@ -444,34 +441,6 @@ class ControlsListingControllerImplTest : SysuiTestCase() {
assertNull(controller.getCurrentServices()[0].panelActivity) assertNull(controller.getCurrentServices()[0].panelActivity)
} }
@Test
fun testActivityDefaultEnabled_flagDisabled_nullPanel() {
`when`(featureFlags.isEnabled(USE_APP_PANELS)).thenReturn(false)
val serviceInfo = ServiceInfo(
componentName,
activityName,
)
`when`(packageManager.getComponentEnabledSetting(eq(activityName)))
.thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT)
setUpQueryResult(listOf(
ActivityInfo(
activityName,
enabled = true,
exported = true,
permission = Manifest.permission.BIND_CONTROLS
)
))
val list = listOf(serviceInfo)
serviceListingCallbackCaptor.value.onServicesReloaded(list)
executor.runAllReady()
assertNull(controller.getCurrentServices()[0].panelActivity)
}
@Test @Test
fun testActivityDifferentPackage_nullPanel() { fun testActivityDifferentPackage_nullPanel() {
val serviceInfo = ServiceInfo( val serviceInfo = ServiceInfo(