Merge "DO NOT MERGE - Fixing capitalized ringtone metadata only" into gingerbread
diff --git a/core/java/com/android/internal/nfc/LlcpServiceSocket.java b/core/java/com/android/internal/nfc/LlcpServiceSocket.java
index 4607527..318982b 100644
--- a/core/java/com/android/internal/nfc/LlcpServiceSocket.java
+++ b/core/java/com/android/internal/nfc/LlcpServiceSocket.java
@@ -78,8 +78,9 @@
 	 * @param handle
 	 *            The handle returned by the NFC service and used to identify
 	 *            the socket in subsequent calls.
+	 * @hide
 	 */
-	LlcpServiceSocket(ILlcpServiceSocket service, ILlcpSocket socketService, int handle) {
+	public LlcpServiceSocket(ILlcpServiceSocket service, ILlcpSocket socketService, int handle) {
 		this.mService = service;
 		this.mHandle = handle;
 		this.mLlcpSocketService = socketService;
diff --git a/core/java/com/android/internal/nfc/LlcpSocket.java b/core/java/com/android/internal/nfc/LlcpSocket.java
index ae74002..b1b1320 100644
--- a/core/java/com/android/internal/nfc/LlcpSocket.java
+++ b/core/java/com/android/internal/nfc/LlcpSocket.java
@@ -78,8 +78,9 @@
 	 * @param handle
 	 *            The handle returned by the NFC service and used to identify
 	 *            the socket in subsequent calls.
+	 * @hide
 	 */
-	LlcpSocket(ILlcpSocket service, int handle) {
+	public LlcpSocket(ILlcpSocket service, int handle) {
 		this.mService = service;
 		this.mHandle = handle;
 	}
diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java
index 8644ceb..10107c6 100644
--- a/services/java/com/android/server/LocationManagerService.java
+++ b/services/java/com/android/server/LocationManagerService.java
@@ -574,15 +574,16 @@
                  || 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");
         }
     }
 
@@ -741,9 +742,9 @@
     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));
             }
         }
 
diff --git a/telephony/java/com/android/internal/telephony/CallManager.java b/telephony/java/com/android/internal/telephony/CallManager.java
index ab7b601..5f9a3e7 100644
--- a/telephony/java/com/android/internal/telephony/CallManager.java
+++ b/telephony/java/com/android/internal/telephony/CallManager.java
@@ -380,7 +380,7 @@
                 break;
             case OFFHOOK:
                 Phone fgPhone = getFgPhone();
-                if (!(fgPhone instanceof SipPhone)) {
+                if (hasActiveFgCall() && !(fgPhone instanceof SipPhone)) {
                     mode = AudioManager.MODE_IN_CALL;
                 }
                 break;