merge from open-source master
Change-Id: Ib5ea9745c2b652d64646e3e28c12e63815321ff9
This commit is contained in:
@@ -60,6 +60,10 @@
|
|||||||
<!-- Displayed when the user dialed an MMI code whose function
|
<!-- Displayed when the user dialed an MMI code whose function
|
||||||
could not be performed. This will be displayed in a toast. -->
|
could not be performed. This will be displayed in a toast. -->
|
||||||
<string name="mmiError">Connection problem or invalid MMI code.</string>
|
<string name="mmiError">Connection problem or invalid MMI code.</string>
|
||||||
|
<!-- Displayed when the user dialed an MMI code whose function
|
||||||
|
could not be performed because FDN is enabled. This will be displayed in a toast. -->
|
||||||
|
<string name="mmiFdnError">Operation is restricted to fixed dialing numbers only.</string>
|
||||||
|
|
||||||
<!-- Displayed when a phone feature such as call barring was activated. -->
|
<!-- Displayed when a phone feature such as call barring was activated. -->
|
||||||
<string name="serviceEnabled">Service was enabled.</string>
|
<string name="serviceEnabled">Service was enabled.</string>
|
||||||
<!-- Displayed in front of the list of a set of service classes
|
<!-- Displayed in front of the list of a set of service classes
|
||||||
|
|||||||
@@ -398,4 +398,6 @@ public final class SmsManager {
|
|||||||
static public final int RESULT_ERROR_NO_SERVICE = 4;
|
static public final int RESULT_ERROR_NO_SERVICE = 4;
|
||||||
/** Failed because we reached the sending queue limit. {@hide} */
|
/** Failed because we reached the sending queue limit. {@hide} */
|
||||||
static public final int RESULT_ERROR_LIMIT_EXCEEDED = 5;
|
static public final int RESULT_ERROR_LIMIT_EXCEEDED = 5;
|
||||||
|
/** Failed because FDN is enabled. {@hide} */
|
||||||
|
static public final int RESULT_ERROR_FDN_CHECK_FAILURE = 6;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,10 @@ public class CommandException extends RuntimeException {
|
|||||||
OP_NOT_ALLOWED_DURING_VOICE_CALL,
|
OP_NOT_ALLOWED_DURING_VOICE_CALL,
|
||||||
OP_NOT_ALLOWED_BEFORE_REG_NW,
|
OP_NOT_ALLOWED_BEFORE_REG_NW,
|
||||||
SMS_FAIL_RETRY,
|
SMS_FAIL_RETRY,
|
||||||
|
SIM_ABSENT,
|
||||||
|
SUBSCRIPTION_NOT_AVAILABLE,
|
||||||
|
MODE_NOT_SUPPORTED,
|
||||||
|
FDN_CHECK_FAILURE,
|
||||||
ILLEGAL_SIM_OR_ME,
|
ILLEGAL_SIM_OR_ME,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,6 +73,14 @@ public class CommandException extends RuntimeException {
|
|||||||
return new CommandException(Error.OP_NOT_ALLOWED_BEFORE_REG_NW);
|
return new CommandException(Error.OP_NOT_ALLOWED_BEFORE_REG_NW);
|
||||||
case RILConstants.SMS_SEND_FAIL_RETRY:
|
case RILConstants.SMS_SEND_FAIL_RETRY:
|
||||||
return new CommandException(Error.SMS_FAIL_RETRY);
|
return new CommandException(Error.SMS_FAIL_RETRY);
|
||||||
|
case RILConstants.SIM_ABSENT:
|
||||||
|
return new CommandException(Error.SIM_ABSENT);
|
||||||
|
case RILConstants.SUBSCRIPTION_NOT_AVAILABLE:
|
||||||
|
return new CommandException(Error.SUBSCRIPTION_NOT_AVAILABLE);
|
||||||
|
case RILConstants.MODE_NOT_SUPPORTED:
|
||||||
|
return new CommandException(Error.MODE_NOT_SUPPORTED);
|
||||||
|
case RILConstants.FDN_CHECK_FAILURE:
|
||||||
|
return new CommandException(Error.FDN_CHECK_FAILURE);
|
||||||
case RILConstants.ILLEGAL_SIM_OR_ME:
|
case RILConstants.ILLEGAL_SIM_OR_ME:
|
||||||
return new CommandException(Error.ILLEGAL_SIM_OR_ME);
|
return new CommandException(Error.ILLEGAL_SIM_OR_ME);
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -45,6 +45,11 @@ public interface RILConstants {
|
|||||||
int OP_NOT_ALLOWED_BEFORE_REG_NW = 9; /* request is not allowed before device registers to
|
int OP_NOT_ALLOWED_BEFORE_REG_NW = 9; /* request is not allowed before device registers to
|
||||||
network */
|
network */
|
||||||
int SMS_SEND_FAIL_RETRY = 10; /* send sms fail and need retry */
|
int SMS_SEND_FAIL_RETRY = 10; /* send sms fail and need retry */
|
||||||
|
int SIM_ABSENT = 11; /* ICC card is absent */
|
||||||
|
int SUBSCRIPTION_NOT_AVAILABLE = 12; /* fail to find CDMA subscription from specified
|
||||||
|
location */
|
||||||
|
int MODE_NOT_SUPPORTED = 13; /* HW does not support preferred network type */
|
||||||
|
int FDN_CHECK_FAILURE = 14; /* send operation barred error when FDN is enabled */
|
||||||
int ILLEGAL_SIM_OR_ME = 15; /* network selection failure due
|
int ILLEGAL_SIM_OR_ME = 15; /* network selection failure due
|
||||||
to wrong SIM/ME and no
|
to wrong SIM/ME and no
|
||||||
retries needed */
|
retries needed */
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ import static android.telephony.SmsManager.RESULT_ERROR_NO_SERVICE;
|
|||||||
import static android.telephony.SmsManager.RESULT_ERROR_NULL_PDU;
|
import static android.telephony.SmsManager.RESULT_ERROR_NULL_PDU;
|
||||||
import static android.telephony.SmsManager.RESULT_ERROR_RADIO_OFF;
|
import static android.telephony.SmsManager.RESULT_ERROR_RADIO_OFF;
|
||||||
import static android.telephony.SmsManager.RESULT_ERROR_LIMIT_EXCEEDED;
|
import static android.telephony.SmsManager.RESULT_ERROR_LIMIT_EXCEEDED;
|
||||||
|
import static android.telephony.SmsManager.RESULT_ERROR_FDN_CHECK_FAILURE;
|
||||||
|
|
||||||
|
|
||||||
public abstract class SMSDispatcher extends Handler {
|
public abstract class SMSDispatcher extends Handler {
|
||||||
@@ -499,13 +500,20 @@ public abstract class SMSDispatcher extends Handler {
|
|||||||
Message retryMsg = obtainMessage(EVENT_SEND_RETRY, tracker);
|
Message retryMsg = obtainMessage(EVENT_SEND_RETRY, tracker);
|
||||||
sendMessageDelayed(retryMsg, SEND_RETRY_DELAY);
|
sendMessageDelayed(retryMsg, SEND_RETRY_DELAY);
|
||||||
} else if (tracker.mSentIntent != null) {
|
} else if (tracker.mSentIntent != null) {
|
||||||
|
int error = RESULT_ERROR_GENERIC_FAILURE;
|
||||||
|
|
||||||
|
if (((CommandException)(ar.exception)).getCommandError()
|
||||||
|
== CommandException.Error.FDN_CHECK_FAILURE) {
|
||||||
|
error = RESULT_ERROR_FDN_CHECK_FAILURE;
|
||||||
|
}
|
||||||
// Done retrying; return an error to the app.
|
// Done retrying; return an error to the app.
|
||||||
try {
|
try {
|
||||||
Intent fillIn = new Intent();
|
Intent fillIn = new Intent();
|
||||||
if (ar.result != null) {
|
if (ar.result != null) {
|
||||||
fillIn.putExtra("errorCode", ((SmsResponse)ar.result).errorCode);
|
fillIn.putExtra("errorCode", ((SmsResponse)ar.result).errorCode);
|
||||||
}
|
}
|
||||||
tracker.mSentIntent.send(mContext, RESULT_ERROR_GENERIC_FAILURE, fillIn);
|
tracker.mSentIntent.send(mContext, error, fillIn);
|
||||||
|
|
||||||
} catch (CanceledException ex) {}
|
} catch (CanceledException ex) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -832,8 +832,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
|||||||
|
|
||||||
if (ar.exception != null) {
|
if (ar.exception != null) {
|
||||||
state = State.FAILED;
|
state = State.FAILED;
|
||||||
message = context.getText(
|
message = getErrorMessage(ar);
|
||||||
com.android.internal.R.string.mmiError);
|
|
||||||
|
|
||||||
phone.onMMIDone(this);
|
phone.onMMIDone(this);
|
||||||
}
|
}
|
||||||
@@ -852,6 +851,19 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
|||||||
}
|
}
|
||||||
//***** Private instance methods
|
//***** Private instance methods
|
||||||
|
|
||||||
|
private CharSequence getErrorMessage(AsyncResult ar) {
|
||||||
|
|
||||||
|
if (ar.exception instanceof CommandException) {
|
||||||
|
CommandException.Error err = ((CommandException)(ar.exception)).getCommandError();
|
||||||
|
if (err == CommandException.Error.FDN_CHECK_FAILURE) {
|
||||||
|
Log.i(LOG_TAG, "FDN_CHECK_FAILURE");
|
||||||
|
return context.getText(com.android.internal.R.string.mmiFdnError);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return context.getText(com.android.internal.R.string.mmiError);
|
||||||
|
}
|
||||||
|
|
||||||
private CharSequence getScString() {
|
private CharSequence getScString() {
|
||||||
if (sc != null) {
|
if (sc != null) {
|
||||||
if (isServiceCodeCallBarring(sc)) {
|
if (isServiceCodeCallBarring(sc)) {
|
||||||
@@ -904,6 +916,9 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
|||||||
sb.append("\n");
|
sb.append("\n");
|
||||||
sb.append(context.getText(
|
sb.append(context.getText(
|
||||||
com.android.internal.R.string.needPuk2));
|
com.android.internal.R.string.needPuk2));
|
||||||
|
} else if (err == CommandException.Error.FDN_CHECK_FAILURE) {
|
||||||
|
Log.i(LOG_TAG, "FDN_CHECK_FAILURE");
|
||||||
|
sb.append(context.getText(com.android.internal.R.string.mmiFdnError));
|
||||||
} else {
|
} else {
|
||||||
sb.append(context.getText(
|
sb.append(context.getText(
|
||||||
com.android.internal.R.string.mmiError));
|
com.android.internal.R.string.mmiError));
|
||||||
@@ -953,7 +968,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
|||||||
|
|
||||||
if (ar.exception != null) {
|
if (ar.exception != null) {
|
||||||
state = State.FAILED;
|
state = State.FAILED;
|
||||||
sb.append(context.getText(com.android.internal.R.string.mmiError));
|
sb.append(getErrorMessage(ar));
|
||||||
} else {
|
} else {
|
||||||
int clirArgs[];
|
int clirArgs[];
|
||||||
|
|
||||||
@@ -1123,7 +1138,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
|||||||
|
|
||||||
if (ar.exception != null) {
|
if (ar.exception != null) {
|
||||||
state = State.FAILED;
|
state = State.FAILED;
|
||||||
sb.append(context.getText(com.android.internal.R.string.mmiError));
|
sb.append(getErrorMessage(ar));
|
||||||
} else {
|
} else {
|
||||||
CallForwardInfo infos[];
|
CallForwardInfo infos[];
|
||||||
|
|
||||||
@@ -1175,7 +1190,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
|||||||
|
|
||||||
if (ar.exception != null) {
|
if (ar.exception != null) {
|
||||||
state = State.FAILED;
|
state = State.FAILED;
|
||||||
sb.append(context.getText(com.android.internal.R.string.mmiError));
|
sb.append(getErrorMessage(ar));
|
||||||
} else {
|
} else {
|
||||||
int[] ints = (int[])ar.result;
|
int[] ints = (int[])ar.result;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user