am a2e1cebe: Merge "Fix fallback for emergency calls" into lmp-mr1-dev
* commit 'a2e1cebe4b42dc4b4188d0d916bfcee468a77ac5':
Fix fallback for emergency calls
diff --git a/src/com/android/server/telecom/Call.java b/src/com/android/server/telecom/Call.java
index 3e66426..d3eddb5 100644
--- a/src/com/android/server/telecom/Call.java
+++ b/src/com/android/server/telecom/Call.java
@@ -392,7 +392,18 @@
void setState(int newState) {
if (mState != newState) {
Log.v(this, "setState %s -> %s", mState, newState);
- int oldState = mState;
+
+ if (newState == CallState.DISCONNECTED
+ && (mState == CallState.DIALING || mState == CallState.CONNECTING)
+ && mCreateConnectionProcessor != null
+ && mCreateConnectionProcessor.isProcessingComplete()
+ && mCreateConnectionProcessor.hasMorePhoneAccounts()
+ && mDisconnectCause != null
+ && mDisconnectCause.getCode() == DisconnectCause.ERROR) {
+ mCreateConnectionProcessor.continueProcessingIfPossible(this, mDisconnectCause);
+ return;
+ }
+
mState = newState;
maybeLoadCannedSmsResponses();
@@ -410,14 +421,6 @@
mDisconnectTimeMillis = System.currentTimeMillis();
setLocallyDisconnecting(false);
fixParentAfterDisconnect();
- if ((oldState == CallState.DIALING || oldState == CallState.CONNECTING)
- && mCreateConnectionProcessor != null
- && mCreateConnectionProcessor.isProcessingComplete()
- && mCreateConnectionProcessor.hasMorePhoneAccounts()
- && mDisconnectCause != null
- && mDisconnectCause.getCode() == DisconnectCause.ERROR) {
- mCreateConnectionProcessor.continueProcessingIfPossible(this, mDisconnectCause);
- }
}
}
}