Merge "Hang up original swapped connection" into oc-dr1-dev
diff --git a/src/com/android/services/telephony/PstnIncomingCallNotifier.java b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
index 47fac6a..72b659e 100644
--- a/src/com/android/services/telephony/PstnIncomingCallNotifier.java
+++ b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
@@ -16,10 +16,6 @@
package com.android.services.telephony;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
import android.net.Uri;
import android.os.AsyncResult;
import android.os.Bundle;
@@ -34,13 +30,7 @@
import com.android.internal.telephony.Call;
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.Connection;
-import com.android.internal.telephony.DriverCall;
-import com.android.internal.telephony.GsmCdmaCallTracker;
-import com.android.internal.telephony.GsmCdmaConnection;
-import com.android.internal.telephony.GsmCdmaPhone;
import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.TelephonyComponentFactory;
-import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.cdma.CdmaCallWaitingNotification;
import com.android.internal.telephony.imsphone.ImsExternalCallTracker;
import com.android.internal.telephony.imsphone.ImsExternalConnection;
@@ -324,6 +314,21 @@
}
telephonyConnection.setOriginalConnection(unknown);
+
+ // Do not call hang up if the original connection is an ImsExternalConnection, it is
+ // not supported.
+ if (original instanceof ImsExternalConnection) {
+ return true;
+ }
+ // Since we have set the new connection as the original connection, disconnect the old
+ // one, since it is no longer needed.
+ try {
+ original.hangup();
+ Log.i(this, "Hung up original connection: " + original);
+ } catch (CallStateException e) {
+ Log.w(this, "Couldn't hang up original connection: " + original + ", Error: "
+ + e.getError());
+ }
return true;
}
return false;