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

Commit bfa5b3ec authored by Lucas Dupin's avatar Lucas Dupin Committed by android-build-merger
Browse files

Merge "Do not hide media metadata when bypassing LS" into qt-r1-dev

am: 27c2dc5f

Change-Id: Ib2c703390374a063ed469df9a460eea7c5ca06da
parents 2cf83fe3 27c2dc5f
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.systemui.R;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.statusbar.policy.NextAlarmController;
import com.android.systemui.statusbar.policy.NextAlarmControllerImpl;
import com.android.systemui.statusbar.policy.ZenModeController;
@@ -118,6 +119,7 @@ public class KeyguardSliceProvider extends SliceProvider implements
    private PendingIntent mPendingIntent;
    protected NotificationMediaManager mMediaManager;
    private StatusBarStateController mStatusBarStateController;
    private KeyguardBypassController mKeyguardBypassController;
    private CharSequence mMediaTitle;
    private CharSequence mMediaArtist;
    protected boolean mDozing;
@@ -194,11 +196,13 @@ public class KeyguardSliceProvider extends SliceProvider implements
     */
    public void initDependencies(
            NotificationMediaManager mediaManager,
            StatusBarStateController statusBarStateController) {
            StatusBarStateController statusBarStateController,
            KeyguardBypassController keyguardBypassController) {
        mMediaManager = mediaManager;
        mMediaManager.addCallback(this);
        mStatusBarStateController = statusBarStateController;
        mStatusBarStateController.addCallback(this);
        mKeyguardBypassController = keyguardBypassController;
    }

    @AnyThread
@@ -223,7 +227,9 @@ public class KeyguardSliceProvider extends SliceProvider implements
    }

    protected boolean needsMediaLocked() {
        return !TextUtils.isEmpty(mMediaTitle) && mMediaIsVisible && mDozing;
        boolean isBypass = mKeyguardBypassController != null
                && mKeyguardBypassController.getBypassEnabled();
        return !TextUtils.isEmpty(mMediaTitle) && mMediaIsVisible && (mDozing || isBypass);
    }

    protected void addMediaLocked(ListBuilder listBuilder) {
+2 −1
Original line number Diff line number Diff line
@@ -660,7 +660,8 @@ public class StatusBar extends SystemUI implements DemoMode,
        mActivityIntentHelper = new ActivityIntentHelper(mContext);
        KeyguardSliceProvider sliceProvider = KeyguardSliceProvider.getAttachedInstance();
        if (sliceProvider != null) {
            sliceProvider.initDependencies(mMediaManager, mStatusBarStateController);
            sliceProvider.initDependencies(mMediaManager, mStatusBarStateController,
                    mKeyguardBypassController);
        } else {
            Log.w(TAG, "Cannot init KeyguardSliceProvider dependencies");
        }
+18 −2
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.phone.KeyguardBypassController;

import org.junit.Assert;
import org.junit.Before;
@@ -73,6 +74,8 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
    private NotificationMediaManager mNotificationMediaManager;
    @Mock
    private StatusBarStateController mStatusBarStateController;
    @Mock
    private KeyguardBypassController mKeyguardBypassController;
    private TestableKeyguardSliceProvider mProvider;
    private boolean mIsZenMode;

@@ -82,7 +85,8 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
        mIsZenMode = false;
        mProvider = new TestableKeyguardSliceProvider();
        mProvider.attachInfo(getContext(), null);
        mProvider.initDependencies(mNotificationMediaManager, mStatusBarStateController);
        mProvider.initDependencies(mNotificationMediaManager, mStatusBarStateController,
                mKeyguardBypassController);
        SliceProvider.setSpecs(new HashSet<>(Arrays.asList(SliceSpecs.LIST)));
    }

@@ -102,7 +106,7 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
    }

    @Test
    public void onBindSlice_readsMedia() {
    public void onBindSlice_readsMedia_withoutBypass() {
        MediaMetadata metadata = mock(MediaMetadata.class);
        when(metadata.getText(any())).thenReturn("metadata");
        mProvider.onDozingChanged(true);
@@ -113,6 +117,18 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
        verify(mNotificationMediaManager).getMediaIcon();
    }

    @Test
    public void onBindSlice_readsMedia_withBypass_notDozing() {
        MediaMetadata metadata = mock(MediaMetadata.class);
        when(metadata.getText(any())).thenReturn("metadata");
        when(mKeyguardBypassController.getBypassEnabled()).thenReturn(true);
        mProvider.onMetadataOrStateChanged(metadata, PlaybackState.STATE_PLAYING);
        mProvider.onBindSlice(mProvider.getUri());
        verify(metadata).getText(eq(MediaMetadata.METADATA_KEY_TITLE));
        verify(metadata).getText(eq(MediaMetadata.METADATA_KEY_ARTIST));
        verify(mNotificationMediaManager).getMediaIcon();
    }

    @Test
    public void cleansDateFormat() {
        mProvider.mKeyguardUpdateMonitorCallback.onTimeZoneChanged(null);