summaryrefslogtreecommitdiff
path: root/location/java/com
diff options
context:
space:
mode:
author Yu-Han Yang <yuhany@google.com> 2022-05-25 01:43:47 +0000
committer Yu-Han Yang <yuhany@google.com> 2022-07-20 20:11:20 +0000
commit894d6e63e3d4a40991dfba57c8bf3644fcee07f5 (patch)
tree2a62b03fd6b14b1bbf7c5f604c252c919c944847 /location/java/com
parentf1fa5105b7d22303b2b1678b5cf0dc08cd7fd594 (diff)
Handle emergency SUPL on active SIM
- Call setSetId on the active sub ID in emergency SUPL - Reload GNSS configurations when emergency call starts and ends Bug: 211060538 Test: manual Change-Id: I4d61854644e851bb742eff0e89826a2d0e5284d6
Diffstat (limited to 'location/java/com')
-rw-r--r--location/java/com/android/internal/location/GpsNetInitiatedHandler.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
index 190e1cc083bd..fba4249260ef 100644
--- a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
+++ b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
@@ -142,6 +142,14 @@ public class GpsNetInitiatedHandler {
public int textEncoding;
}
+ /** Callbacks for Emergency call events. */
+ public interface EmergencyCallCallback {
+ /** Callback invoked when an emergency call starts */
+ void onEmergencyCallStart(int subId);
+ /** Callback invoked when an emergency call ends */
+ void onEmergencyCallEnd();
+ }
+
private class EmergencyCallListener extends TelephonyCallback implements
TelephonyCallback.OutgoingEmergencyCallListener,
TelephonyCallback.CallStateListener {
@@ -152,6 +160,7 @@ public class GpsNetInitiatedHandler {
int subscriptionId) {
mIsInEmergencyCall = true;
if (DEBUG) Log.d(TAG, "onOutgoingEmergencyCall(): inEmergency = " + getInEmergency());
+ mEmergencyCallCallback.onEmergencyCallStart(subscriptionId);
}
@Override
@@ -163,6 +172,7 @@ public class GpsNetInitiatedHandler {
if (mIsInEmergencyCall) {
mCallEndElapsedRealtimeMillis = SystemClock.elapsedRealtime();
mIsInEmergencyCall = false;
+ mEmergencyCallCallback.onEmergencyCallEnd();
}
}
}
@@ -180,8 +190,11 @@ public class GpsNetInitiatedHandler {
*/
private Notification.Builder mNiNotificationBuilder;
+ private final EmergencyCallCallback mEmergencyCallCallback;
+
public GpsNetInitiatedHandler(Context context,
INetInitiatedListener netInitiatedListener,
+ EmergencyCallCallback emergencyCallCallback,
boolean isSuplEsEnabled) {
mContext = context;
@@ -190,6 +203,7 @@ public class GpsNetInitiatedHandler {
} else {
mNetInitiatedListener = netInitiatedListener;
}
+ mEmergencyCallCallback = emergencyCallCallback;
setSuplEsEnabled(isSuplEsEnabled);
mLocationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);