diff options
| -rw-r--r-- | location/java/android/location/flags/location.aconfig | 7 | ||||
| -rw-r--r-- | services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java | 8 |
2 files changed, 14 insertions, 1 deletions
diff --git a/location/java/android/location/flags/location.aconfig b/location/java/android/location/flags/location.aconfig index 19e59a776511..d6d4989aa47e 100644 --- a/location/java/android/location/flags/location.aconfig +++ b/location/java/android/location/flags/location.aconfig @@ -79,6 +79,13 @@ flag { } flag { + name: "subscriptions_listener_thread" + namespace: "location" + description: "Flag for running onSubscriptionsChangeListener on FgThread" + bug: "332451908" +} + +flag { name: "gnss_configuration_from_resource" namespace: "location" description: "Flag for GNSS configuration from resource" diff --git a/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java b/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java index 71a9f54c0b1c..32a0ef4c6a42 100644 --- a/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java +++ b/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java @@ -38,6 +38,7 @@ import android.telephony.TelephonyManager; import android.util.Log; import com.android.internal.location.GpsNetInitiatedHandler; +import com.android.server.FgThread; import java.net.Inet4Address; import java.net.Inet6Address; @@ -200,7 +201,12 @@ class GnssNetworkConnectivityHandler { SubscriptionManager subManager = mContext.getSystemService(SubscriptionManager.class); if (subManager != null) { - subManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener); + if (Flags.subscriptionsListenerThread()) { + subManager.addOnSubscriptionsChangedListener(FgThread.getExecutor(), + mOnSubscriptionsChangeListener); + } else { + subManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener); + } } PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); |