Merge "Do not hide media metadata when bypassing LS" into qt-r1-dev
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user