Check for null config from CarrierConfigManager.

CarrierConfigManager can return a null bundle if an error occurred (e.g.
RemoteException) We received dozens of reports indicating that had
occurred at this call site, but they did not include logs explaining why
CarrierConfigManager had returned null. (see bug)

Bug: 22230051
Change-Id: I11f5ed44696d0ef8465e33bbed7abfb8b354d40a
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java
index f8f2bf6..3cb39f0 100644
--- a/src/java/com/android/ims/ImsManager.java
+++ b/src/java/com/android/ims/ImsManager.java
@@ -22,6 +22,7 @@
 import android.content.Intent;
 import android.os.IBinder;
 import android.os.Message;
+import android.os.PersistableBundle;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.SystemProperties;
@@ -788,8 +789,12 @@
     private static boolean getBooleanCarrierConfig(Context context, String key) {
         CarrierConfigManager configManager = (CarrierConfigManager) context.getSystemService(
                 Context.CARRIER_CONFIG_SERVICE);
+        PersistableBundle b = null;
         if (configManager != null) {
-            return configManager.getConfig().getBoolean(key);
+            b = configManager.getConfig();
+        }
+        if (b != null) {
+            return b.getBoolean(key);
         } else {
             // Return static default defined in CarrierConfigManager.
             return CarrierConfigManager.getDefaultConfig().getBoolean(key);