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

Commit ed880e69 authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

Merge "Always update view when metadata changes"

parents 65b57ac8 76527eeb
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -419,18 +419,17 @@ public class KeyguardSliceProvider extends SliceProvider implements
        return KeyguardUpdateMonitor.getInstance(getContext());
    }

    /**
     * Called whenever new media metadata is available.
     * @param metadata New metadata.
     */
    @Override
    public void onMetadataChanged(MediaMetadata metadata) {
        final boolean notify;
        synchronized (this) {
            boolean neededMedia = needsMediaLocked();
            mMediaMetaData = metadata;
            notify = neededMedia != needsMediaLocked();
        }
        if (notify) {
        notifyChange();
    }
    }

    protected void notifyChange() {
        mContentResolver.notifyChange(mSliceUri, null /* observer */);
+4 −7
Original line number Diff line number Diff line
@@ -166,25 +166,22 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {

    @Test
    public void onMetadataChanged_updatesSlice() {
        mProvider.onMetadataChanged(mock(MediaMetadata.class));
        mProvider.onDozingChanged(true);
        reset(mContentResolver);
        mProvider.onMetadataChanged(mock(MediaMetadata.class));
        verify(mContentResolver).notifyChange(eq(mProvider.getUri()), eq(null));

        // Hides after waking up
        reset(mContentResolver);
        mProvider.onDozingChanged(false);
        verify(mContentResolver).notifyChange(eq(mProvider.getUri()), eq(null));

        // And won't update slice if device is awake
        reset(mContentResolver);
        mProvider.onMetadataChanged(mock(MediaMetadata.class));
        verify(mContentResolver, never()).notifyChange(eq(mProvider.getUri()), eq(null));
    }

    @Test
    public void onDozingChanged_updatesSliceIfMedia() {
        // Show media when dozing
        mProvider.onMetadataChanged(mock(MediaMetadata.class));
        reset(mContentResolver);
        // Show media when dozing
        mProvider.onDozingChanged(true);
        verify(mContentResolver).notifyChange(eq(mProvider.getUri()), eq(null));