Use flags to indicate reason for Uri changes.
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
Loading
Please register or sign in to comment