Merge "Revert "Fix UiccSlotInfo.getCardId for inactive eUICC"" into qt-dev
diff --git a/ecc/input/eccdata.txt b/ecc/input/eccdata.txt
index 403cad7..bf5d92c 100644
--- a/ecc/input/eccdata.txt
+++ b/ecc/input/eccdata.txt
@@ -600,8 +600,11 @@
countries {
iso_code: "DE"
eccs {
- phone_number: "112"
+ phone_number: "110"
types: POLICE
+ }
+ eccs {
+ phone_number: "112"
types: AMBULANCE
types: FIRE
}
diff --git a/ecc/output/eccdata b/ecc/output/eccdata
index 679bc36..2b9007a 100644
--- a/ecc/output/eccdata
+++ b/ecc/output/eccdata
Binary files differ
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index dbc0af4..39c6d75 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -622,7 +622,7 @@
<string name="preference_category_ringtone" msgid="5197960752529332721">"रिंगटोन और कंपन"</string>
<string name="pstn_connection_service_label" msgid="1743245930577325900">"अंतर्निहित सिम कार्ड"</string>
<string name="enable_video_calling_title" msgid="7237253660669000899">"वीडियो कॉलिंग चालू करें"</string>
- <string name="enable_video_calling_dialog_msg" msgid="8948186136957417948">"वीडियो कॉलिंग चालू करने के लिए, आपको नेटवर्क सेटिंग में उन्नत 4G LTE मोड सक्षम करना होगा."</string>
+ <string name="enable_video_calling_dialog_msg" msgid="8948186136957417948">"वीडियो कॉलिंग चालू करने के लिए, आपको नेटवर्क सेटिंग में बेहतर 4G LTE मोड सक्षम करना होगा."</string>
<string name="enable_video_calling_dialog_settings" msgid="576528473599603249">"नेटवर्क सेटिंग"</string>
<string name="enable_video_calling_dialog_close" msgid="7411471282167927991">"बंद करें"</string>
<string name="sim_label_emergency_calls" msgid="4847699229529306397">"आपातकालीन कॉल"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 020f3da..5400ad4 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -592,12 +592,12 @@
<string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"डेटा कनेक्शन अक्षम केले"</string>
<string name="phone_in_ecm_notification_complete_time" msgid="7730376844178948351">"<xliff:g id="COMPLETETIME">%s</xliff:g> पर्यंत कोणतेही डेटा कनेक्शन नाही"</string>
<plurals name="alert_dialog_exit_ecm" formatted="false" msgid="7179911675595441201">
- <item quantity="one">फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनिटासाठी आणीबाणी कॉलबॅक मोडमध्ये राहील. या मोडमध्ये असताना डेटा कनेक्शन वापरणारे कोणतेही अॅप्लिकेशन वापरले जाऊ शकत नाहीत. तुम्ही आता बाहेर पडू इच्छिता?</item>
<item quantity="other">फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनिटांसाठी आणीबाणी कॉलबॅक मोडमध्ये राहील. या मोडमध्ये असताना डेटा कनेक्शन वापरणारे कोणतेही अॅप्लिकेशन वापरले जाऊ शकत नाहीत. तुम्ही आता बाहेर पडू इच्छिता?</item>
+ <item quantity="one">फोन <xliff:g id="COUNT_0">%s</xliff:g> मिनिटासाठी आणीबाणी कॉलबॅक मोडमध्ये राहील. या मोडमध्ये असताना डेटा कनेक्शन वापरणारे कोणतेही अॅप वापरले जाऊ शकत नाहीत. तुम्ही आता बाहेर पडू इच्छिता?</item>
</plurals>
<plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="8042973425225093895">
- <item quantity="one">आणीबाणी कॉलबॅक मोडमध्ये असताना निवडलेली क्रिया उपलब्ध नसते. फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनिटासाठी या मोडमध्ये राहील. तुम्ही आता बाहेर पडू इच्छिता?</item>
<item quantity="other">आणीबाणी कॉलबॅक मोडमध्ये असताना निवडलेली क्रिया उपलब्ध नसते. फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनिटांसाठी या मोडमध्ये राहील. तुम्ही आता बाहेर पडू इच्छिता?</item>
+ <item quantity="one">आणीबाणी कॉलबॅक मोडमध्ये असताना निवडलेली क्रिया उपलब्ध नसते. फोन <xliff:g id="COUNT_0">%s</xliff:g> मिनिटासाठी या मोडमध्ये राहील. तुम्ही आता बाहेर पडू इच्छिता?</item>
</plurals>
<string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"आणीबाणीच्या कॉलमध्ये असताना निवडलेली क्रिया उपलब्ध नसते."</string>
<string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"आणीबाणी कॉलबॅक मोडमधून बाहेर पडत आहे"</string>
@@ -762,8 +762,8 @@
<string name="supp_service_outgoing_calls_barred" msgid="1962644621292054081">"जाणारे कॉल अवरोधित केले."</string>
<string name="supp_service_call_forwarding_active" msgid="1253134771682248735">"कॉल फॉरवर्ड होत आहे."</string>
<string name="supp_service_additional_call_forwarded" msgid="5228624725214727315">"अतिरिक्त कॉल फॉरवर्ड केला."</string>
- <string name="supp_service_additional_ect_connected" msgid="6396964292513707102">"भडक कॉल ट्रांसफर करणे पूर्ण झाले."</string>
- <string name="supp_service_additional_ect_connecting" msgid="5443373059716058480">"भडक कॉल ट्रांसफर होत आहे."</string>
+ <string name="supp_service_additional_ect_connected" msgid="6396964292513707102">"भडक कॉल ट्रान्सफर करणे पूर्ण झाले."</string>
+ <string name="supp_service_additional_ect_connecting" msgid="5443373059716058480">"भडक कॉल ट्रान्सफर होत आहे."</string>
<string name="supp_service_call_on_hold" msgid="1478976782361795422">"कॉल होल्डवर आहे."</string>
<string name="supp_service_call_resumed" msgid="1656475289958070674">"कॉल पुन्हा सुरू झाला."</string>
<string name="supp_service_deflected_call" msgid="138970419873492166">"कॉल वळवला."</string>
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 8299d86..e2e30ec 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -316,12 +316,17 @@
case EVENT_BIND_DEFAULT_TIMEOUT:
case EVENT_FETCH_DEFAULT_TIMEOUT:
{
- // If a ResponseReceiver callback is in the queue when this happens, we will
- // unbind twice and throw an exception.
- mContext.unbindService(mServiceConnection[phoneId]);
- removeMessages(EVENT_FETCH_DEFAULT_TIMEOUT);
- broadcastConfigChangedIntent(phoneId);
loge("bind/fetch time out from " + mPlatformCarrierConfigPackage);
+ removeMessages(EVENT_FETCH_DEFAULT_TIMEOUT);
+ // If we attempted to bind to the app, but the service connection is null due to
+ // the race condition that clear config event happens before bind/fetch complete
+ // then config was cleared while we were waiting and we should not continue.
+ if (mServiceConnection[phoneId] != null) {
+ // If a ResponseReceiver callback is in the queue when this happens, we will
+ // unbind twice and throw an exception.
+ mContext.unbindService(mServiceConnection[phoneId]);
+ broadcastConfigChangedIntent(phoneId);
+ }
notifySubscriptionInfoUpdater(phoneId);
break;
}
@@ -441,16 +446,20 @@
case EVENT_BIND_CARRIER_TIMEOUT:
case EVENT_FETCH_CARRIER_TIMEOUT:
{
- // If a ResponseReceiver callback is in the queue when this happens, we will
- // unbind twice and throw an exception.
- mContext.unbindService(mServiceConnection[phoneId]);
- removeMessages(EVENT_FETCH_CARRIER_TIMEOUT);
- broadcastConfigChangedIntent(phoneId);
loge("bind/fetch from carrier app timeout");
+ removeMessages(EVENT_FETCH_CARRIER_TIMEOUT);
+ // If we attempted to bind to the app, but the service connection is null due to
+ // the race condition that clear config event happens before bind/fetch complete
+ // then config was cleared while we were waiting and we should not continue.
+ if (mServiceConnection[phoneId] != null) {
+ // If a ResponseReceiver callback is in the queue when this happens, we will
+ // unbind twice and throw an exception.
+ mContext.unbindService(mServiceConnection[phoneId]);
+ broadcastConfigChangedIntent(phoneId);
+ }
notifySubscriptionInfoUpdater(phoneId);
break;
}
-
case EVENT_FETCH_CARRIER_DONE:
{
// If we attempted to bind to the app, but the service connection is null, then
diff --git a/src/com/android/phone/EmergencyAssistanceHelper.java b/src/com/android/phone/EmergencyAssistanceHelper.java
index b4e4421..1bf212e 100644
--- a/src/com/android/phone/EmergencyAssistanceHelper.java
+++ b/src/com/android/phone/EmergencyAssistanceHelper.java
@@ -29,7 +29,6 @@
import android.os.Process;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
import android.util.Log;
import com.android.internal.util.CollectionUtils;
@@ -51,10 +50,6 @@
public static String getIntentAction(Context context) {
String action = context.getResources().getString(R.string.config_emergency_app_intent);
if (!action.isEmpty()) {
- // TODO: remove feature flag and this temporary intent once Emergency app was replaced.
- if (!FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SAFETY_HUB)) {
- return "com.android.emergency.action.EMERGENCY_ASSISTANCE";
- }
return action;
}
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index de3fffc..942c1e2 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -569,9 +569,8 @@
if (DBG) log("showDataDisconnectedRoaming()...");
// "Mobile network settings" screen / dialog
- Intent intent = new Intent(mContext, com.android.phone.MobileNetworkSettings.class);
+ Intent intent = new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS);
intent.putExtra(Settings.EXTRA_SUB_ID, subId);
- intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(mContext, subId, intent, 0);
final CharSequence contentText = mContext.getText(R.string.roaming_reenable_message);
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 18911ef..495bee3 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -172,6 +172,7 @@
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.NoSuchElementException;
import java.util.Set;
/**
@@ -248,6 +249,8 @@
private static final int EVENT_REQUEST_CELL_INFO_UPDATE_DONE = 67;
private static final int CMD_REQUEST_ENABLE_MODEM = 68;
private static final int EVENT_ENABLE_MODEM_DONE = 69;
+ private static final int CMD_GET_MODEM_STATUS = 70;
+ private static final int EVENT_GET_MODEM_STATUS_DONE = 71;
// Parameters of select command.
private static final int SELECT_COMMAND = 0xA4;
@@ -1117,10 +1120,42 @@
ar = (AsyncResult) msg.obj;
request = (MainThreadRequest) ar.userObj;
request.result = (ar.exception == null);
+ int phoneId = request.phone.getPhoneId();
//update the cache as modem status has changed
- mPhoneConfigurationManager.addToPhoneStatusCache(
- request.phone.getPhoneId(), msg.arg1 == 1);
- updateModemStateMetrics();
+ if ((boolean) request.result) {
+ mPhoneConfigurationManager.addToPhoneStatusCache(phoneId, msg.arg1 == 1);
+ updateModemStateMetrics();
+ } else {
+ Log.e(LOG_TAG, msg.what + " failure. Not updating modem status."
+ + ar.exception);
+ }
+ notifyRequester(request);
+ break;
+ case CMD_GET_MODEM_STATUS:
+ request = (MainThreadRequest) msg.obj;
+ onCompleted = obtainMessage(EVENT_GET_MODEM_STATUS_DONE, request);
+ PhoneConfigurationManager.getInstance()
+ .getPhoneStatusFromModem(request.phone, onCompleted);
+ break;
+ case EVENT_GET_MODEM_STATUS_DONE:
+ ar = (AsyncResult) msg.obj;
+ request = (MainThreadRequest) ar.userObj;
+ int id = request.phone.getPhoneId();
+ if (ar.exception == null && ar.result != null) {
+ request.result = ar.result;
+ //update the cache as modem status has changed
+ mPhoneConfigurationManager.addToPhoneStatusCache(id,
+ (boolean) request.result);
+ } else {
+ // Return true if modem status cannot be retrieved. For most cases,
+ // modem status is on. And for older version modems, GET_MODEM_STATUS
+ // and disable modem are not supported. Modem is always on.
+ // TODO: this should be fixed in R to support a third
+ // status UNKNOWN b/131631629
+ request.result = true;
+ Log.e(LOG_TAG, msg.what + " failure. Not updating modem status."
+ + ar.exception);
+ }
notifyRequester(request);
break;
default:
@@ -6821,7 +6856,11 @@
final long identity = Binder.clearCallingIdentity();
try {
- return PhoneConfigurationManager.getInstance().getPhoneStatus(phone);
+ try {
+ return mPhoneConfigurationManager.getPhoneStatusFromCache(phone.getPhoneId());
+ } catch (NoSuchElementException ex) {
+ return (Boolean) sendRequest(CMD_GET_MODEM_STATUS, null, phone, null);
+ }
} finally {
Binder.restoreCallingIdentity(identity);
}