Merge "Check URIs in sized remote views." into sc-dev am: 8e91851352
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23429137 Change-Id: I949d205dd2c093d9e9b8210b4c14513b77dbdf47 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -707,6 +707,11 @@ public class RemoteViews implements Parcelable, Filter {
|
||||
mActions.get(i).visitUris(visitor);
|
||||
}
|
||||
}
|
||||
if (mSizedRemoteViews != null) {
|
||||
for (int i = 0; i < mSizedRemoteViews.size(); i++) {
|
||||
mSizedRemoteViews.get(i).visitUris(visitor);
|
||||
}
|
||||
}
|
||||
if (mLandscape != null) {
|
||||
mLandscape.visitUris(visitor);
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@ import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Binder;
|
||||
import android.os.Parcel;
|
||||
import android.util.SizeF;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
@@ -55,6 +56,7 @@ import org.junit.runner.RunWith;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@@ -587,4 +589,43 @@ public class RemoteViewsTest {
|
||||
verify(visitor, times(1)).accept(eq(icon3P.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()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user