am 7d952644: merge from open-source master
Merge commit '7d9526445c8631f347c7bf7d944e5bb1dc35b0b5' into kraken * commit '7d9526445c8631f347c7bf7d944e5bb1dc35b0b5': Support to display message when operation is blocked due to FDN being enabled
This commit is contained in:
committed by
Android Git Automerger
commit
72a6af1ab1
@@ -60,6 +60,10 @@
|
||||
<!-- Displayed when the user dialed an MMI code whose function
|
||||
could not be performed. This will be displayed in a toast. -->
|
||||
<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. -->
|
||||
<string name="serviceEnabled">Service was enabled.</string>
|
||||
<!-- 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;
|
||||
/** Failed because we reached the sending queue limit. {@hide} */
|
||||
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_BEFORE_REG_NW,
|
||||
SMS_FAIL_RETRY,
|
||||
SIM_ABSENT,
|
||||
SUBSCRIPTION_NOT_AVAILABLE,
|
||||
MODE_NOT_SUPPORTED,
|
||||
FDN_CHECK_FAILURE,
|
||||
ILLEGAL_SIM_OR_ME,
|
||||
}
|
||||
|
||||
@@ -69,6 +73,14 @@ public class CommandException extends RuntimeException {
|
||||
return new CommandException(Error.OP_NOT_ALLOWED_BEFORE_REG_NW);
|
||||
case RILConstants.SMS_SEND_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:
|
||||
return new CommandException(Error.ILLEGAL_SIM_OR_ME);
|
||||
default:
|
||||
|
||||
@@ -45,6 +45,11 @@ public interface RILConstants {
|
||||
int OP_NOT_ALLOWED_BEFORE_REG_NW = 9; /* request is not allowed before device registers to
|
||||
network */
|
||||
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
|
||||
to wrong SIM/ME and no
|
||||
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_RADIO_OFF;
|
||||
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 {
|
||||
@@ -499,13 +500,20 @@ public abstract class SMSDispatcher extends Handler {
|
||||
Message retryMsg = obtainMessage(EVENT_SEND_RETRY, tracker);
|
||||
sendMessageDelayed(retryMsg, SEND_RETRY_DELAY);
|
||||
} 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.
|
||||
try {
|
||||
Intent fillIn = new Intent();
|
||||
if (ar.result != null) {
|
||||
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) {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -832,8 +832,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
||||
|
||||
if (ar.exception != null) {
|
||||
state = State.FAILED;
|
||||
message = context.getText(
|
||||
com.android.internal.R.string.mmiError);
|
||||
message = getErrorMessage(ar);
|
||||
|
||||
phone.onMMIDone(this);
|
||||
}
|
||||
@@ -852,6 +851,19 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
||||
}
|
||||
//***** 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() {
|
||||
if (sc != null) {
|
||||
if (isServiceCodeCallBarring(sc)) {
|
||||
@@ -904,6 +916,9 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
||||
sb.append("\n");
|
||||
sb.append(context.getText(
|
||||
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 {
|
||||
sb.append(context.getText(
|
||||
com.android.internal.R.string.mmiError));
|
||||
@@ -953,7 +968,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
||||
|
||||
if (ar.exception != null) {
|
||||
state = State.FAILED;
|
||||
sb.append(context.getText(com.android.internal.R.string.mmiError));
|
||||
sb.append(getErrorMessage(ar));
|
||||
} else {
|
||||
int clirArgs[];
|
||||
|
||||
@@ -1123,7 +1138,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
||||
|
||||
if (ar.exception != null) {
|
||||
state = State.FAILED;
|
||||
sb.append(context.getText(com.android.internal.R.string.mmiError));
|
||||
sb.append(getErrorMessage(ar));
|
||||
} else {
|
||||
CallForwardInfo infos[];
|
||||
|
||||
@@ -1175,7 +1190,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
||||
|
||||
if (ar.exception != null) {
|
||||
state = State.FAILED;
|
||||
sb.append(context.getText(com.android.internal.R.string.mmiError));
|
||||
sb.append(getErrorMessage(ar));
|
||||
} else {
|
||||
int[] ints = (int[])ar.result;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user