Merge changes from topic "presubmit-am-fedf8e29d01549d3ba055e82f0c35835" into sc-qpr1-dev am: ba043b9ebd am: 1eb80eb6c5 am: 3d8c8e343f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22895638

Change-Id: Ib40f81fc110e3fdbf701657f2448411c4d4180a5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Ioana Alexandru
2023-05-08 11:45:35 +00:00
committed by Automerger Merge Worker
2 changed files with 70 additions and 0 deletions

View File

@@ -728,6 +728,12 @@ public class RemoteViews implements Parcelable, Filter {
mActions.get(i).visitUris(visitor);
}
}
if (mLandscape != null) {
mLandscape.visitUris(visitor);
}
if (mPortrait != null) {
mPortrait.visitUris(visitor);
}
}
private static void visitIconUri(Icon icon, @NonNull Consumer<Uri> visitor) {

View File

@@ -24,6 +24,10 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import android.app.ActivityOptions;
import android.app.PendingIntent;
@@ -33,6 +37,8 @@ import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Binder;
import android.os.Looper;
@@ -58,6 +64,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.function.Consumer;
/**
* Tests for RemoteViews.
@@ -690,4 +697,61 @@ public class RemoteViewsTest {
return null;
}
}
@Test
public void visitUris() {
RemoteViews views = new RemoteViews(mPackage, R.layout.remote_views_test);
final Uri imageUri = Uri.parse("content://media/image");
final Icon icon1 = Icon.createWithContentUri("content://media/icon1");
final Icon icon2 = Icon.createWithContentUri("content://media/icon2");
final Icon icon3 = Icon.createWithContentUri("content://media/icon3");
final Icon icon4 = Icon.createWithContentUri("content://media/icon4");
views.setImageViewUri(R.id.image, imageUri);
views.setTextViewCompoundDrawables(R.id.text, icon1, icon2, icon3, icon4);
Consumer<Uri> visitor = (Consumer<Uri>) spy(Consumer.class);
views.visitUris(visitor);
verify(visitor, times(1)).accept(eq(imageUri));
verify(visitor, times(1)).accept(eq(icon1.getUri()));
verify(visitor, times(1)).accept(eq(icon2.getUri()));
verify(visitor, times(1)).accept(eq(icon3.getUri()));
verify(visitor, times(1)).accept(eq(icon4.getUri()));
}
@Test
public void visitUris_separateOrientation() {
final RemoteViews landscape = new RemoteViews(mPackage, R.layout.remote_views_test);
final Uri imageUriL = Uri.parse("content://landscape/image");
final Icon icon1L = Icon.createWithContentUri("content://landscape/icon1");
final Icon icon2L = Icon.createWithContentUri("content://landscape/icon2");
final Icon icon3L = Icon.createWithContentUri("content://landscape/icon3");
final Icon icon4L = Icon.createWithContentUri("content://landscape/icon4");
landscape.setImageViewUri(R.id.image, imageUriL);
landscape.setTextViewCompoundDrawables(R.id.text, icon1L, icon2L, icon3L, icon4L);
final RemoteViews portrait = new RemoteViews(mPackage, 33);
final Uri imageUriP = Uri.parse("content://portrait/image");
final Icon icon1P = Icon.createWithContentUri("content://portrait/icon1");
final Icon icon2P = Icon.createWithContentUri("content://portrait/icon2");
final Icon icon3P = Icon.createWithContentUri("content://portrait/icon3");
final Icon icon4P = Icon.createWithContentUri("content://portrait/icon4");
portrait.setImageViewUri(R.id.image, imageUriP);
portrait.setTextViewCompoundDrawables(R.id.text, icon1P, icon2P, icon3P, icon4P);
RemoteViews views = new RemoteViews(landscape, portrait);
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(imageUriP));
verify(visitor, times(1)).accept(eq(icon1P.getUri()));
verify(visitor, times(1)).accept(eq(icon2P.getUri()));
verify(visitor, times(1)).accept(eq(icon3P.getUri()));
verify(visitor, times(1)).accept(eq(icon4P.getUri()));
}
}