diff options
| author | 2022-08-22 14:56:00 +0000 | |
|---|---|---|
| committer | 2022-08-22 14:56:00 +0000 | |
| commit | ff869e3f50f1ca7744219260c361aea49e476b7f (patch) | |
| tree | 685a36bf485f25ca18942f12203bb3a88a3d7676 | |
| parent | d493ef11750f903668764f114814324a0e202e6d (diff) | |
| parent | b528b16c73a55342873b216fc5f738be736bb34e (diff) | |
Merge "Merge "Hide UMO on dreams behind a feature flag." into tm-qpr-dev am: 945442723f" into tm-qpr-dev-plus-aosp am: b528b16c73
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19628345
Change-Id: Ia87bf944ab64d333062a085385da3602de4dcfd9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
3 files changed, 46 insertions, 9 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.java b/packages/SystemUI/src/com/android/systemui/flags/Flags.java index 42e6b02ea432..4b409f5255fb 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.java +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.java @@ -182,6 +182,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 = diff --git a/packages/SystemUI/src/com/android/systemui/media/dream/MediaDreamSentinel.java b/packages/SystemUI/src/com/android/systemui/media/dream/MediaDreamSentinel.java index e077fed7805d..c5448713970c 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dream/MediaDreamSentinel.java +++ b/packages/SystemUI/src/com/android/systemui/media/dream/MediaDreamSentinel.java @@ -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 diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/dream/MediaDreamSentinelTest.java b/packages/SystemUI/tests/src/com/android/systemui/media/dream/MediaDreamSentinelTest.java index 247316a32473..c101b9ffd495 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/dream/MediaDreamSentinelTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/media/dream/MediaDreamSentinelTest.java @@ -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(); + } } |