Merge "Merge "Hide UMO on dreams behind a feature flag." into tm-qpr-dev am: 945442723f" into tm-qpr-dev-plus-aosp

This commit is contained in:
Automerger Merge Worker
2022-08-22 14:19:46 +00:00
committed by Android (Google) Code Review
3 changed files with 46 additions and 9 deletions

View File

@@ -179,6 +179,7 @@ public class Flags {
public static final UnreleasedFlag MEDIA_SESSION_ACTIONS = new UnreleasedFlag(901);
public static final ReleasedFlag MEDIA_NEARBY_DEVICES = new ReleasedFlag(903);
public static final ReleasedFlag MEDIA_MUTE_AWAIT = new ReleasedFlag(904);
public static final UnreleasedFlag MEDIA_DREAM_COMPLICATION = new UnreleasedFlag(905);
// 1000 - dock
public static final ReleasedFlag SIMULATE_DOCK_THROUGH_CHARGING =

View File

@@ -16,6 +16,8 @@
package com.android.systemui.media.dream;
import static com.android.systemui.flags.Flags.MEDIA_DREAM_COMPLICATION;
import android.content.Context;
import androidx.annotation.NonNull;
@@ -23,6 +25,7 @@ import androidx.annotation.Nullable;
import com.android.systemui.CoreStartable;
import com.android.systemui.dreams.DreamOverlayStateController;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.media.MediaData;
import com.android.systemui.media.MediaDataManager;
import com.android.systemui.media.SmartspaceMediaData;
@@ -34,7 +37,7 @@ import javax.inject.Inject;
* the media complication as appropriate
*/
public class MediaDreamSentinel extends CoreStartable {
private MediaDataManager.Listener mListener = new MediaDataManager.Listener() {
private final MediaDataManager.Listener mListener = new MediaDataManager.Listener() {
private boolean mAdded;
@Override
public void onSmartspaceMediaDataRemoved(@NonNull String key, boolean immediately) {
@@ -63,6 +66,10 @@ public class MediaDreamSentinel extends CoreStartable {
public void onMediaDataLoaded(@NonNull String key, @Nullable String oldKey,
@NonNull MediaData data, boolean immediately, int receivedSmartspaceCardLatency,
boolean isSsReactivated) {
if (!mFeatureFlags.isEnabled(MEDIA_DREAM_COMPLICATION)) {
return;
}
if (mAdded) {
return;
}
@@ -79,15 +86,18 @@ public class MediaDreamSentinel extends CoreStartable {
private final MediaDataManager mMediaDataManager;
private final DreamOverlayStateController mDreamOverlayStateController;
private final MediaDreamComplication mComplication;
private final FeatureFlags mFeatureFlags;
@Inject
public MediaDreamSentinel(Context context, MediaDataManager mediaDataManager,
DreamOverlayStateController dreamOverlayStateController,
MediaDreamComplication complication) {
MediaDreamComplication complication,
FeatureFlags featureFlags) {
super(context);
mMediaDataManager = mediaDataManager;
mDreamOverlayStateController = dreamOverlayStateController;
mComplication = complication;
mFeatureFlags = featureFlags;
}
@Override

View File

@@ -16,6 +16,8 @@
package com.android.systemui.media.dream;
import static com.android.systemui.flags.Flags.MEDIA_DREAM_COMPLICATION;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.never;
@@ -28,6 +30,7 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.dreams.DreamOverlayStateController;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.media.MediaData;
import com.android.systemui.media.MediaDataManager;
@@ -50,6 +53,9 @@ public class MediaDreamSentinelTest extends SysuiTestCase {
@Mock
MediaDreamComplication mComplication;
@Mock
FeatureFlags mFeatureFlags;
final String mKey = "key";
final String mOldKey = "old_key";
@@ -59,21 +65,18 @@ public class MediaDreamSentinelTest extends SysuiTestCase {
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
when(mFeatureFlags.isEnabled(MEDIA_DREAM_COMPLICATION)).thenReturn(true);
}
@Test
public void testComplicationAddition() {
final MediaDreamSentinel sentinel = new MediaDreamSentinel(mContext, mMediaDataManager,
mDreamOverlayStateController, mComplication);
mDreamOverlayStateController, mComplication, mFeatureFlags);
sentinel.start();
ArgumentCaptor<MediaDataManager.Listener> listenerCaptor =
ArgumentCaptor.forClass(MediaDataManager.Listener.class);
verify(mMediaDataManager).addListener(listenerCaptor.capture());
final MediaDataManager.Listener listener = listenerCaptor.getValue();
final MediaDataManager.Listener listener = captureMediaDataListener();
when(mMediaDataManager.hasActiveMedia()).thenReturn(false);
listener.onMediaDataLoaded(mKey, mOldKey, mData, /* immediately= */ true,
/* receivedSmartspaceCardLatency= */ 0, /* isSsReactived= */ false);
@@ -92,4 +95,27 @@ public class MediaDreamSentinelTest extends SysuiTestCase {
verify(mDreamOverlayStateController).removeComplication(eq(mComplication));
}
@Test
public void testMediaDreamSentinel_mediaComplicationDisabled_doNotAddComplication() {
when(mFeatureFlags.isEnabled(MEDIA_DREAM_COMPLICATION)).thenReturn(false);
final MediaDreamSentinel sentinel = new MediaDreamSentinel(mContext, mMediaDataManager,
mDreamOverlayStateController, mComplication, mFeatureFlags);
sentinel.start();
final MediaDataManager.Listener listener = captureMediaDataListener();
when(mMediaDataManager.hasActiveMedia()).thenReturn(true);
listener.onMediaDataLoaded(mKey, mOldKey, mData, /* immediately= */true,
/* receivedSmartspaceCardLatency= */0, /* isSsReactived= */ false);
verify(mDreamOverlayStateController, never()).addComplication(any());
}
private MediaDataManager.Listener captureMediaDataListener() {
final ArgumentCaptor<MediaDataManager.Listener> listenerCaptor =
ArgumentCaptor.forClass(MediaDataManager.Listener.class);
verify(mMediaDataManager).addListener(listenerCaptor.capture());
return listenerCaptor.getValue();
}
}