summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-10-26 08:38:51 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-10-26 08:38:51 -0700
commit1ebe049acc50c291729148e66438ba53e7bf951a (patch)
tree26703baa5a70df4b56415cb0d477d4dbdc3437b0
parent977d3622516aa052060837085d1b835303be78ed (diff)
parent1b571bd3e92a3e75b55ba5ed24e6e393d96ab948 (diff)
downloadframeworks_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.java13
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));
}
}