summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dante Russo <russodante@google.com> 2025-03-13 19:24:05 -0700
committer Dante Russo <russodante@google.com> 2025-03-18 16:01:33 -0700
commitfca4bcdd90f2bb276dd9869e99c3912546b37887 (patch)
treec07a1a46613d3db0b260f53212e6c0245babda71
parentf9bc523c2bb7e98f4ea33a6c2764e6e5d6e53d7a (diff)
Add missing attribution tags to com.android.location.fused
Avoids warning prints in log: W LocationManagerService: system location request with no attribution tag W LocationManagerService: java.lang.IllegalArgumentException Flag: android.location.flags.missing_attribution_tags_in_overlay Bug : 403337028 Test: Manual Change-Id: I11204b0724abc9d28fe819ea99b870397594d466
-rw-r--r--location/java/android/location/flags/location.aconfig7
-rw-r--r--packages/FusedLocation/AndroidManifest.xml3
-rw-r--r--packages/FusedLocation/res/values/strings.xml4
-rw-r--r--packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java9
-rw-r--r--packages/FusedLocation/src/com/android/location/gnss/GnssOverlayLocationProvider.java10
5 files changed, 30 insertions, 3 deletions
diff --git a/location/java/android/location/flags/location.aconfig b/location/java/android/location/flags/location.aconfig
index 5b29b717fdc2..9cc58ae35692 100644
--- a/location/java/android/location/flags/location.aconfig
+++ b/location/java/android/location/flags/location.aconfig
@@ -212,3 +212,10 @@ flag {
bug: "402997842"
is_fixed_read_only: true
}
+
+flag {
+ name: "missing_attribution_tags_in_overlay"
+ namespace: "location"
+ description: "Adds missing attribution tags in the Fused and Gnss overlay"
+ bug: "403337028"
+}
diff --git a/packages/FusedLocation/AndroidManifest.xml b/packages/FusedLocation/AndroidManifest.xml
index 158c33ae2035..56fe38905660 100644
--- a/packages/FusedLocation/AndroidManifest.xml
+++ b/packages/FusedLocation/AndroidManifest.xml
@@ -30,6 +30,9 @@
<uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
+ <attribution android:tag="FusedOverlayService" android:label="@string/fused_overlay_service"/>
+ <attribution android:tag="GnssOverlayService" android:label="@string/gnss_overlay_service"/>
+
<application
android:label="@string/app_label"
android:process="system"
diff --git a/packages/FusedLocation/res/values/strings.xml b/packages/FusedLocation/res/values/strings.xml
index 5b78e39d1ba6..25e1fe7677bb 100644
--- a/packages/FusedLocation/res/values/strings.xml
+++ b/packages/FusedLocation/res/values/strings.xml
@@ -2,4 +2,8 @@
<resources>
<!-- Name of the application. [CHAR LIMIT=35] -->
<string name="app_label">Fused Location</string>
+ <!-- Attribution for Fused Overlay Service. [CHAR LIMIT=NONE]-->
+ <string name="fused_overlay_service">Fused Overlay Service</string>
+ <!-- Attribution for GNSS Overlay Service. [CHAR LIMIT=NONE]-->
+ <string name="gnss_overlay_service">GNSS Overlay Service</string>
</resources>
diff --git a/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java b/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java
index a0e008c9437f..78b2f7e52ca5 100644
--- a/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java
+++ b/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java
@@ -53,6 +53,7 @@ import java.util.concurrent.atomic.AtomicInteger;
public class FusedLocationProvider extends LocationProviderBase {
private static final String TAG = "FusedLocationProvider";
+ private static final String ATTRIBUTION_TAG = "FusedOverlayService";
private static final ProviderProperties PROPERTIES = new ProviderProperties.Builder()
.setHasAltitudeSupport(true)
@@ -89,8 +90,12 @@ public class FusedLocationProvider extends LocationProviderBase {
public FusedLocationProvider(Context context) {
super(context, TAG, PROPERTIES);
- mContext = context;
- mLocationManager = Objects.requireNonNull(context.getSystemService(LocationManager.class));
+ if (Flags.missingAttributionTagsInOverlay()) {
+ mContext = context.createAttributionContext(ATTRIBUTION_TAG);
+ } else {
+ mContext = context;
+ }
+ mLocationManager = Objects.requireNonNull(mContext.getSystemService(LocationManager.class));
mGpsListener = new ChildLocationListener(GPS_PROVIDER);
mNetworkListener = new ChildLocationListener(NETWORK_PROVIDER);
diff --git a/packages/FusedLocation/src/com/android/location/gnss/GnssOverlayLocationProvider.java b/packages/FusedLocation/src/com/android/location/gnss/GnssOverlayLocationProvider.java
index c6576e39de99..86bcd99822fc 100644
--- a/packages/FusedLocation/src/com/android/location/gnss/GnssOverlayLocationProvider.java
+++ b/packages/FusedLocation/src/com/android/location/gnss/GnssOverlayLocationProvider.java
@@ -21,6 +21,7 @@ import static android.location.provider.ProviderProperties.POWER_USAGE_HIGH;
import android.annotation.Nullable;
import android.content.Context;
+import android.location.flags.Flags;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
@@ -41,6 +42,7 @@ import java.util.List;
public class GnssOverlayLocationProvider extends LocationProviderBase {
private static final String TAG = "GnssOverlay";
+ private static final String ATTRIBUTION_TAG = "GnssOverlayService";
private static final ProviderProperties PROPERTIES = new ProviderProperties.Builder()
.setHasAltitudeSupport(true)
@@ -87,7 +89,13 @@ public class GnssOverlayLocationProvider extends LocationProviderBase {
public GnssOverlayLocationProvider(Context context) {
super(context, TAG, PROPERTIES);
- mLocationManager = context.getSystemService(LocationManager.class);
+
+ if (Flags.missingAttributionTagsInOverlay()) {
+ Context contextWithAttribution = context.createAttributionContext(ATTRIBUTION_TAG);
+ mLocationManager = contextWithAttribution.getSystemService(LocationManager.class);
+ } else {
+ mLocationManager = context.getSystemService(LocationManager.class);
+ }
}
void start() {