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

Commit ae0d4513 authored by Ioana Alexandru's avatar Ioana Alexandru
Browse files

Check URIs in sized remote views.

Bug: 277741109
Test: atest RemoteViewsTest
Change-Id: Iceb33606da3a49b9638ab21aeae17a168c1b411a
Merged-In: Iceb33606da3a49b9638ab21aeae17a168c1b411a
parent 67cd169d
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -707,6 +707,11 @@ public class RemoteViews implements Parcelable, Filter {
                mActions.get(i).visitUris(visitor);
                mActions.get(i).visitUris(visitor);
            }
            }
        }
        }
        if (mSizedRemoteViews != null) {
            for (int i = 0; i < mSizedRemoteViews.size(); i++) {
                mSizedRemoteViews.get(i).visitUris(visitor);
            }
        }
        if (mLandscape != null) {
        if (mLandscape != null) {
            mLandscape.visitUris(visitor);
            mLandscape.visitUris(visitor);
        }
        }
+41 −0
Original line number Original line Diff line number Diff line
@@ -38,6 +38,7 @@ import android.net.Uri;
import android.os.AsyncTask;
import android.os.AsyncTask;
import android.os.Binder;
import android.os.Binder;
import android.os.Parcel;
import android.os.Parcel;
import android.util.SizeF;
import android.view.View;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup;


@@ -55,6 +56,7 @@ import org.junit.runner.RunWith;


import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Arrays;
import java.util.HashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CountDownLatch;
import java.util.function.Consumer;
import java.util.function.Consumer;


@@ -563,4 +565,43 @@ public class RemoteViewsTest {
        verify(visitor, times(1)).accept(eq(icon3P.getUri()));
        verify(visitor, times(1)).accept(eq(icon3P.getUri()));
        verify(visitor, times(1)).accept(eq(icon4P.getUri()));
        verify(visitor, times(1)).accept(eq(icon4P.getUri()));
    }
    }

    @Test
    public void visitUris_sizedViews() {
        final RemoteViews large = new RemoteViews(mPackage, R.layout.remote_views_test);
        final Uri imageUriL = Uri.parse("content://large/image");
        final Icon icon1L = Icon.createWithContentUri("content://large/icon1");
        final Icon icon2L = Icon.createWithContentUri("content://large/icon2");
        final Icon icon3L = Icon.createWithContentUri("content://large/icon3");
        final Icon icon4L = Icon.createWithContentUri("content://large/icon4");
        large.setImageViewUri(R.id.image, imageUriL);
        large.setTextViewCompoundDrawables(R.id.text, icon1L, icon2L, icon3L, icon4L);

        final RemoteViews small = new RemoteViews(mPackage, 33);
        final Uri imageUriS = Uri.parse("content://small/image");
        final Icon icon1S = Icon.createWithContentUri("content://small/icon1");
        final Icon icon2S = Icon.createWithContentUri("content://small/icon2");
        final Icon icon3S = Icon.createWithContentUri("content://small/icon3");
        final Icon icon4S = Icon.createWithContentUri("content://small/icon4");
        small.setImageViewUri(R.id.image, imageUriS);
        small.setTextViewCompoundDrawables(R.id.text, icon1S, icon2S, icon3S, icon4S);

        HashMap<SizeF, RemoteViews> sizedViews = new HashMap<>();
        sizedViews.put(new SizeF(300, 300), large);
        sizedViews.put(new SizeF(100, 100), small);
        RemoteViews views = new RemoteViews(sizedViews);

        Consumer<Uri> visitor = (Consumer<Uri>) spy(Consumer.class);
        views.visitUris(visitor);
        verify(visitor, times(1)).accept(eq(imageUriL));
        verify(visitor, times(1)).accept(eq(icon1L.getUri()));
        verify(visitor, times(1)).accept(eq(icon2L.getUri()));
        verify(visitor, times(1)).accept(eq(icon3L.getUri()));
        verify(visitor, times(1)).accept(eq(icon4L.getUri()));
        verify(visitor, times(1)).accept(eq(imageUriS));
        verify(visitor, times(1)).accept(eq(icon1S.getUri()));
        verify(visitor, times(1)).accept(eq(icon2S.getUri()));
        verify(visitor, times(1)).accept(eq(icon3S.getUri()));
        verify(visitor, times(1)).accept(eq(icon4S.getUri()));
    }
}
}