Handle null carrier config for emergency call hint

getCarrierConfig() is @Nullable. While the default implementation always return a bundle, this is not true for other carrier apps.

ShadowTelephonyManager.getCarrierConfig() now return null as default to catch this behavior.

TEST=TAP
Bug: 80629471
Test: TAP
PiperOrigin-RevId: 199327865
Change-Id: I7416bee3d5f5307919c6825fc74c26f25b6b001f
diff --git a/java/com/android/dialer/app/calllog/LegacyVoicemailNotifier.java b/java/com/android/dialer/app/calllog/LegacyVoicemailNotifier.java
index ccf12ae..31e9edc 100644
--- a/java/com/android/dialer/app/calllog/LegacyVoicemailNotifier.java
+++ b/java/com/android/dialer/app/calllog/LegacyVoicemailNotifier.java
@@ -21,6 +21,7 @@
 import android.app.PendingIntent;
 import android.content.Context;
 import android.os.Build.VERSION_CODES;
+import android.os.PersistableBundle;
 import android.support.annotation.NonNull;
 import android.support.v4.os.BuildCompat;
 import android.telecom.PhoneAccount;
@@ -98,11 +99,14 @@
         context
             .getResources()
             .getQuantityString(R.plurals.notification_voicemail_title, count, count);
-    boolean isOngoing =
-        pinnedTelephonyManager
-            .getCarrierConfig()
-            .getBoolean(CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL);
-
+    PersistableBundle config = pinnedTelephonyManager.getCarrierConfig();
+    boolean isOngoing;
+    if (config == null) {
+      isOngoing = false;
+    } else {
+      isOngoing =
+          config.getBoolean(CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL);
+    }
     String contentText;
     PendingIntent contentIntent;
     if (!TextUtils.isEmpty(voicemailNumber) && callVoicemailIntent != null) {
diff --git a/java/com/android/dialer/dialpadview/DialpadFragment.java b/java/com/android/dialer/dialpadview/DialpadFragment.java
index 8fb7533..2d0eff5 100644
--- a/java/com/android/dialer/dialpadview/DialpadFragment.java
+++ b/java/com/android/dialer/dialpadview/DialpadFragment.java
@@ -38,6 +38,7 @@
 import android.os.Build.VERSION;
 import android.os.Build.VERSION_CODES;
 import android.os.Bundle;
+import android.os.PersistableBundle;
 import android.os.Trace;
 import android.provider.Contacts.People;
 import android.provider.Contacts.Phones;
@@ -501,9 +502,9 @@
       return false;
     }
     TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
+    PersistableBundle config = telephonyManager.getCarrierConfig();
     // A delay of -1 means wifi emergency call is available/the warning is not required.
-    if (telephonyManager.getCarrierConfig().getInt(KEY_EMERGENCY_NOTIFICATION_DELAY_INT, -1)
-        == -1) {
+    if (config == null || config.getInt(KEY_EMERGENCY_NOTIFICATION_DELAY_INT, -1) == -1) {
       return false;
     }
 
diff --git a/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java b/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java
index 3b97e3d..5185b8f 100644
--- a/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java
+++ b/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java
@@ -458,6 +458,9 @@
     }
 
     PersistableBundle config = telephonyManager.getCarrierConfig();
+    if (config == null) {
+      return null;
+    }
 
     if (TextUtils.isEmpty(config.getString(CarrierConfigManager.KEY_VVM_TYPE_STRING))) {
       return null;