Disable shortcuts per ecc list status.
Disable emergency dialer shortcuts if ril.ecclist is inconsistent with the
internal table.
Test: manual
Bug: 118406849
Bug: 118407109
Bug: 118407162
Bug: 118408817
Bug: 118407047
Change-Id: Ib5253efe6181dbd634335f48dc9a3ce5fea6c92c
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index 1619aa1..cb12cbb 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -357,10 +357,14 @@
CarrierConfigManager.KEY_SUPPORT_EMERGENCY_DIALER_SHORTCUT_BOOL);
Log.d(LOG_TAG, "Is the carrier supported: " + isSupport);
TelephonyManager tm = getSystemService(TelephonyManager.class);
- if (isSupport && !TextUtils.isEmpty(tm.getNetworkCountryIso())) {
- mAreEmergencyDialerShortcutsEnabled = true;
- } else {
- mAreEmergencyDialerShortcutsEnabled = false;
+ String countryIso = tm.getNetworkCountryIso();
+ mAreEmergencyDialerShortcutsEnabled = false;
+ if (isSupport && !TextUtils.isEmpty(countryIso)) {
+ if (EccInfoHelper.isCountryEccInfoAvailable(this, countryIso)) {
+ mAreEmergencyDialerShortcutsEnabled = true;
+ } else {
+ Log.d(LOG_TAG, "ECC info is unavailable. Disable emergency dialer shortcut.");
+ }
}
Log.d(LOG_TAG, "Enable emergency dialer shortcut: "
+ mAreEmergencyDialerShortcutsEnabled);
@@ -458,7 +462,7 @@
mEmergencyInfoGroup = (EmergencyInfoGroup) findViewById(R.id.emergency_info_button);
if (mAreEmergencyDialerShortcutsEnabled) {
- mEccInfoHelper = new EccInfoHelper(new IsoToEccProtobufRepository());
+ mEccInfoHelper = new EccInfoHelper(IsoToEccProtobufRepository.getInstance());
setupEmergencyShortcutsView();
}
}
@@ -928,7 +932,7 @@
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int ringerMode = audioManager.getRingerMode();
if ((ringerMode == AudioManager.RINGER_MODE_SILENT)
- || (ringerMode == AudioManager.RINGER_MODE_VIBRATE)) {
+ || (ringerMode == AudioManager.RINGER_MODE_VIBRATE)) {
return;
}
@@ -1054,8 +1058,8 @@
boolean isCellAvailable =
ss.getRilVoiceRadioTechnology() != RIL_RADIO_TECHNOLOGY_UNKNOWN;
Log.i(LOG_TAG, "showWfcWarningTask: isWfcAvailable=" + isWfcAvailable
- + " isCellAvailable=" + isCellAvailable
- + "(rat=" + ss.getRilVoiceRadioTechnology() + ")");
+ + " isCellAvailable=" + isCellAvailable
+ + "(rat=" + ss.getRilVoiceRadioTechnology() + ")");
return isWfcAvailable && !isCellAvailable;
}