Dump state of GnssMeasurement & NavMsg requests
These can also keep GNSS engine awake, so good
to see their status as well.
Bug: 71917458
Test: Shows up in adb shell dumpsys location on Pixel 2
Change-Id: I9721b14f10c6f9e6a1242b744867a01f5ea33c67
(cherry picked from commit 74479bd07468caedf9e1e85ab50881858a870867)
diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java
index e158819..6dc5403 100644
--- a/services/core/java/com/android/server/location/GnssLocationProvider.java
+++ b/services/core/java/com/android/server/location/GnssLocationProvider.java
@@ -2628,6 +2628,10 @@
s.append(" mStarted=").append(mStarted).append('\n');
s.append(" mFixInterval=").append(mFixInterval).append('\n');
s.append(" mLowPowerMode=").append(mLowPowerMode).append('\n');
+ s.append(" mGnssMeasurementsProvider.isRegistered()=")
+ .append(mGnssMeasurementsProvider.isRegistered()).append('\n');
+ s.append(" mGnssNavigationMessageProvider.isRegistered()=")
+ .append(mGnssNavigationMessageProvider.isRegistered()).append('\n');
s.append(" mDisableGps (battery saver mode)=").append(mDisableGps).append('\n');
s.append(" mEngineCapabilities=0x").append(Integer.toHexString(mEngineCapabilities));
s.append(" ( ");
diff --git a/services/core/java/com/android/server/location/RemoteListenerHelper.java b/services/core/java/com/android/server/location/RemoteListenerHelper.java
index 58a9516..fcdb9d1 100644
--- a/services/core/java/com/android/server/location/RemoteListenerHelper.java
+++ b/services/core/java/com/android/server/location/RemoteListenerHelper.java
@@ -46,7 +46,8 @@
private final Map<IBinder, LinkedListener> mListenerMap = new HashMap<>();
- private boolean mIsRegistered; // must access only on handler thread
+ private volatile boolean mIsRegistered; // must access only on handler thread, or read-only
+
private boolean mHasIsSupported;
private boolean mIsSupported;
@@ -58,6 +59,11 @@
mTag = name;
}
+ // read-only access for a dump() thread assured via volatile
+ public boolean isRegistered() {
+ return mIsRegistered;
+ }
+
public boolean addListener(@NonNull TListener listener) {
Preconditions.checkNotNull(listener, "Attempted to register a 'null' listener.");
IBinder binder = listener.asBinder();