Remove setLocationExtra per API feedback
Bug: 142828735
Test: atest LocationManagerFineTest
Change-Id: I73193dc2484a2b8051c5cff42cd3fcec9a44a015
diff --git a/api/system-current.txt b/api/system-current.txt
index a4e9136..1ecefee 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -4091,7 +4091,6 @@
public class Location implements android.os.Parcelable {
method public boolean isComplete();
method public void makeComplete();
- method public void setExtraLocation(@Nullable String, @Nullable android.location.Location);
method public void setIsFromMockProvider(boolean);
field public static final String EXTRA_NO_GPS_LOCATION = "noGPSLocation";
}
diff --git a/api/test-current.txt b/api/test-current.txt
index 76af403..e07217f 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -1270,7 +1270,6 @@
public class Location implements android.os.Parcelable {
method public void makeComplete();
- method public void setExtraLocation(@Nullable String, @Nullable android.location.Location);
field public static final String EXTRA_NO_GPS_LOCATION = "noGPSLocation";
}
diff --git a/location/java/android/location/Location.java b/location/java/android/location/Location.java
index 7a12cee..eb76c29 100644
--- a/location/java/android/location/Location.java
+++ b/location/java/android/location/Location.java
@@ -16,7 +16,6 @@
package android.location;
-import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage;
@@ -1214,23 +1213,6 @@
}
/**
- * Attaches an extra {@link Location} to this Location. This is useful for location providers
- * to set the {@link #EXTRA_NO_GPS_LOCATION} extra to provide coarse locations for clients.
- *
- * @param key the key associated with the Location extra
- * @param value the Location to attach
- * @hide
- */
- @TestApi
- @SystemApi
- public void setExtraLocation(@Nullable String key, @Nullable Location value) {
- if (mExtras == null) {
- mExtras = new Bundle();
- }
- mExtras.putParcelable(key, value);
- }
-
- /**
* Returns true if the Location came from a mock provider.
*
* @return true if this Location came from a mock provider, false otherwise
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
index de0b6fc..14dc9de 100644
--- a/services/core/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -2704,7 +2704,12 @@
if (noGPSLocation == null && lastNoGPSLocation != null) {
// New location has no no-GPS location: adopt last no-GPS location. This is set
// directly into location because we do not want to notify COARSE clients.
- location.setExtraLocation(Location.EXTRA_NO_GPS_LOCATION, lastNoGPSLocation);
+ Bundle extras = location.getExtras();
+ if (extras == null) {
+ extras = new Bundle();
+ }
+ extras.putParcelable(Location.EXTRA_NO_GPS_LOCATION, lastNoGPSLocation);
+ location.setExtras(extras);
}
}
lastLocation.set(location);
diff --git a/services/core/java/com/android/server/location/LocationFudger.java b/services/core/java/com/android/server/location/LocationFudger.java
index ae71fe3..04c7714 100644
--- a/services/core/java/com/android/server/location/LocationFudger.java
+++ b/services/core/java/com/android/server/location/LocationFudger.java
@@ -16,17 +16,19 @@
package com.android.server.location;
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-import java.security.SecureRandom;
import android.content.Context;
import android.database.ContentObserver;
import android.location.Location;
+import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.provider.Settings;
import android.util.Log;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.security.SecureRandom;
+
/**
* Contains the logic to obfuscate (fudge) locations for coarse applications.
@@ -177,7 +179,12 @@
private Location addCoarseLocationExtraLocked(Location location) {
Location coarse = createCoarseLocked(location);
- location.setExtraLocation(Location.EXTRA_COARSE_LOCATION, coarse);
+ Bundle extras = location.getExtras();
+ if (extras == null) {
+ extras = new Bundle();
+ }
+ extras.putParcelable(Location.EXTRA_COARSE_LOCATION, coarse);
+ location.setExtras(extras);
return coarse;
}