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
This commit is contained in:
Darrell Shi
2023-02-22 18:48:38 +00:00
parent 5b30ee3c9c
commit 0a12ebd00b
2 changed files with 42 additions and 7 deletions

View File

@@ -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() {

View File

@@ -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<Condition> 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);
}
}