Refactor ResourcesLoader APIs
This changes refactors the ResourcesLoader APIs. The main changes are: Rather than pairing a ResourcesLoader with a ResourcesProvider, a ResourcesProvider is paired with an AssetsProvider which is only responsible for overriding the values of file-base resources and assets. An AssetsProvider can be shared between multiple ResourcesProviders. ResourcesLoader now holds a list of ResourcesProviders. ResourcesLoaders are part of ResourcesKeys and requests for resources with the same loaders will use the same underlying ResourcesImpl. This allows the loader specific code in RM to be cleaned up. ResourcesLoaders and Resources objects use callbacks to notify RM of changes to the Resources instance that may require a new ResourcesImpl. When a context is created from another context, the new context will include the loaders of the original context. Change to list of either context's loaders will not change the loaders of the other context, but changes to the providers a loaders uses will update all Resources objects that use that loader. Activity resources will include the loaders of the application context at the time of the Activity's creation. Bug: 147359613 Test: atest ResourceLoaderTests Change-Id: I2957c803d3f0c1280abfd3c723d76b18df2c3789
Loading
Please register or sign in to comment