diff options
| author | 2024-04-17 02:47:05 +0000 | |
|---|---|---|
| committer | 2024-04-17 05:22:00 +0000 | |
| commit | b51ba47fc12bf34bc31da272444946dc1e1bf611 (patch) | |
| tree | ad214a2fd819c0e12d4fd19511318508db2018d2 | |
| parent | b485ab8a99db45baddd1a9254d71a2e07e1b66f1 (diff) | |
Move mOnSubscriptionsChangeListener to FgThread
Bug: 332451908
Test: on device
Change-Id: I226654fbe8798eced17d82a26c3eab25fa605d87
| -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); |