Loading src/java/com/android/internal/telephony/CallStateException.java +18 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,13 @@ package com.android.internal.telephony; */ public class CallStateException extends Exception { private int mError = ERROR_INVALID; /** The error code is not valid (Not received a disconnect cause) */ public static final int ERROR_INVALID = -1; public static final int ERROR_DISCONNECTED = 1; public CallStateException() { Loading @@ -31,4 +38,15 @@ public class CallStateException extends Exception { super(string); } public CallStateException(int error, String string) { super(string); mError = error; } public int getError() { return mError; } } src/java/com/android/internal/telephony/cdma/CDMAPhone.java +1 −16 Original line number Diff line number Diff line Loading @@ -46,8 +46,6 @@ import android.util.Log; import android.telephony.TelephonyManager; import com.android.ims.ImsConfig; import com.android.ims.ImsManager; import com.android.internal.telephony.Call; import com.android.internal.telephony.CallStateException; import com.android.internal.telephony.CallTracker; Loading @@ -71,7 +69,6 @@ import com.android.internal.telephony.dataconnection.DcTracker; import com.android.internal.telephony.imsphone.ImsPhone; import com.android.internal.telephony.uicc.IccException; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.RuimRecords; import com.android.internal.telephony.uicc.UiccCard; import com.android.internal.telephony.uicc.UiccCardApplication; import com.android.internal.telephony.uicc.UiccController; Loading Loading @@ -426,19 +423,7 @@ public class CDMAPhone extends PhoneBase { + ((imsPhone != null) ? imsPhone.getServiceState().getState() : "N/A")); } if (imsPhone == null || (imsPhone != null && !imsPhone.isVowifiEnabled())) { boolean wfcWiFiOnly = (ImsManager.isWfcEnabledByPlatform(mContext) && ImsManager.isWfcEnabledByUser(mContext) && (ImsManager.getWfcMode(mContext) == ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY)); if (wfcWiFiOnly == true) { if (DBG) Rlog.d(LOG_TAG, "WIFI only mode, but no VoWIFI enabled"); CallStateException ce = new CallStateException( "WFC Wi-Fi Only Mode: IMS stack on WIFI not available"); throw ce; } } ImsPhone.checkWfcWifiOnlyModeBeforeDial(mImsPhone, mContext); if (imsUseEnabled && imsPhone != null && (imsPhone.isVolteEnabled() || imsPhone.isVowifiEnabled()) Loading src/java/com/android/internal/telephony/gsm/GSMPhone.java +1 −18 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.os.Handler; import android.os.Message; import android.os.Registrant; import android.os.RegistrantList; import android.os.SystemProperties; import android.preference.PreferenceManager; import android.provider.Telephony; import android.telecom.VideoProfile; Loading @@ -36,8 +35,6 @@ import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import com.android.ims.ImsConfig; import com.android.ims.ImsManager; import com.android.internal.telephony.CallTracker; import android.text.TextUtils; Loading @@ -64,14 +61,12 @@ import com.android.internal.telephony.CommandsInterface; import com.android.internal.telephony.Connection; import com.android.internal.telephony.IccPhoneBookInterfaceManager; import com.android.internal.telephony.MmiCode; import com.android.internal.telephony.OperatorInfo; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneBase; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneNotifier; import com.android.internal.telephony.PhoneProxy; import com.android.internal.telephony.PhoneSubInfo; import com.android.internal.telephony.TelephonyProperties; import com.android.internal.telephony.UUSInfo; import com.android.internal.telephony.imsphone.ImsPhone; import com.android.internal.telephony.test.SimulatedRadioControl; Loading Loading @@ -822,19 +817,7 @@ public class GSMPhone extends PhoneBase { + ((imsPhone != null) ? imsPhone.getServiceState().getState() : "N/A")); } if (imsPhone == null || (imsPhone != null && !imsPhone.isVowifiEnabled())) { boolean wfcWiFiOnly = (ImsManager.isWfcEnabledByPlatform(mContext) && ImsManager.isWfcEnabledByUser(mContext) && (ImsManager.getWfcMode(mContext) == ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY)); if (wfcWiFiOnly == true) { if (LOCAL_DEBUG) Rlog.d(LOG_TAG, "WIFI only mode, but no VoWIFI enabled"); CallStateException ce = new CallStateException( "WFC Wi-Fi Only Mode: IMS stack on WIFI not available"); throw ce; } } ImsPhone.checkWfcWifiOnlyModeBeforeDial(mImsPhone, mContext); if (imsUseEnabled && imsPhone != null && (imsPhone.isVolteEnabled() || imsPhone.isVowifiEnabled()) Loading src/java/com/android/internal/telephony/imsphone/ImsPhone.java +16 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import android.text.TextUtils; import com.android.ims.ImsCallForwardInfo; import com.android.ims.ImsCallProfile; import com.android.ims.ImsConfig; import com.android.ims.ImsEcbm; import com.android.ims.ImsEcbmStateListener; import com.android.ims.ImsException; Loading Loading @@ -475,6 +476,21 @@ public class ImsPhone extends ImsPhoneBase { mDefaultPhone.notifyNewRingingConnectionP(c); } public static void checkWfcWifiOnlyModeBeforeDial(ImsPhone imsPhone, Context context) throws CallStateException { if (imsPhone == null || !imsPhone.isVowifiEnabled()) { boolean wfcWiFiOnly = (ImsManager.isWfcEnabledByPlatform(context) && ImsManager.isWfcEnabledByUser(context) && (ImsManager.getWfcMode(context) == ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY)); if (wfcWiFiOnly) { throw new CallStateException( CallStateException.ERROR_DISCONNECTED, "WFC Wi-Fi Only Mode: IMS not registered"); } } } @Override public Connection Loading Loading
src/java/com/android/internal/telephony/CallStateException.java +18 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,13 @@ package com.android.internal.telephony; */ public class CallStateException extends Exception { private int mError = ERROR_INVALID; /** The error code is not valid (Not received a disconnect cause) */ public static final int ERROR_INVALID = -1; public static final int ERROR_DISCONNECTED = 1; public CallStateException() { Loading @@ -31,4 +38,15 @@ public class CallStateException extends Exception { super(string); } public CallStateException(int error, String string) { super(string); mError = error; } public int getError() { return mError; } }
src/java/com/android/internal/telephony/cdma/CDMAPhone.java +1 −16 Original line number Diff line number Diff line Loading @@ -46,8 +46,6 @@ import android.util.Log; import android.telephony.TelephonyManager; import com.android.ims.ImsConfig; import com.android.ims.ImsManager; import com.android.internal.telephony.Call; import com.android.internal.telephony.CallStateException; import com.android.internal.telephony.CallTracker; Loading @@ -71,7 +69,6 @@ import com.android.internal.telephony.dataconnection.DcTracker; import com.android.internal.telephony.imsphone.ImsPhone; import com.android.internal.telephony.uicc.IccException; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.RuimRecords; import com.android.internal.telephony.uicc.UiccCard; import com.android.internal.telephony.uicc.UiccCardApplication; import com.android.internal.telephony.uicc.UiccController; Loading Loading @@ -426,19 +423,7 @@ public class CDMAPhone extends PhoneBase { + ((imsPhone != null) ? imsPhone.getServiceState().getState() : "N/A")); } if (imsPhone == null || (imsPhone != null && !imsPhone.isVowifiEnabled())) { boolean wfcWiFiOnly = (ImsManager.isWfcEnabledByPlatform(mContext) && ImsManager.isWfcEnabledByUser(mContext) && (ImsManager.getWfcMode(mContext) == ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY)); if (wfcWiFiOnly == true) { if (DBG) Rlog.d(LOG_TAG, "WIFI only mode, but no VoWIFI enabled"); CallStateException ce = new CallStateException( "WFC Wi-Fi Only Mode: IMS stack on WIFI not available"); throw ce; } } ImsPhone.checkWfcWifiOnlyModeBeforeDial(mImsPhone, mContext); if (imsUseEnabled && imsPhone != null && (imsPhone.isVolteEnabled() || imsPhone.isVowifiEnabled()) Loading
src/java/com/android/internal/telephony/gsm/GSMPhone.java +1 −18 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.os.Handler; import android.os.Message; import android.os.Registrant; import android.os.RegistrantList; import android.os.SystemProperties; import android.preference.PreferenceManager; import android.provider.Telephony; import android.telecom.VideoProfile; Loading @@ -36,8 +35,6 @@ import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import com.android.ims.ImsConfig; import com.android.ims.ImsManager; import com.android.internal.telephony.CallTracker; import android.text.TextUtils; Loading @@ -64,14 +61,12 @@ import com.android.internal.telephony.CommandsInterface; import com.android.internal.telephony.Connection; import com.android.internal.telephony.IccPhoneBookInterfaceManager; import com.android.internal.telephony.MmiCode; import com.android.internal.telephony.OperatorInfo; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneBase; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneNotifier; import com.android.internal.telephony.PhoneProxy; import com.android.internal.telephony.PhoneSubInfo; import com.android.internal.telephony.TelephonyProperties; import com.android.internal.telephony.UUSInfo; import com.android.internal.telephony.imsphone.ImsPhone; import com.android.internal.telephony.test.SimulatedRadioControl; Loading Loading @@ -822,19 +817,7 @@ public class GSMPhone extends PhoneBase { + ((imsPhone != null) ? imsPhone.getServiceState().getState() : "N/A")); } if (imsPhone == null || (imsPhone != null && !imsPhone.isVowifiEnabled())) { boolean wfcWiFiOnly = (ImsManager.isWfcEnabledByPlatform(mContext) && ImsManager.isWfcEnabledByUser(mContext) && (ImsManager.getWfcMode(mContext) == ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY)); if (wfcWiFiOnly == true) { if (LOCAL_DEBUG) Rlog.d(LOG_TAG, "WIFI only mode, but no VoWIFI enabled"); CallStateException ce = new CallStateException( "WFC Wi-Fi Only Mode: IMS stack on WIFI not available"); throw ce; } } ImsPhone.checkWfcWifiOnlyModeBeforeDial(mImsPhone, mContext); if (imsUseEnabled && imsPhone != null && (imsPhone.isVolteEnabled() || imsPhone.isVowifiEnabled()) Loading
src/java/com/android/internal/telephony/imsphone/ImsPhone.java +16 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import android.text.TextUtils; import com.android.ims.ImsCallForwardInfo; import com.android.ims.ImsCallProfile; import com.android.ims.ImsConfig; import com.android.ims.ImsEcbm; import com.android.ims.ImsEcbmStateListener; import com.android.ims.ImsException; Loading Loading @@ -475,6 +476,21 @@ public class ImsPhone extends ImsPhoneBase { mDefaultPhone.notifyNewRingingConnectionP(c); } public static void checkWfcWifiOnlyModeBeforeDial(ImsPhone imsPhone, Context context) throws CallStateException { if (imsPhone == null || !imsPhone.isVowifiEnabled()) { boolean wfcWiFiOnly = (ImsManager.isWfcEnabledByPlatform(context) && ImsManager.isWfcEnabledByUser(context) && (ImsManager.getWfcMode(context) == ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY)); if (wfcWiFiOnly) { throw new CallStateException( CallStateException.ERROR_DISCONNECTED, "WFC Wi-Fi Only Mode: IMS not registered"); } } } @Override public Connection Loading