Merge "Remove USE_APP_PANELS flag" into udc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
40383d7977
@@ -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) }
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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())
|
||||||
|
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user