Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c9548248 authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Move music icon to secondary row

Bug: 130223602
Test: visual
Change-Id: I5c2f5acc267f5fa87b1f997afd3c304e5a2bf184
parent 10ae84a9
Loading
Loading
Loading
Loading
+14 −28
Original line number Diff line number Diff line
@@ -25,9 +25,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.icu.text.DateFormat;
import android.icu.text.DisplayContext;
@@ -37,13 +35,8 @@ import android.os.Handler;
import android.os.Trace;
import android.provider.Settings;
import android.service.notification.ZenModeConfig;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.style.DynamicDrawableSpan;
import android.text.style.ImageSpan;
import android.text.style.StyleSpan;
import android.util.MathUtils;

import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
@@ -205,9 +198,9 @@ public class KeyguardSliceProvider extends SliceProvider implements
                addMediaLocked(builder);
            } else {
                builder.addRow(new RowBuilder(mDateUri).setTitle(mLastText));
            }
            addNextAlarmLocked(builder);
            addZenModeLocked(builder);
            }
            addPrimaryActionLocked(builder);
            slice = builder.build();
        }
@@ -221,32 +214,25 @@ public class KeyguardSliceProvider extends SliceProvider implements

    protected void addMediaLocked(ListBuilder listBuilder) {
        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);
            if (TextUtils.isEmpty(title)) {
                title = getContext().getResources().getString(R.string.music_controls_no_title);
            }
            builder.append(title);
            listBuilder.setHeader(new ListBuilder.HeaderBuilder(mHeaderUri).setTitle(builder));
            listBuilder.setHeader(new ListBuilder.HeaderBuilder(mHeaderUri).setTitle(title));

            CharSequence album = mMediaMetaData.getText(MediaMetadata.METADATA_KEY_ARTIST);
            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);
            }
        }
    }
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.app.AlarmManager;
import android.content.ContentResolver;
@@ -102,6 +103,7 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
    @Test
    public void onBindSlice_readsMedia() {
        MediaMetadata metadata = mock(MediaMetadata.class);
        when(metadata.getText(any())).thenReturn("metadata");
        mProvider.onDozingChanged(true);
        mProvider.onMetadataChanged(metadata);
        mProvider.onBindSlice(mProvider.getUri());