From 5b30ee3c9c453004a41a8d34e943bf62f7e25247 Mon Sep 17 00:00:00 2001 From: Darrell Shi Date: Wed, 22 Feb 2023 18:05:11 +0000 Subject: [PATCH 1/2] Add flag to hide Smartspace on dream overlay. This flag when flipped on hides the Smartspace on dream overlay. Bug: 270223352 Bug: 270169281 Test: manual Change-Id: I44ac8b863c41be0617385ac3026f1ca2ec0b3d58 --- packages/SystemUI/src/com/android/systemui/flags/Flags.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt index d1d296f32626b..1f358ca8878fd 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt @@ -231,6 +231,10 @@ object Flags { val SMARTSPACE_DATE_WEATHER_DECOUPLED = sysPropBooleanFlag(403, "persist.sysui.ss.dw_decoupled", default = false) + // TODO(b/270223352): Tracking Bug + @JvmField + val HIDE_SMARTSPACE_ON_DREAM_OVERLAY = unreleasedFlag(404, "hide_smartspace_on_dream_overlay") + // 500 - quick settings val PEOPLE_TILE = resourceBooleanFlag(502, R.bool.flag_conversations, "people_tile") From 0a12ebd00b5a889f20490866edf537480b845367 Mon Sep 17 00:00:00 2001 From: Darrell Shi Date: Wed, 22 Feb 2023 18:48:38 +0000 Subject: [PATCH 2/2] Put Smartspace on overlay behind a flag. This change checks a flag before registering Smartspace on the dream overlay. Flag: HIDE_SMARTSPACE_ON_DREAM_OVERLAY Bug: 270169281 Bug: 270223352 Test: atest SmartSpaceComplicationTest Test: flipped on the flag and no longer see smartspace on dream Change-Id: Iad8482b9e683a7bc9efdee70c1b559b1937f487f --- .../complication/SmartSpaceComplication.java | 11 +++++- .../SmartSpaceComplicationTest.java | 38 ++++++++++++++++--- 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/dreams/complication/SmartSpaceComplication.java b/packages/SystemUI/src/com/android/systemui/dreams/complication/SmartSpaceComplication.java index e39073bb6711a..ff1f31245570c 100644 --- a/packages/SystemUI/src/com/android/systemui/dreams/complication/SmartSpaceComplication.java +++ b/packages/SystemUI/src/com/android/systemui/dreams/complication/SmartSpaceComplication.java @@ -28,6 +28,8 @@ import android.widget.FrameLayout; import com.android.systemui.CoreStartable; import com.android.systemui.dreams.DreamOverlayStateController; import com.android.systemui.dreams.smartspace.DreamSmartspaceController; +import com.android.systemui.flags.FeatureFlags; +import com.android.systemui.flags.Flags; import com.android.systemui.plugins.BcSmartspaceDataPlugin; import com.android.systemui.shared.condition.Monitor; import com.android.systemui.util.condition.ConditionalCoreStartable; @@ -68,6 +70,7 @@ public class SmartSpaceComplication implements Complication { private final DreamSmartspaceController mSmartSpaceController; private final DreamOverlayStateController mDreamOverlayStateController; private final SmartSpaceComplication mComplication; + private final FeatureFlags mFeatureFlags; private final BcSmartspaceDataPlugin.SmartspaceTargetListener mSmartspaceListener = new BcSmartspaceDataPlugin.SmartspaceTargetListener() { @@ -85,15 +88,21 @@ public class SmartSpaceComplication implements Complication { DreamOverlayStateController dreamOverlayStateController, SmartSpaceComplication smartSpaceComplication, DreamSmartspaceController smartSpaceController, - @Named(DREAM_PRETEXT_MONITOR) Monitor monitor) { + @Named(DREAM_PRETEXT_MONITOR) Monitor monitor, + FeatureFlags featureFlags) { super(monitor); mDreamOverlayStateController = dreamOverlayStateController; mComplication = smartSpaceComplication; mSmartSpaceController = smartSpaceController; + mFeatureFlags = featureFlags; } @Override public void onStart() { + if (mFeatureFlags.isEnabled(Flags.HIDE_SMARTSPACE_ON_DREAM_OVERLAY)) { + return; + } + mDreamOverlayStateController.addCallback(new DreamOverlayStateController.Callback() { @Override public void onStateChanged() { diff --git a/packages/SystemUI/tests/src/com/android/systemui/dreams/complication/SmartSpaceComplicationTest.java b/packages/SystemUI/tests/src/com/android/systemui/dreams/complication/SmartSpaceComplicationTest.java index ef62abfe36de9..175da0b7a5c27 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/dreams/complication/SmartSpaceComplicationTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/dreams/complication/SmartSpaceComplicationTest.java @@ -33,6 +33,8 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.condition.SelfExecutingMonitor; import com.android.systemui.dreams.DreamOverlayStateController; import com.android.systemui.dreams.smartspace.DreamSmartspaceController; +import com.android.systemui.flags.FeatureFlags; +import com.android.systemui.flags.Flags; import com.android.systemui.plugins.BcSmartspaceDataPlugin; import com.android.systemui.shared.condition.Condition; import com.android.systemui.shared.condition.Monitor; @@ -65,6 +67,9 @@ public class SmartSpaceComplicationTest extends SysuiTestCase { @Mock private View mBcSmartspaceView; + @Mock + private FeatureFlags mFeatureFlags; + private Monitor mMonitor; private final Set mPreconditions = new HashSet<>(); @@ -73,6 +78,8 @@ public class SmartSpaceComplicationTest extends SysuiTestCase { public void setup() { MockitoAnnotations.initMocks(this); mMonitor = SelfExecutingMonitor.createInstance(); + + when(mFeatureFlags.isEnabled(Flags.HIDE_SMARTSPACE_ON_DREAM_OVERLAY)).thenReturn(false); } /** @@ -85,12 +92,22 @@ public class SmartSpaceComplicationTest extends SysuiTestCase { verify(mDreamOverlayStateController, never()).addComplication(eq(mComplication)); } - private SmartSpaceComplication.Registrant getRegistrant() { - return new SmartSpaceComplication.Registrant( - mDreamOverlayStateController, - mComplication, - mSmartspaceController, - mMonitor); + @Test + public void testRegistrantStart_featureEnabled_addOverlayStateCallback() { + final SmartSpaceComplication.Registrant registrant = getRegistrant(); + registrant.start(); + + verify(mDreamOverlayStateController).addCallback(any()); + } + + @Test + public void testRegistrantStart_featureDisabled_doesNotAddOverlayStateCallback() { + when(mFeatureFlags.isEnabled(Flags.HIDE_SMARTSPACE_ON_DREAM_OVERLAY)).thenReturn(true); + + final SmartSpaceComplication.Registrant registrant = getRegistrant(); + registrant.start(); + + verify(mDreamOverlayStateController, never()).addCallback(any()); } @Test @@ -188,4 +205,13 @@ public class SmartSpaceComplicationTest extends SysuiTestCase { when(mSmartspaceController.buildAndConnectView(any())).thenReturn(mBcSmartspaceView); assertEquals(viewHolder.getView(), viewHolder.getView()); } + + private SmartSpaceComplication.Registrant getRegistrant() { + return new SmartSpaceComplication.Registrant( + mDreamOverlayStateController, + mComplication, + mSmartspaceController, + mMonitor, + mFeatureFlags); + } }