Fix bugs in LocationManagerService and AppOpsPolicy
LocationManagerService was overwriting location source appops tag information whenever a location provider changed state. Since multiple location providers can correspond to the same uid/app id, this could lead to loss of tags. This is fixed by recalculating the set of tag for an entire app id any time a uid changes. AppOpsPolicy had a bug where tag lists coming from different uids under the same appid would inappropriately overwrite each other. This is fixed by modifying the internal/external APIs to work in terms of appid rather than uid, so that it is someone else's responsibility to ensure the result is valid for the app id as a whole. Also fixes a bug where LMS assumes tag listeners are added prior to any providers. If listeners are added after some providers they will miss updates. Fixed by always updating the listener on registration. Bug: 190073375 Test: manual Change-Id: Ib52d752d857b6ac3b6683186a8d1bbcb814fb798
Loading
Please register or sign in to comment