Merge "Fix reboot lost setting issue, retry sms when signal comes back." into mnc-dev
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 11f81ff..10ea8ce 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -274,8 +274,8 @@
}
if (ImsManager.isVolteEnabledByPlatform(this) &&
- !mPhone.getContext().getResources().getBoolean(
- com.android.internal.R.bool.config_carrier_volte_tty_supported)) {
+ !carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL)) {
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
/* tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); */
}
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index 303a384..8569693 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -200,10 +200,9 @@
mDialButton = findViewById(R.id.floating_action_button);
- CarrierConfigLoader configLoader = CarrierConfigLoader.init(this);
// Check whether we should show the onscreen "Dial" button and co.
- PersistableBundle carrierConfig =
- configLoader.getConfigForSubId(SubscriptionManager.getDefaultVoiceSubId());
+ PersistableBundle carrierConfig = PhoneGlobals.getInstance().getCarrierConfigForSubId(
+ SubscriptionManager.getDefaultVoiceSubId());
if (carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_ONSCREEN_DIAL_BUTTON_BOOL)) {
mDialButton.setOnClickListener(this);
} else {
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index e8b6e05..ea44511 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -2651,8 +2651,20 @@
}
private boolean canReadPhoneState(String callingPackage, String message) {
- mApp.enforceCallingOrSelfPermission(
- android.Manifest.permission.READ_PHONE_STATE, message);
+ boolean failReadPhoneState = false;
+ try {
+ mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
+ message);
+ } catch (SecurityException e) {
+ failReadPhoneState = true;
+ }
+ if (failReadPhoneState) {
+ mApp.enforceCallingOrSelfPermission(
+ android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, message);
+
+ // SKIP checking for run-time permission since obtained PRIVILEDGED
+ return true;
+ }
if (mAppOps.noteOp(AppOpsManager.OP_READ_PHONE_STATE, Binder.getCallingUid(),
callingPackage) != AppOpsManager.MODE_ALLOWED) {
diff --git a/src/com/android/phone/settings/AccessibilitySettingsFragment.java b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
index fdb0cd5..d5a613b 100644
--- a/src/com/android/phone/settings/AccessibilitySettingsFragment.java
+++ b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
@@ -25,6 +25,7 @@
import android.preference.PreferenceScreen;
import android.provider.Settings;
import android.telecom.TelecomManager;
+import android.telephony.CarrierConfigManager;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
@@ -98,9 +99,7 @@
public void onResume() {
super.onResume();
- if (ImsManager.isVolteEnabledByPlatform(mContext) &&
- !mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_carrier_volte_tty_supported)) {
+ if (ImsManager.isVolteEnabledByPlatform(mContext) && !getVolteTtySupported()) {
TelephonyManager tm =
(TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
@@ -111,9 +110,7 @@
public void onPause() {
super.onPause();
- if (ImsManager.isVolteEnabledByPlatform(mContext) &&
- !mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_carrier_volte_tty_supported)) {
+ if (ImsManager.isVolteEnabledByPlatform(mContext) && !getVolteTtySupported()) {
TelephonyManager tm =
(TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
@@ -138,4 +135,11 @@
}
return false;
}
+
+ private boolean getVolteTtySupported() {
+ CarrierConfigManager configManager =
+ (CarrierConfigManager) mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE);
+ return configManager.getConfig().getBoolean(
+ CarrierConfigManager.KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL);
+ }
}