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

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


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


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


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


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


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


    @Test
    @Test
    public void onBindSlice_readsMedia() {
    public void onBindSlice_readsMedia_withoutBypass() {
        MediaMetadata metadata = mock(MediaMetadata.class);
        MediaMetadata metadata = mock(MediaMetadata.class);
        when(metadata.getText(any())).thenReturn("metadata");
        when(metadata.getText(any())).thenReturn("metadata");
        mProvider.onDozingChanged(true);
        mProvider.onDozingChanged(true);
@@ -113,6 +117,18 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
        verify(mNotificationMediaManager).getMediaIcon();
        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
    @Test
    public void cleansDateFormat() {
    public void cleansDateFormat() {
        mProvider.mKeyguardUpdateMonitorCallback.onTimeZoneChanged(null);
        mProvider.mKeyguardUpdateMonitorCallback.onTimeZoneChanged(null);