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