Loading packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt +12 −6 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.graphics.drawable.LayerDrawable import android.os.Trace import android.service.controls.Control import android.service.controls.ControlsProviderService import android.service.controls.flags.Flags.homePanelDream import android.util.Log import android.view.ContextThemeWrapper import android.view.Gravity Loading Loading @@ -471,12 +472,17 @@ class ControlsUiControllerImpl @Inject constructor ( val pendingIntent = PendingIntent.getActivityAsUser( context, 0, Intent() .setComponent(componentName) .putExtra( Intent().apply { component = componentName putExtra( ControlsProviderService.EXTRA_LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS, setting ), ) if (homePanelDream()) { putExtra(ControlsProviderService.EXTRA_CONTROLS_SURFACE, ControlsProviderService.CONTROLS_SURFACE_ACTIVITY_PANEL) } }, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT, null, userTracker.userHandle Loading packages/SystemUI/tests/src/com/android/systemui/controls/ui/ControlsUiControllerImplTest.kt +49 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.pm.ServiceInfo import android.graphics.drawable.Drawable import android.os.UserHandle import android.service.controls.ControlsProviderService import android.service.controls.flags.Flags.FLAG_HOME_PANEL_DREAM import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.util.AttributeSet Loading @@ -33,7 +34,6 @@ import android.view.View import android.view.ViewGroup import android.widget.FrameLayout import androidx.test.filters.SmallTest import com.android.systemui.res.R import com.android.systemui.SysuiTestCase import com.android.systemui.controls.ControlsMetricsLogger import com.android.systemui.controls.ControlsServiceInfo Loading @@ -49,6 +49,7 @@ import com.android.systemui.controls.settings.FakeControlsSettingsRepository import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FeatureFlags import com.android.systemui.plugins.ActivityStarter import com.android.systemui.res.R import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.util.FakeSystemUIDialogController Loading Loading @@ -271,6 +272,45 @@ class ControlsUiControllerImplTest : SysuiTestCase() { @Test fun testPanelControllerStartActivityWithCorrectArguments() { mSetFlagsRule.disableFlags(FLAG_HOME_PANEL_DREAM) mockLayoutInflater() val packageName = "pkg" `when`(authorizedPanelsRepository.getAuthorizedPanels()).thenReturn(setOf(packageName)) controlsSettingsRepository.setAllowActionOnTrivialControlsInLockscreen(true) val panel = SelectedItem.PanelItem("App name", ComponentName(packageName, "cls")) val serviceInfo = setUpPanel(panel) underTest.show(parent, {}, context) val captor = argumentCaptor<ControlsListingController.ControlsListingCallback>() verify(controlsListingController).addCallback(capture(captor)) captor.value.onServicesUpdated(listOf(serviceInfo)) FakeExecutor.exhaustExecutors(uiExecutor, bgExecutor) val pendingIntent = verifyPanelCreatedAndStartTaskView() with(pendingIntent) { assertThat(isActivity).isTrue() assertThat(intent.component).isEqualTo(serviceInfo.panelActivity) assertThat( intent.getBooleanExtra( ControlsProviderService.EXTRA_LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS, false ) ) .isTrue() // We should not include controls surface extra if the home panel dream flag is off. assertThat(intent.getIntExtra(ControlsProviderService.EXTRA_CONTROLS_SURFACE, -10)) .isEqualTo(-10) } } @Test fun testPanelControllerStartActivityWithHomePanelDreamEnabled() { mSetFlagsRule.enableFlags(FLAG_HOME_PANEL_DREAM) mockLayoutInflater() val packageName = "pkg" `when`(authorizedPanelsRepository.getAuthorizedPanels()).thenReturn(setOf(packageName)) Loading Loading @@ -300,6 +340,9 @@ class ControlsUiControllerImplTest : SysuiTestCase() { ) ) .isTrue() // We should not include controls surface extra if the home panel dream flag is off. assertThat(intent.getIntExtra(ControlsProviderService.EXTRA_CONTROLS_SURFACE, -10)) .isEqualTo(ControlsProviderService.CONTROLS_SURFACE_ACTIVITY_PANEL) } } Loading Loading @@ -365,8 +408,11 @@ class ControlsUiControllerImplTest : SysuiTestCase() { val selectedItems = listOf( SelectedItem.StructureItem( StructureInfo(checkNotNull(ComponentName.unflattenFromString("pkg/.cls1")), "a", ArrayList()) StructureInfo( checkNotNull(ComponentName.unflattenFromString("pkg/.cls1")), "a", ArrayList() ) ), ) preferredPanelRepository.setSelectedComponent( Loading Loading
packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt +12 −6 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.graphics.drawable.LayerDrawable import android.os.Trace import android.service.controls.Control import android.service.controls.ControlsProviderService import android.service.controls.flags.Flags.homePanelDream import android.util.Log import android.view.ContextThemeWrapper import android.view.Gravity Loading Loading @@ -471,12 +472,17 @@ class ControlsUiControllerImpl @Inject constructor ( val pendingIntent = PendingIntent.getActivityAsUser( context, 0, Intent() .setComponent(componentName) .putExtra( Intent().apply { component = componentName putExtra( ControlsProviderService.EXTRA_LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS, setting ), ) if (homePanelDream()) { putExtra(ControlsProviderService.EXTRA_CONTROLS_SURFACE, ControlsProviderService.CONTROLS_SURFACE_ACTIVITY_PANEL) } }, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT, null, userTracker.userHandle Loading
packages/SystemUI/tests/src/com/android/systemui/controls/ui/ControlsUiControllerImplTest.kt +49 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.pm.ServiceInfo import android.graphics.drawable.Drawable import android.os.UserHandle import android.service.controls.ControlsProviderService import android.service.controls.flags.Flags.FLAG_HOME_PANEL_DREAM import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.util.AttributeSet Loading @@ -33,7 +34,6 @@ import android.view.View import android.view.ViewGroup import android.widget.FrameLayout import androidx.test.filters.SmallTest import com.android.systemui.res.R import com.android.systemui.SysuiTestCase import com.android.systemui.controls.ControlsMetricsLogger import com.android.systemui.controls.ControlsServiceInfo Loading @@ -49,6 +49,7 @@ import com.android.systemui.controls.settings.FakeControlsSettingsRepository import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FeatureFlags import com.android.systemui.plugins.ActivityStarter import com.android.systemui.res.R import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.util.FakeSystemUIDialogController Loading Loading @@ -271,6 +272,45 @@ class ControlsUiControllerImplTest : SysuiTestCase() { @Test fun testPanelControllerStartActivityWithCorrectArguments() { mSetFlagsRule.disableFlags(FLAG_HOME_PANEL_DREAM) mockLayoutInflater() val packageName = "pkg" `when`(authorizedPanelsRepository.getAuthorizedPanels()).thenReturn(setOf(packageName)) controlsSettingsRepository.setAllowActionOnTrivialControlsInLockscreen(true) val panel = SelectedItem.PanelItem("App name", ComponentName(packageName, "cls")) val serviceInfo = setUpPanel(panel) underTest.show(parent, {}, context) val captor = argumentCaptor<ControlsListingController.ControlsListingCallback>() verify(controlsListingController).addCallback(capture(captor)) captor.value.onServicesUpdated(listOf(serviceInfo)) FakeExecutor.exhaustExecutors(uiExecutor, bgExecutor) val pendingIntent = verifyPanelCreatedAndStartTaskView() with(pendingIntent) { assertThat(isActivity).isTrue() assertThat(intent.component).isEqualTo(serviceInfo.panelActivity) assertThat( intent.getBooleanExtra( ControlsProviderService.EXTRA_LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS, false ) ) .isTrue() // We should not include controls surface extra if the home panel dream flag is off. assertThat(intent.getIntExtra(ControlsProviderService.EXTRA_CONTROLS_SURFACE, -10)) .isEqualTo(-10) } } @Test fun testPanelControllerStartActivityWithHomePanelDreamEnabled() { mSetFlagsRule.enableFlags(FLAG_HOME_PANEL_DREAM) mockLayoutInflater() val packageName = "pkg" `when`(authorizedPanelsRepository.getAuthorizedPanels()).thenReturn(setOf(packageName)) Loading Loading @@ -300,6 +340,9 @@ class ControlsUiControllerImplTest : SysuiTestCase() { ) ) .isTrue() // We should not include controls surface extra if the home panel dream flag is off. assertThat(intent.getIntExtra(ControlsProviderService.EXTRA_CONTROLS_SURFACE, -10)) .isEqualTo(ControlsProviderService.CONTROLS_SURFACE_ACTIVITY_PANEL) } } Loading Loading @@ -365,8 +408,11 @@ class ControlsUiControllerImplTest : SysuiTestCase() { val selectedItems = listOf( SelectedItem.StructureItem( StructureInfo(checkNotNull(ComponentName.unflattenFromString("pkg/.cls1")), "a", ArrayList()) StructureInfo( checkNotNull(ComponentName.unflattenFromString("pkg/.cls1")), "a", ArrayList() ) ), ) preferredPanelRepository.setSelectedComponent( Loading