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
This commit is contained in:
Lorenzo Colitti 2025-08-05 17:56:46 +09:00
commit 7b693cae9f

View file

@ -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)
}
}))