Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b528b16c authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

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

Merge "Merge "Hide UMO on dreams behind a feature flag." into tm-qpr-dev am: 94544272" into tm-qpr-dev-plus-aosp
parents aac75e2d b347fa06
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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 =
+12 −2
Original line number Diff line number Diff line
@@ -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
+33 −7
Original line number Diff line number Diff line
@@ -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();
    }
}