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:
committed by
Android (Google) Code Review
commit
b528b16c73
@@ -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 =
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user