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;
             }