Merge "Send user confirmation instead of Terminal Response"
diff --git a/src/java/com/android/internal/telephony/DataConnection.java b/src/java/com/android/internal/telephony/DataConnection.java
index 9751040..43b89d0 100644
--- a/src/java/com/android/internal/telephony/DataConnection.java
+++ b/src/java/com/android/internal/telephony/DataConnection.java
@@ -163,9 +163,11 @@
public boolean isPermanentFail() {
return (this == OPERATOR_BARRED) || (this == MISSING_UNKNOWN_APN) ||
(this == UNKNOWN_PDP_ADDRESS_TYPE) || (this == USER_AUTHENTICATION) ||
- (this == SERVICE_OPTION_NOT_SUPPORTED) ||
+ (this == ACTIVATION_REJECT_GGSN) || (this == SERVICE_OPTION_NOT_SUPPORTED) ||
(this == SERVICE_OPTION_NOT_SUBSCRIBED) || (this == NSAPI_IN_USE) ||
- (this == PROTOCOL_ERRORS);
+ (this == ONLY_IPV4_ALLOWED) || (this == ONLY_IPV6_ALLOWED) ||
+ (this == PROTOCOL_ERRORS) || (this == SIGNAL_LOST) ||
+ (this == RADIO_POWER_OFF) || (this == TETHERED_CALL_ACTIVE);
}
public boolean isEventLoggable() {
@@ -175,7 +177,9 @@
(this == SERVICE_OPTION_NOT_SUBSCRIBED) ||
(this == SERVICE_OPTION_NOT_SUPPORTED) ||
(this == SERVICE_OPTION_OUT_OF_ORDER) || (this == NSAPI_IN_USE) ||
- (this == PROTOCOL_ERRORS) ||
+ (this == ONLY_IPV4_ALLOWED) || (this == ONLY_IPV6_ALLOWED) ||
+ (this == PROTOCOL_ERRORS) || (this == SIGNAL_LOST) ||
+ (this == RADIO_POWER_OFF) || (this == TETHERED_CALL_ACTIVE) ||
(this == UNACCEPTABLE_NETWORK_PARAMETER);
}
diff --git a/src/java/com/android/internal/telephony/MccTable.java b/src/java/com/android/internal/telephony/MccTable.java
index 7d5a4e7..8a2f30e 100644
--- a/src/java/com/android/internal/telephony/MccTable.java
+++ b/src/java/com/android/internal/telephony/MccTable.java
@@ -31,7 +31,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.Locale;
-import libcore.icu.TimeZones;
+import libcore.icu.TimeZoneNames;
/**
* Mobile Country Code
@@ -105,7 +105,7 @@
} else {
locale = new Locale(entry.language, entry.iso);
}
- String[] tz = TimeZones.forLocale(locale);
+ String[] tz = TimeZoneNames.forLocale(locale);
if (tz.length == 0) return null;
return tz[0];
}
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java b/src/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
index d92488e..9a84303 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
@@ -223,6 +223,7 @@
switch (cm.getRadioState()) {
case RADIO_UNAVAILABLE:
newSS.setStateOutOfService();
+ mLteSS.setStateOutOfService();
newCellLoc.setStateInvalid();
setSignalStrengthDefaultValues();
mGotCountryCode = false;
@@ -232,6 +233,7 @@
case RADIO_OFF:
newSS.setStateOff();
+ mLteSS.setStateOff();
newCellLoc.setStateInvalid();
setSignalStrengthDefaultValues();
mGotCountryCode = false;
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
old mode 100755
new mode 100644
index a6f5aaf..5909ec2
--- a/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
@@ -832,6 +832,7 @@
switch (cm.getRadioState()) {
case RADIO_UNAVAILABLE:
newSS.setStateOutOfService();
+ mNewDataConnectionState = ServiceState.STATE_OUT_OF_SERVICE;
newCellLoc.setStateInvalid();
setSignalStrengthDefaultValues();
mGotCountryCode = false;
@@ -841,6 +842,7 @@
case RADIO_OFF:
newSS.setStateOff();
+ mNewDataConnectionState = ServiceState.STATE_POWER_OFF;
newCellLoc.setStateInvalid();
setSignalStrengthDefaultValues();
mGotCountryCode = false;
diff --git a/src/java/com/android/internal/telephony/gsm/GSMPhone.java b/src/java/com/android/internal/telephony/gsm/GSMPhone.java
index b930348..7c675d8 100644
--- a/src/java/com/android/internal/telephony/gsm/GSMPhone.java
+++ b/src/java/com/android/internal/telephony/gsm/GSMPhone.java
@@ -853,12 +853,12 @@
public String getSubscriberId() {
IccRecords r = mIccRecords.get();
- return (r != null) ? r.getIMSI() : "";
+ return (r != null) ? r.getIMSI() : null;
}
public String getLine1Number() {
IccRecords r = mIccRecords.get();
- return (r != null) ? r.getMsisdnNumber() : "";
+ return (r != null) ? r.getMsisdnNumber() : null;
}
@Override
diff --git a/src/java/com/android/internal/telephony/gsm/GsmConnection.java b/src/java/com/android/internal/telephony/gsm/GsmConnection.java
index f2659e7..9ccc0aa 100644
--- a/src/java/com/android/internal/telephony/gsm/GsmConnection.java
+++ b/src/java/com/android/internal/telephony/gsm/GsmConnection.java
@@ -89,7 +89,6 @@
static final int EVENT_WAKE_LOCK_TIMEOUT = 4;
//***** Constants
- static final int PAUSE_DELAY_FIRST_MILLIS = 100;
static final int PAUSE_DELAY_MILLIS = 3 * 1000;
static final int WAKE_LOCK_TIMEOUT_MILLIS = 60*1000;
@@ -566,24 +565,19 @@
owner.cm.sendDtmf(c, h.obtainMessage(EVENT_DTMF_DONE));
} else if (c == PhoneNumberUtils.PAUSE) {
// From TS 22.101:
-
- // "The first occurrence of the "DTMF Control Digits Separator"
- // shall be used by the ME to distinguish between the addressing
- // digits (i.e. the phone number) and the DTMF digits...."
-
- if (nextPostDialChar == 1) {
- // The first occurrence.
- // We don't need to pause here, but wait for just a bit anyway
- h.sendMessageDelayed(h.obtainMessage(EVENT_PAUSE_DONE),
- PAUSE_DELAY_FIRST_MILLIS);
- } else {
- // It continues...
- // "Upon subsequent occurrences of the separator, the UE shall
- // pause again for 3 seconds (\u00B1 20 %) before sending any
- // further DTMF digits."
- h.sendMessageDelayed(h.obtainMessage(EVENT_PAUSE_DONE),
- PAUSE_DELAY_MILLIS);
- }
+ // It continues...
+ // Upon the called party answering the UE shall send the DTMF digits
+ // automatically to the network after a delay of 3 seconds(± 20 %).
+ // The digits shall be sent according to the procedures and timing
+ // specified in 3GPP TS 24.008 [13]. The first occurrence of the
+ // "DTMF Control Digits Separator" shall be used by the ME to
+ // distinguish between the addressing digits (i.e. the phone number)
+ // and the DTMF digits. Upon subsequent occurrences of the
+ // separator,
+ // the UE shall pause again for 3 seconds (± 20 %) before sending
+ // any further DTMF digits.
+ h.sendMessageDelayed(h.obtainMessage(EVENT_PAUSE_DONE),
+ PAUSE_DELAY_MILLIS);
} else if (c == PhoneNumberUtils.WAIT) {
setPostDialState(PostDialState.WAIT);
} else if (c == PhoneNumberUtils.WILD) {
diff --git a/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java b/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
index bd13374..25ac850 100644
--- a/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
@@ -745,6 +745,7 @@
switch (cm.getRadioState()) {
case RADIO_UNAVAILABLE:
newSS.setStateOutOfService();
+ newGPRSState = ServiceState.STATE_OUT_OF_SERVICE;
newCellLoc.setStateInvalid();
setSignalStrengthDefaultValues();
mGotCountryCode = false;
@@ -754,6 +755,7 @@
case RADIO_OFF:
newSS.setStateOff();
+ newGPRSState = ServiceState.STATE_POWER_OFF;
newCellLoc.setStateInvalid();
setSignalStrengthDefaultValues();
mGotCountryCode = false;