Merge "Add missing unregistrations when a connection ends." into mnc-dev
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index d04a2a5..cbe7c0a 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -588,10 +588,14 @@
*/
void clearOriginalConnection() {
if (mOriginalConnection != null) {
- getPhone().unregisterForPreciseCallStateChanged(mHandler);
- getPhone().unregisterForRingbackTone(mHandler);
- getPhone().unregisterForHandoverStateChanged(mHandler);
- getPhone().unregisterForDisconnect(mHandler);
+ if (getPhone() != null) {
+ getPhone().unregisterForPreciseCallStateChanged(mHandler);
+ getPhone().unregisterForRingbackTone(mHandler);
+ getPhone().unregisterForHandoverStateChanged(mHandler);
+ getPhone().unregisterForDisconnect(mHandler);
+ }
+ mOriginalConnection.removePostDialListener(mPostDialListener);
+ mOriginalConnection.removeListener(mOriginalConnectionListener);
mOriginalConnection = null;
}
}
@@ -816,12 +820,7 @@
private void close() {
Log.v(this, "close");
- if (getPhone() != null) {
- getPhone().unregisterForPreciseCallStateChanged(mHandler);
- getPhone().unregisterForRingbackTone(mHandler);
- getPhone().unregisterForHandoverStateChanged(mHandler);
- }
- mOriginalConnection = null;
+ clearOriginalConnection();
destroy();
}