summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java20
3 files changed, 28 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
index d4c73668d0ed..0205bbfc6c1b 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
@@ -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) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 2c7d204efc33..7f20d8c40ab8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -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");
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java
index 355e26071b2a..c6923591f54b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java
@@ -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);
@@ -114,6 +118,18 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
}
@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);
TestableLooper.get(this).processAllMessages();