From b51ba47fc12bf34bc31da272444946dc1e1bf611 Mon Sep 17 00:00:00 2001 From: Yu-Han Yang Date: Wed, 17 Apr 2024 02:47:05 +0000 Subject: Move mOnSubscriptionsChangeListener to FgThread Bug: 332451908 Test: on device Change-Id: I226654fbe8798eced17d82a26c3eab25fa605d87 --- location/java/android/location/flags/location.aconfig | 7 +++++++ .../server/location/gnss/GnssNetworkConnectivityHandler.java | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) 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 @@ -78,6 +78,13 @@ flag { bug: "314328533" } +flag { + name: "subscriptions_listener_thread" + namespace: "location" + description: "Flag for running onSubscriptionsChangeListener on FgThread" + bug: "332451908" +} + flag { name: "gnss_configuration_from_resource" namespace: "location" 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); -- cgit v1.2.3-59-g8ed1b