summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIoana Alexandru <aioana@google.com>2023-05-25 11:43:43 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-06-14 00:38:02 +0000
commit84d6438763478f0427d307572acdbdef818d6341 (patch)
tree32845227dcd7c618be936d9650b7bb7bf49ade4d
parente6bdf8e9cb29c287de0f6949e503a31d00df6488 (diff)
downloadbase-84d6438763478f0427d307572acdbdef818d6341.tar.gz
Visit URIs in themed remoteviews icons.
Bug: 281018094 Test: atest RemoteViewsTest NotificationVisitUrisTest (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:634a69b7700017eac534f3f58cdcc2572f3cc659) Merged-In: I2014bf21cf90267f7f1b3f370bf00ab7001b064e Change-Id: I2014bf21cf90267f7f1b3f370bf00ab7001b064e
-rw-r--r--core/java/android/widget/RemoteViews.java10
-rw-r--r--core/tests/coretests/src/android/widget/RemoteViewsTest.java13
2 files changed, 22 insertions, 1 deletions
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index adcb04f946cc..74e863224625 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -1835,7 +1835,7 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public final void visitUris(@NonNull Consumer<Uri> visitor) {
+ public void visitUris(@NonNull Consumer<Uri> visitor) {
switch (this.type) {
case URI:
final Uri uri = (Uri) getParameterValue(null);
@@ -2298,6 +2298,14 @@ public class RemoteViews implements Parcelable, Filter {
public int getActionTag() {
return NIGHT_MODE_REFLECTION_ACTION_TAG;
}
+
+ @Override
+ public void visitUris(@NonNull Consumer<Uri> visitor) {
+ if (this.type == ICON) {
+ visitIconUri((Icon) mDarkValue, visitor);
+ visitIconUri((Icon) mLightValue, visitor);
+ }
+ }
}
/**
diff --git a/core/tests/coretests/src/android/widget/RemoteViewsTest.java b/core/tests/coretests/src/android/widget/RemoteViewsTest.java
index e0cccf2f5200..a8f2b1d22aed 100644
--- a/core/tests/coretests/src/android/widget/RemoteViewsTest.java
+++ b/core/tests/coretests/src/android/widget/RemoteViewsTest.java
@@ -721,6 +721,19 @@ public class RemoteViewsTest {
}
@Test
+ public void visitUris_themedIcons() {
+ RemoteViews views = new RemoteViews(mPackage, R.layout.remote_views_test);
+ final Icon iconLight = Icon.createWithContentUri("content://light/icon");
+ final Icon iconDark = Icon.createWithContentUri("content://dark/icon");
+ views.setIcon(R.id.layout, "setLargeIcon", iconLight, iconDark);
+
+ Consumer<Uri> visitor = (Consumer<Uri>) spy(Consumer.class);
+ views.visitUris(visitor);
+ verify(visitor, times(1)).accept(eq(iconLight.getUri()));
+ verify(visitor, times(1)).accept(eq(iconDark.getUri()));
+ }
+
+ @Test
public void visitUris_nestedViews() {
final RemoteViews outer = new RemoteViews(mPackage, R.layout.remote_views_test);