Merge changes from topic "smartspace-on-dream-overlay" into tm-qpr-dev

* changes:
  Put Smartspace on overlay behind a flag.
  Add flag to hide Smartspace on dream overlay.
This commit is contained in:
Darrell Shi
2023-02-24 15:01:12 +00:00
committed by Android (Google) Code Review
3 changed files with 46 additions and 7 deletions

View File

@@ -28,6 +28,8 @@ import android.widget.FrameLayout;
import com.android.systemui.CoreStartable; import com.android.systemui.CoreStartable;
import com.android.systemui.dreams.DreamOverlayStateController; import com.android.systemui.dreams.DreamOverlayStateController;
import com.android.systemui.dreams.smartspace.DreamSmartspaceController; 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.plugins.BcSmartspaceDataPlugin;
import com.android.systemui.shared.condition.Monitor; import com.android.systemui.shared.condition.Monitor;
import com.android.systemui.util.condition.ConditionalCoreStartable; import com.android.systemui.util.condition.ConditionalCoreStartable;
@@ -68,6 +70,7 @@ public class SmartSpaceComplication implements Complication {
private final DreamSmartspaceController mSmartSpaceController; private final DreamSmartspaceController mSmartSpaceController;
private final DreamOverlayStateController mDreamOverlayStateController; private final DreamOverlayStateController mDreamOverlayStateController;
private final SmartSpaceComplication mComplication; private final SmartSpaceComplication mComplication;
private final FeatureFlags mFeatureFlags;
private final BcSmartspaceDataPlugin.SmartspaceTargetListener mSmartspaceListener = private final BcSmartspaceDataPlugin.SmartspaceTargetListener mSmartspaceListener =
new BcSmartspaceDataPlugin.SmartspaceTargetListener() { new BcSmartspaceDataPlugin.SmartspaceTargetListener() {
@@ -85,15 +88,21 @@ public class SmartSpaceComplication implements Complication {
DreamOverlayStateController dreamOverlayStateController, DreamOverlayStateController dreamOverlayStateController,
SmartSpaceComplication smartSpaceComplication, SmartSpaceComplication smartSpaceComplication,
DreamSmartspaceController smartSpaceController, DreamSmartspaceController smartSpaceController,
@Named(DREAM_PRETEXT_MONITOR) Monitor monitor) { @Named(DREAM_PRETEXT_MONITOR) Monitor monitor,
FeatureFlags featureFlags) {
super(monitor); super(monitor);
mDreamOverlayStateController = dreamOverlayStateController; mDreamOverlayStateController = dreamOverlayStateController;
mComplication = smartSpaceComplication; mComplication = smartSpaceComplication;
mSmartSpaceController = smartSpaceController; mSmartSpaceController = smartSpaceController;
mFeatureFlags = featureFlags;
} }
@Override @Override
public void onStart() { public void onStart() {
if (mFeatureFlags.isEnabled(Flags.HIDE_SMARTSPACE_ON_DREAM_OVERLAY)) {
return;
}
mDreamOverlayStateController.addCallback(new DreamOverlayStateController.Callback() { mDreamOverlayStateController.addCallback(new DreamOverlayStateController.Callback() {
@Override @Override
public void onStateChanged() { public void onStateChanged() {

View File

@@ -231,6 +231,10 @@ object Flags {
val SMARTSPACE_DATE_WEATHER_DECOUPLED = val SMARTSPACE_DATE_WEATHER_DECOUPLED =
sysPropBooleanFlag(403, "persist.sysui.ss.dw_decoupled", default = false) 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 // 500 - quick settings
val PEOPLE_TILE = resourceBooleanFlag(502, R.bool.flag_conversations, "people_tile") val PEOPLE_TILE = resourceBooleanFlag(502, R.bool.flag_conversations, "people_tile")

View File

@@ -33,6 +33,8 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.condition.SelfExecutingMonitor; import com.android.systemui.condition.SelfExecutingMonitor;
import com.android.systemui.dreams.DreamOverlayStateController; import com.android.systemui.dreams.DreamOverlayStateController;
import com.android.systemui.dreams.smartspace.DreamSmartspaceController; 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.plugins.BcSmartspaceDataPlugin;
import com.android.systemui.shared.condition.Condition; import com.android.systemui.shared.condition.Condition;
import com.android.systemui.shared.condition.Monitor; import com.android.systemui.shared.condition.Monitor;
@@ -65,6 +67,9 @@ public class SmartSpaceComplicationTest extends SysuiTestCase {
@Mock @Mock
private View mBcSmartspaceView; private View mBcSmartspaceView;
@Mock
private FeatureFlags mFeatureFlags;
private Monitor mMonitor; private Monitor mMonitor;
private final Set<Condition> mPreconditions = new HashSet<>(); private final Set<Condition> mPreconditions = new HashSet<>();
@@ -73,6 +78,8 @@ public class SmartSpaceComplicationTest extends SysuiTestCase {
public void setup() { public void setup() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mMonitor = SelfExecutingMonitor.createInstance(); 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)); verify(mDreamOverlayStateController, never()).addComplication(eq(mComplication));
} }
private SmartSpaceComplication.Registrant getRegistrant() { @Test
return new SmartSpaceComplication.Registrant( public void testRegistrantStart_featureEnabled_addOverlayStateCallback() {
mDreamOverlayStateController, final SmartSpaceComplication.Registrant registrant = getRegistrant();
mComplication, registrant.start();
mSmartspaceController,
mMonitor); 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 @Test
@@ -188,4 +205,13 @@ public class SmartSpaceComplicationTest extends SysuiTestCase {
when(mSmartspaceController.buildAndConnectView(any())).thenReturn(mBcSmartspaceView); when(mSmartspaceController.buildAndConnectView(any())).thenReturn(mBcSmartspaceView);
assertEquals(viewHolder.getView(), viewHolder.getView()); assertEquals(viewHolder.getView(), viewHolder.getView());
} }
private SmartSpaceComplication.Registrant getRegistrant() {
return new SmartSpaceComplication.Registrant(
mDreamOverlayStateController,
mComplication,
mSmartspaceController,
mMonitor,
mFeatureFlags);
}
} }