Loading src/java/com/android/internal/telephony/CallManager.java +21 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.os.RegistrantList; import android.os.Registrant; import android.os.SystemProperties; import android.telephony.MSimTelephonyManager; import android.telephony.PhoneNumberUtils; import android.telephony.PhoneStateListener; import android.telephony.Rlog; import android.telephony.ServiceState; Loading Loading @@ -112,6 +113,8 @@ public class CallManager { // save a cached copy of Ims Phone private Phone mImsPhone; protected String mDialString; private boolean mSpeedUpAudioForMtCall = false; protected CmHandler mHandler; Loading Loading @@ -909,6 +912,7 @@ public class CallManager { Phone basePhone = getPhoneBase(phone); Connection result; mDialString = dialString; if (VDBG) { Rlog.d(LOG_TAG, " dial(" + basePhone + ", "+ dialString + ")"); Loading Loading @@ -952,6 +956,18 @@ public class CallManager { return result; } protected boolean isExplicitCallTransferMMI (String dialString) { boolean result = false; String newDialString = PhoneNumberUtils.stripSeparators(dialString); if ((newDialString != null) && (newDialString.length() == 1)) { char ch = newDialString.charAt(0); if (ch == '4') { result = true; } } return result; } /** * Initiate a new voice connection. This happens asynchronously, so you * cannot assume the audio path is connected (or a call index has been Loading Loading @@ -993,6 +1009,11 @@ public class CallManager { && !hasRingingCall && ((fgCallState == Call.State.ACTIVE) || (fgCallState == Call.State.IDLE) /*As per 3GPP TS 51.010-1 section 31.13.1.4 call should be alowed when the foreground call is in ALERTING state*/ || ((fgCallState == Call.State.ALERTING) && isExplicitCallTransferMMI(mDialString)) || (fgCallState == Call.State.DISCONNECTED))); if (result == false) { Loading src/java/com/android/internal/telephony/ExtCallManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -461,6 +461,7 @@ public class ExtCallManager extends CallManager { Phone basePhone = getPhoneBase(phone); int subscription = phone.getSubscription(); Connection result; mDialString = dialString; if (VDBG) { Rlog.d(LOG_TAG, " dial(" + basePhone + ", "+ dialString + ")" + Loading Loading @@ -516,6 +517,11 @@ public class ExtCallManager extends CallManager { && !hasRingingCall && ((fgCallState == Call.State.ACTIVE) || (fgCallState == Call.State.IDLE) /*As per 3GPP TS 51.010-1 section 31.13.1.4 call should be alowed when the foreground call is in ALERTING state*/ || ((fgCallState == Call.State.ALERTING) && isExplicitCallTransferMMI(mDialString)) || (fgCallState == Call.State.DISCONNECTED))); if (result == false) { Loading Loading
src/java/com/android/internal/telephony/CallManager.java +21 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.os.RegistrantList; import android.os.Registrant; import android.os.SystemProperties; import android.telephony.MSimTelephonyManager; import android.telephony.PhoneNumberUtils; import android.telephony.PhoneStateListener; import android.telephony.Rlog; import android.telephony.ServiceState; Loading Loading @@ -112,6 +113,8 @@ public class CallManager { // save a cached copy of Ims Phone private Phone mImsPhone; protected String mDialString; private boolean mSpeedUpAudioForMtCall = false; protected CmHandler mHandler; Loading Loading @@ -909,6 +912,7 @@ public class CallManager { Phone basePhone = getPhoneBase(phone); Connection result; mDialString = dialString; if (VDBG) { Rlog.d(LOG_TAG, " dial(" + basePhone + ", "+ dialString + ")"); Loading Loading @@ -952,6 +956,18 @@ public class CallManager { return result; } protected boolean isExplicitCallTransferMMI (String dialString) { boolean result = false; String newDialString = PhoneNumberUtils.stripSeparators(dialString); if ((newDialString != null) && (newDialString.length() == 1)) { char ch = newDialString.charAt(0); if (ch == '4') { result = true; } } return result; } /** * Initiate a new voice connection. This happens asynchronously, so you * cannot assume the audio path is connected (or a call index has been Loading Loading @@ -993,6 +1009,11 @@ public class CallManager { && !hasRingingCall && ((fgCallState == Call.State.ACTIVE) || (fgCallState == Call.State.IDLE) /*As per 3GPP TS 51.010-1 section 31.13.1.4 call should be alowed when the foreground call is in ALERTING state*/ || ((fgCallState == Call.State.ALERTING) && isExplicitCallTransferMMI(mDialString)) || (fgCallState == Call.State.DISCONNECTED))); if (result == false) { Loading
src/java/com/android/internal/telephony/ExtCallManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -461,6 +461,7 @@ public class ExtCallManager extends CallManager { Phone basePhone = getPhoneBase(phone); int subscription = phone.getSubscription(); Connection result; mDialString = dialString; if (VDBG) { Rlog.d(LOG_TAG, " dial(" + basePhone + ", "+ dialString + ")" + Loading Loading @@ -516,6 +517,11 @@ public class ExtCallManager extends CallManager { && !hasRingingCall && ((fgCallState == Call.State.ACTIVE) || (fgCallState == Call.State.IDLE) /*As per 3GPP TS 51.010-1 section 31.13.1.4 call should be alowed when the foreground call is in ALERTING state*/ || ((fgCallState == Call.State.ALERTING) && isExplicitCallTransferMMI(mDialString)) || (fgCallState == Call.State.DISCONNECTED))); if (result == false) { Loading