+9
−2
Loading
Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more
As part of MediaProvider becoming a Mainline module, some partners need to understand more details about what triggered a Uri change notification. This helps listening apps avoid making expensive and race-condition-prone calls back into MediaProvider; typically when they're only interested in insert and delete operations. This change uses the existing "flags" argument to communicate the reason. This change adds overloads to ContentObserver for listening apps to receive these flags. In addition, we add overloads that deliver a clustered set of multiple Uris together in a single Binder transaction to improve overall efficiency. (This matches well with the existing CR.notifyChange() API that we added earlier this year, since they both work with Iterable<Uri>.) Tests to verify that we only collapse Uris together when all other method arguments are identical. Bug: 147778404, 144464323 Test: atest CtsDatabaseTestCases Test: atest CtsContentTestCases:android.content.cts.ContentResolverTest Test: atest FrameworksServicesTests:com.android.server.content.ObserverNodeTest Test: atest --test-mapping packages/providers/MediaProvider Change-Id: I0bbd8a8b4a898ab6f891d085de0ecb4d68cbe302