Merge "Do not hide media metadata when bypassing LS" into qt-r1-dev am: 27c2dc5f55

am: 8d33e9b808

Change-Id: I162567276a73f4b52d9390d7ededa7e2c302b1ca
This commit is contained in:
Lucas Dupin
2019-06-03 21:26:09 -07:00
committed by android-build-merger
3 changed files with 28 additions and 5 deletions

View File

@@ -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) {

View File

@@ -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");
}

View File

@@ -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);