Loading src/java/com/android/internal/telephony/BtSmsInterfaceManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -45,13 +45,13 @@ public class BtSmsInterfaceManager { BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter(); if (btAdapter == null) { // No bluetooth service on this platform? sendErrorInPendingIntent(sentIntent, SmsManager.RESULT_ERROR_NO_SERVICE); sendErrorInPendingIntent(sentIntent, SmsManager.RESULT_NO_BLUETOOTH_SERVICE); return; } BluetoothDevice device = btAdapter.getRemoteDevice(info.getIccId()); if (device == null) { Log.d(LOG_TAG, "Bluetooth device addr invalid: " + info.getIccId()); sendErrorInPendingIntent(sentIntent, SmsManager.RESULT_ERROR_NO_SERVICE); sendErrorInPendingIntent(sentIntent, SmsManager.RESULT_INVALID_BLUETOOTH_ADDRESS); return; } btAdapter.getProfileProxy(ActivityThread.currentApplication().getApplicationContext(), Loading Loading @@ -113,7 +113,7 @@ public class BtSmsInterfaceManager { public void onServiceDisconnected(int profile) { if (mMessage != null) { Log.d(LOG_TAG, "Bluetooth disconnected before sending the message"); sendErrorInPendingIntent(mSentIntent, SmsManager.RESULT_ERROR_NO_SERVICE); sendErrorInPendingIntent(mSentIntent, SmsManager.RESULT_BLUETOOTH_DISCONNECTED); mMessage = null; } } Loading src/java/com/android/internal/telephony/CommandException.java +3 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,7 @@ public class CommandException extends RuntimeException { OEM_ERROR_23, OEM_ERROR_24, OEM_ERROR_25, REQUEST_CANCELLED, } @UnsupportedAppUsage Loading Loading @@ -321,6 +322,8 @@ public class CommandException extends RuntimeException { return new CommandException(Error.OEM_ERROR_24); case RILConstants.OEM_ERROR_25: return new CommandException(Error.OEM_ERROR_25); case RILConstants.REQUEST_CANCELLED: return new CommandException(Error.REQUEST_CANCELLED); default: Rlog.e("GSM", "Unrecognized RIL errno " + ril_errno); Loading src/java/com/android/internal/telephony/SMSDispatcher.java +55 −9 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.internal.telephony; import static android.Manifest.permission.SEND_SMS_NO_CONFIRMATION; import static android.telephony.SmsManager.RESULT_ERROR_FDN_CHECK_FAILURE; import static android.telephony.SmsManager.RESULT_ERROR_GENERIC_FAILURE; import static android.telephony.SmsManager.RESULT_ERROR_LIMIT_EXCEEDED; import static android.telephony.SmsManager.RESULT_ERROR_NONE; Loading Loading @@ -340,7 +339,7 @@ public abstract class SMSDispatcher extends Handler { Rlog.d(TAG, "SMSDispatcher: EVENT_STOP_SENDING - " + "sending LIMIT_EXCEEDED error code."); } else { error = RESULT_ERROR_GENERIC_FAILURE; error = SmsManager.RESULT_UNEXPECTED_EVENT_STOP_SENDING; Rlog.e(TAG, "SMSDispatcher: EVENT_STOP_SENDING - unexpected cases."); } Loading Loading @@ -649,7 +648,8 @@ public abstract class SMSDispatcher extends Handler { private void sendSubmitPdu(SmsTracker[] trackers) { if (shouldBlockSmsForEcbm()) { Rlog.d(TAG, "Block SMS in Emergency Callback mode"); handleSmsTrackersFailure(trackers, RESULT_ERROR_NO_SERVICE, NO_ERROR_CODE); handleSmsTrackersFailure(trackers, SmsManager.RESULT_SMS_BLOCKED_DURING_EMERGENCY, NO_ERROR_CODE); } else { sendRawPdu(trackers); } Loading Loading @@ -729,16 +729,62 @@ public abstract class SMSDispatcher extends Handler { if (ar.result != null) { errorCode = ((SmsResponse)ar.result).mErrorCode; } int error = RESULT_ERROR_GENERIC_FAILURE; if (((CommandException)(ar.exception)).getCommandError() == CommandException.Error.FDN_CHECK_FAILURE) { error = RESULT_ERROR_FDN_CHECK_FAILURE; } int error = rilErrorToSmsManagerResult(((CommandException) (ar.exception)) .getCommandError()); tracker.onFailed(mContext, error, errorCode); } } } private static int rilErrorToSmsManagerResult(CommandException.Error rilError) { switch (rilError) { case RADIO_NOT_AVAILABLE: return SmsManager.RESULT_RIL_RADIO_NOT_AVAILABLE; case SMS_FAIL_RETRY: return SmsManager.RESULT_RIL_SMS_SEND_FAIL_RETRY; case NETWORK_REJECT: return SmsManager.RESULT_RIL_NETWORK_REJECT; case INVALID_STATE: return SmsManager.RESULT_RIL_INVALID_STATE; case INVALID_ARGUMENTS: return SmsManager.RESULT_RIL_INVALID_ARGUMENTS; case NO_MEMORY: return SmsManager.RESULT_RIL_NO_MEMORY; case REQUEST_RATE_LIMITED: return SmsManager.RESULT_RIL_REQUEST_RATE_LIMITED; case INVALID_SMS_FORMAT: return SmsManager.RESULT_RIL_INVALID_SMS_FORMAT; case SYSTEM_ERR: return SmsManager.RESULT_RIL_SYSTEM_ERR; case ENCODING_ERR: return SmsManager.RESULT_RIL_ENCODING_ERR; case MODEM_ERR: return SmsManager.RESULT_RIL_MODEM_ERR; case NETWORK_ERR: return SmsManager.RESULT_RIL_NETWORK_ERR; case INTERNAL_ERR: return SmsManager.RESULT_RIL_INTERNAL_ERR; case REQUEST_NOT_SUPPORTED: return SmsManager.RESULT_RIL_REQUEST_NOT_SUPPORTED; case INVALID_MODEM_STATE: return SmsManager.RESULT_RIL_INVALID_MODEM_STATE; case NETWORK_NOT_READY: return SmsManager.RESULT_RIL_NETWORK_NOT_READY; case OPERATION_NOT_ALLOWED: return SmsManager.RESULT_RIL_OPERATION_NOT_ALLOWED; case NO_RESOURCES: return SmsManager.RESULT_RIL_NO_RESOURCES; case REQUEST_CANCELLED: return SmsManager.RESULT_RIL_CANCELLED; case SIM_ABSENT: return SmsManager.RESULT_RIL_SIM_ABSENT; case FDN_CHECK_FAILURE: return SmsManager.RESULT_ERROR_FDN_CHECK_FAILURE; default: return RESULT_ERROR_GENERIC_FAILURE; } } /** * Handles outbound message when the phone is not in service. * Loading src/java/com/android/internal/telephony/SmsDispatchersController.java +1 −1 Original line number Diff line number Diff line Loading @@ -462,7 +462,7 @@ public class SmsDispatchersController extends Handler { || (map.containsKey("data") && map.containsKey("destPort"))))) { // should never come here... Rlog.e(TAG, "sendRetrySms failed to re-encode per missing fields!"); tracker.onFailed(mContext, SmsManager.RESULT_ERROR_GENERIC_FAILURE, NO_ERROR_CODE); tracker.onFailed(mContext, SmsManager.RESULT_SMS_SEND_RETRY_FAILED, NO_ERROR_CODE); return; } String scAddr = (String) map.get("scAddr"); Loading Loading
src/java/com/android/internal/telephony/BtSmsInterfaceManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -45,13 +45,13 @@ public class BtSmsInterfaceManager { BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter(); if (btAdapter == null) { // No bluetooth service on this platform? sendErrorInPendingIntent(sentIntent, SmsManager.RESULT_ERROR_NO_SERVICE); sendErrorInPendingIntent(sentIntent, SmsManager.RESULT_NO_BLUETOOTH_SERVICE); return; } BluetoothDevice device = btAdapter.getRemoteDevice(info.getIccId()); if (device == null) { Log.d(LOG_TAG, "Bluetooth device addr invalid: " + info.getIccId()); sendErrorInPendingIntent(sentIntent, SmsManager.RESULT_ERROR_NO_SERVICE); sendErrorInPendingIntent(sentIntent, SmsManager.RESULT_INVALID_BLUETOOTH_ADDRESS); return; } btAdapter.getProfileProxy(ActivityThread.currentApplication().getApplicationContext(), Loading Loading @@ -113,7 +113,7 @@ public class BtSmsInterfaceManager { public void onServiceDisconnected(int profile) { if (mMessage != null) { Log.d(LOG_TAG, "Bluetooth disconnected before sending the message"); sendErrorInPendingIntent(mSentIntent, SmsManager.RESULT_ERROR_NO_SERVICE); sendErrorInPendingIntent(mSentIntent, SmsManager.RESULT_BLUETOOTH_DISCONNECTED); mMessage = null; } } Loading
src/java/com/android/internal/telephony/CommandException.java +3 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,7 @@ public class CommandException extends RuntimeException { OEM_ERROR_23, OEM_ERROR_24, OEM_ERROR_25, REQUEST_CANCELLED, } @UnsupportedAppUsage Loading Loading @@ -321,6 +322,8 @@ public class CommandException extends RuntimeException { return new CommandException(Error.OEM_ERROR_24); case RILConstants.OEM_ERROR_25: return new CommandException(Error.OEM_ERROR_25); case RILConstants.REQUEST_CANCELLED: return new CommandException(Error.REQUEST_CANCELLED); default: Rlog.e("GSM", "Unrecognized RIL errno " + ril_errno); Loading
src/java/com/android/internal/telephony/SMSDispatcher.java +55 −9 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.internal.telephony; import static android.Manifest.permission.SEND_SMS_NO_CONFIRMATION; import static android.telephony.SmsManager.RESULT_ERROR_FDN_CHECK_FAILURE; import static android.telephony.SmsManager.RESULT_ERROR_GENERIC_FAILURE; import static android.telephony.SmsManager.RESULT_ERROR_LIMIT_EXCEEDED; import static android.telephony.SmsManager.RESULT_ERROR_NONE; Loading Loading @@ -340,7 +339,7 @@ public abstract class SMSDispatcher extends Handler { Rlog.d(TAG, "SMSDispatcher: EVENT_STOP_SENDING - " + "sending LIMIT_EXCEEDED error code."); } else { error = RESULT_ERROR_GENERIC_FAILURE; error = SmsManager.RESULT_UNEXPECTED_EVENT_STOP_SENDING; Rlog.e(TAG, "SMSDispatcher: EVENT_STOP_SENDING - unexpected cases."); } Loading Loading @@ -649,7 +648,8 @@ public abstract class SMSDispatcher extends Handler { private void sendSubmitPdu(SmsTracker[] trackers) { if (shouldBlockSmsForEcbm()) { Rlog.d(TAG, "Block SMS in Emergency Callback mode"); handleSmsTrackersFailure(trackers, RESULT_ERROR_NO_SERVICE, NO_ERROR_CODE); handleSmsTrackersFailure(trackers, SmsManager.RESULT_SMS_BLOCKED_DURING_EMERGENCY, NO_ERROR_CODE); } else { sendRawPdu(trackers); } Loading Loading @@ -729,16 +729,62 @@ public abstract class SMSDispatcher extends Handler { if (ar.result != null) { errorCode = ((SmsResponse)ar.result).mErrorCode; } int error = RESULT_ERROR_GENERIC_FAILURE; if (((CommandException)(ar.exception)).getCommandError() == CommandException.Error.FDN_CHECK_FAILURE) { error = RESULT_ERROR_FDN_CHECK_FAILURE; } int error = rilErrorToSmsManagerResult(((CommandException) (ar.exception)) .getCommandError()); tracker.onFailed(mContext, error, errorCode); } } } private static int rilErrorToSmsManagerResult(CommandException.Error rilError) { switch (rilError) { case RADIO_NOT_AVAILABLE: return SmsManager.RESULT_RIL_RADIO_NOT_AVAILABLE; case SMS_FAIL_RETRY: return SmsManager.RESULT_RIL_SMS_SEND_FAIL_RETRY; case NETWORK_REJECT: return SmsManager.RESULT_RIL_NETWORK_REJECT; case INVALID_STATE: return SmsManager.RESULT_RIL_INVALID_STATE; case INVALID_ARGUMENTS: return SmsManager.RESULT_RIL_INVALID_ARGUMENTS; case NO_MEMORY: return SmsManager.RESULT_RIL_NO_MEMORY; case REQUEST_RATE_LIMITED: return SmsManager.RESULT_RIL_REQUEST_RATE_LIMITED; case INVALID_SMS_FORMAT: return SmsManager.RESULT_RIL_INVALID_SMS_FORMAT; case SYSTEM_ERR: return SmsManager.RESULT_RIL_SYSTEM_ERR; case ENCODING_ERR: return SmsManager.RESULT_RIL_ENCODING_ERR; case MODEM_ERR: return SmsManager.RESULT_RIL_MODEM_ERR; case NETWORK_ERR: return SmsManager.RESULT_RIL_NETWORK_ERR; case INTERNAL_ERR: return SmsManager.RESULT_RIL_INTERNAL_ERR; case REQUEST_NOT_SUPPORTED: return SmsManager.RESULT_RIL_REQUEST_NOT_SUPPORTED; case INVALID_MODEM_STATE: return SmsManager.RESULT_RIL_INVALID_MODEM_STATE; case NETWORK_NOT_READY: return SmsManager.RESULT_RIL_NETWORK_NOT_READY; case OPERATION_NOT_ALLOWED: return SmsManager.RESULT_RIL_OPERATION_NOT_ALLOWED; case NO_RESOURCES: return SmsManager.RESULT_RIL_NO_RESOURCES; case REQUEST_CANCELLED: return SmsManager.RESULT_RIL_CANCELLED; case SIM_ABSENT: return SmsManager.RESULT_RIL_SIM_ABSENT; case FDN_CHECK_FAILURE: return SmsManager.RESULT_ERROR_FDN_CHECK_FAILURE; default: return RESULT_ERROR_GENERIC_FAILURE; } } /** * Handles outbound message when the phone is not in service. * Loading
src/java/com/android/internal/telephony/SmsDispatchersController.java +1 −1 Original line number Diff line number Diff line Loading @@ -462,7 +462,7 @@ public class SmsDispatchersController extends Handler { || (map.containsKey("data") && map.containsKey("destPort"))))) { // should never come here... Rlog.e(TAG, "sendRetrySms failed to re-encode per missing fields!"); tracker.onFailed(mContext, SmsManager.RESULT_ERROR_GENERIC_FAILURE, NO_ERROR_CODE); tracker.onFailed(mContext, SmsManager.RESULT_SMS_SEND_RETRY_FAILED, NO_ERROR_CODE); return; } String scAddr = (String) map.get("scAddr"); Loading