Merge "Move music icon to secondary row" into qt-dev
am: 83ee7d1fa7
Change-Id: Ice0397829a3e49ff104c09b88625172cfde2a05e
This commit is contained in:
@@ -25,9 +25,7 @@ import android.content.ContentResolver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.graphics.Rect;
|
|
||||||
import android.graphics.Typeface;
|
import android.graphics.Typeface;
|
||||||
import android.graphics.drawable.Drawable;
|
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.icu.text.DateFormat;
|
import android.icu.text.DateFormat;
|
||||||
import android.icu.text.DisplayContext;
|
import android.icu.text.DisplayContext;
|
||||||
@@ -37,13 +35,8 @@ import android.os.Handler;
|
|||||||
import android.os.Trace;
|
import android.os.Trace;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.service.notification.ZenModeConfig;
|
import android.service.notification.ZenModeConfig;
|
||||||
import android.text.SpannableStringBuilder;
|
|
||||||
import android.text.Spanned;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.style.DynamicDrawableSpan;
|
|
||||||
import android.text.style.ImageSpan;
|
|
||||||
import android.text.style.StyleSpan;
|
import android.text.style.StyleSpan;
|
||||||
import android.util.MathUtils;
|
|
||||||
|
|
||||||
import androidx.core.graphics.drawable.IconCompat;
|
import androidx.core.graphics.drawable.IconCompat;
|
||||||
import androidx.slice.Slice;
|
import androidx.slice.Slice;
|
||||||
@@ -205,9 +198,9 @@ public class KeyguardSliceProvider extends SliceProvider implements
|
|||||||
addMediaLocked(builder);
|
addMediaLocked(builder);
|
||||||
} else {
|
} else {
|
||||||
builder.addRow(new RowBuilder(mDateUri).setTitle(mLastText));
|
builder.addRow(new RowBuilder(mDateUri).setTitle(mLastText));
|
||||||
addNextAlarmLocked(builder);
|
|
||||||
addZenModeLocked(builder);
|
|
||||||
}
|
}
|
||||||
|
addNextAlarmLocked(builder);
|
||||||
|
addZenModeLocked(builder);
|
||||||
addPrimaryActionLocked(builder);
|
addPrimaryActionLocked(builder);
|
||||||
slice = builder.build();
|
slice = builder.build();
|
||||||
}
|
}
|
||||||
@@ -221,32 +214,25 @@ public class KeyguardSliceProvider extends SliceProvider implements
|
|||||||
|
|
||||||
protected void addMediaLocked(ListBuilder listBuilder) {
|
protected void addMediaLocked(ListBuilder listBuilder) {
|
||||||
if (mMediaMetaData != null) {
|
if (mMediaMetaData != null) {
|
||||||
SpannableStringBuilder builder = new SpannableStringBuilder();
|
|
||||||
|
|
||||||
Icon notificationIcon = mMediaManager == null ? null : mMediaManager.getMediaIcon();
|
|
||||||
if (notificationIcon != null) {
|
|
||||||
Drawable drawable = notificationIcon.loadDrawable(getContext());
|
|
||||||
Rect mediaBounds = new Rect(0 /* left */, 0 /* top */,
|
|
||||||
drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
|
|
||||||
int iconHeaderSize = getContext().getResources()
|
|
||||||
.getDimensionPixelSize(R.dimen.header_icon_size);
|
|
||||||
MathUtils.fitRect(mediaBounds, iconHeaderSize);
|
|
||||||
drawable.setBounds(mediaBounds);
|
|
||||||
builder.append("# ");
|
|
||||||
builder.setSpan(new ImageSpan(drawable, DynamicDrawableSpan.ALIGN_CENTER),
|
|
||||||
0 /* start */, 1 /* end */, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
|
||||||
}
|
|
||||||
|
|
||||||
CharSequence title = mMediaMetaData.getText(MediaMetadata.METADATA_KEY_TITLE);
|
CharSequence title = mMediaMetaData.getText(MediaMetadata.METADATA_KEY_TITLE);
|
||||||
if (TextUtils.isEmpty(title)) {
|
if (TextUtils.isEmpty(title)) {
|
||||||
title = getContext().getResources().getString(R.string.music_controls_no_title);
|
title = getContext().getResources().getString(R.string.music_controls_no_title);
|
||||||
}
|
}
|
||||||
builder.append(title);
|
listBuilder.setHeader(new ListBuilder.HeaderBuilder(mHeaderUri).setTitle(title));
|
||||||
listBuilder.setHeader(new ListBuilder.HeaderBuilder(mHeaderUri).setTitle(builder));
|
|
||||||
|
|
||||||
CharSequence album = mMediaMetaData.getText(MediaMetadata.METADATA_KEY_ARTIST);
|
CharSequence album = mMediaMetaData.getText(MediaMetadata.METADATA_KEY_ARTIST);
|
||||||
if (!TextUtils.isEmpty(album)) {
|
if (!TextUtils.isEmpty(album)) {
|
||||||
listBuilder.addRow(new RowBuilder(mMediaUri).setTitle(album));
|
RowBuilder albumBuilder = new RowBuilder(mMediaUri);
|
||||||
|
albumBuilder.setTitle(album);
|
||||||
|
|
||||||
|
Icon mediaIcon = mMediaManager == null ? null : mMediaManager.getMediaIcon();
|
||||||
|
IconCompat mediaIconCompat = mediaIcon == null ? null
|
||||||
|
: IconCompat.createFromIcon(getContext(), mediaIcon);
|
||||||
|
if (mediaIconCompat != null) {
|
||||||
|
albumBuilder.addEndItem(mediaIconCompat, ListBuilder.ICON_IMAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
listBuilder.addRow(albumBuilder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.never;
|
|||||||
import static org.mockito.Mockito.reset;
|
import static org.mockito.Mockito.reset;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.app.AlarmManager;
|
import android.app.AlarmManager;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
@@ -102,6 +103,7 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
|
|||||||
@Test
|
@Test
|
||||||
public void onBindSlice_readsMedia() {
|
public void onBindSlice_readsMedia() {
|
||||||
MediaMetadata metadata = mock(MediaMetadata.class);
|
MediaMetadata metadata = mock(MediaMetadata.class);
|
||||||
|
when(metadata.getText(any())).thenReturn("metadata");
|
||||||
mProvider.onDozingChanged(true);
|
mProvider.onDozingChanged(true);
|
||||||
mProvider.onMetadataChanged(metadata);
|
mProvider.onMetadataChanged(metadata);
|
||||||
mProvider.onBindSlice(mProvider.getUri());
|
mProvider.onBindSlice(mProvider.getUri());
|
||||||
|
|||||||
Reference in New Issue
Block a user