Merge "Change the order of CANCEL_EMERGENCY_NETWORK_SCAN and EXIT_EMERGENCY_MODE"
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 519655e..31221af 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -611,9 +611,8 @@
                             Phone phone = mEmergencyCallDomainSelectionConnection.getPhone();
                             mEmergencyConnection.removeTelephonyConnectionListener(
                                     mEmergencyConnectionListener);
-                            mEmergencyStateTracker.endCall(
-                                    mEmergencyConnection.getTelecomCallId());
                             releaseEmergencyCallDomainSelection(true);
+                            mEmergencyStateTracker.endCall(mEmergencyCallId);
                             retryOutgoingOriginalConnection(c, phone, isPermanentFailure);
                         });
                         return;
@@ -2386,8 +2385,8 @@
 
         Log.i(this, "maybeReselectDomainForEmergencyCall endCall()");
         c.removeTelephonyConnectionListener(mEmergencyConnectionListener);
-        mEmergencyStateTracker.endCall(c.getTelecomCallId());
         releaseEmergencyCallDomainSelection(true);
+        mEmergencyStateTracker.endCall(c.getTelecomCallId());
 
         return false;
     }
@@ -2647,8 +2646,8 @@
         if (TextUtils.equals(mEmergencyCallId, c.getTelecomCallId())) {
             Log.i(this, "onLocalHangup " + mEmergencyCallId);
             c.removeTelephonyConnectionListener(mEmergencyConnectionListener);
-            mEmergencyStateTracker.endCall(c.getTelecomCallId());
             releaseEmergencyCallDomainSelection(true);
+            mEmergencyStateTracker.endCall(c.getTelecomCallId());
             mEmergencyCallId = null;
         }
     }