diff options
| author | Mike Lockwood <lockwood@android.com> | 2010-10-26 08:38:51 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2010-10-26 08:38:51 -0700 |
| commit | 1ebe049acc50c291729148e66438ba53e7bf951a (patch) | |
| tree | 26703baa5a70df4b56415cb0d477d4dbdc3437b0 | |
| parent | 977d3622516aa052060837085d1b835303be78ed (diff) | |
| parent | 1b571bd3e92a3e75b55ba5ed24e6e393d96ab948 (diff) | |
| download | frameworks_base-1ebe049acc50c291729148e66438ba53e7bf951a.zip frameworks_base-1ebe049acc50c291729148e66438ba53e7bf951a.tar.gz frameworks_base-1ebe049acc50c291729148e66438ba53e7bf951a.tar.bz2 | |
am 1b571bd3: am 1d28a840: Merge "Location Manager: Fix LocationManager.getBestProvider filtering." into gingerbread
| -rw-r--r-- | services/java/com/android/server/LocationManagerService.java | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java index e59cc8c..656ec4d 100644 --- a/services/java/com/android/server/LocationManagerService.java +++ b/services/java/com/android/server/LocationManagerService.java @@ -577,15 +577,16 @@ public class LocationManagerService extends ILocationManager.Stub implements Run || LocationManager.PASSIVE_PROVIDER.equals(provider)) && (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)) { - throw new SecurityException("Requires ACCESS_FINE_LOCATION permission"); + throw new SecurityException("Provider " + provider + + " requires ACCESS_FINE_LOCATION permission"); } if (LocationManager.NETWORK_PROVIDER.equals(provider) && (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) && (mContext.checkCallingOrSelfPermission(ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) { - throw new SecurityException( - "Requires ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permission"); + throw new SecurityException("Provider " + provider + + " requires ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permission"); } } @@ -744,9 +745,9 @@ public class LocationManagerService extends ILocationManager.Stub implements Run private LocationProviderInterface best(List<String> providerNames) { ArrayList<LocationProviderInterface> providers; synchronized (mLock) { - providers = new ArrayList<LocationProviderInterface>(mProviders.size()); - for (int i = mProviders.size() - 1; i >= 0; i--) { - providers.add(mProviders.get(i)); + providers = new ArrayList<LocationProviderInterface>(providerNames.size()); + for (String name : providerNames) { + providers.add(mProvidersByName.get(name)); } } |
