From 7b693cae9f8ca5f6dfdff2bb09ee4a6ad317f8a9 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 5 Aug 2025 17:56:46 +0900 Subject: [PATCH] Don't call ContentObserver#onChange(..., UserHandle) on S. S does not have this method (and correspondingly does not have registerContentObserverAsUser). Use the overload that does not take a UserHandle. Bug: 397521796 Flag: TEST_ONLY Test: test-only change Change-Id: Icc00abb64fdc47128b93636708990f8ab67057f2 --- .../ContentResolverWithFakeSettingsProvider.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/staticlibs/testutils/devicetests/com/android/testutils/ContentResolverWithFakeSettingsProvider.kt b/staticlibs/testutils/devicetests/com/android/testutils/ContentResolverWithFakeSettingsProvider.kt index 4eff04071c..21e239b6f9 100644 --- a/staticlibs/testutils/devicetests/com/android/testutils/ContentResolverWithFakeSettingsProvider.kt +++ b/staticlibs/testutils/devicetests/com/android/testutils/ContentResolverWithFakeSettingsProvider.kt @@ -40,11 +40,13 @@ class ContentResolverWithFakeSettingsProvider : MockContentResolver() { val callbackUser = p.second val user = UserHandle(userId) val currentUser = UserHandle.getUserHandleForUid(Process.myUid()) - if (callbackUser == UserHandle.ALL || - UserHandle.CURRENT.equals(callbackUser) && currentUser.equals(user) || - callbackUser.equals(user) - ) { + if (callbackUser == UserHandle.CURRENT && currentUser == user) { + // Use the overload without the user parameter since it works on S. + // TODO: when S is no longer supported, remove this and always use the branch below. Log.d(TAG, "Notifying change in $uri") + observer.onChange(false, Collections.singletonList(uri), 0) + } else if (callbackUser == UserHandle.ALL || callbackUser.equals(user)) { + Log.d(TAG, "Notifying change in $uri on user $user") observer.onChange(false, Collections.singletonList(uri), 0, user) } }))