IMS: Fixes the crash in dialer settings.

Restricts showing up of "Call Settings" option and falls back
to default behavior if the module is not available.

Change-Id: I33486fe0b3dcd731e764a22472904c70f53386f4
CRs-Fixed: 2001524
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java
index 3c6c66c..b6dc5bc 100644
--- a/src/com/android/dialer/settings/DialerSettingsActivity.java
+++ b/src/com/android/dialer/settings/DialerSettingsActivity.java
@@ -87,7 +87,8 @@
             target.add(quickResponseSettingsHeader);
         }
 
-        if (!QtiImsExtUtils.isCarrierOneSupported()) {
+        if (!(QtiImsExtUtils.isCarrierOneSupported()
+                    && QtiImsExtUtils.isCarrierOneCallSettingsAvailable(this))) {
             Header speedDialSettingsHeader = new Header();
             Intent speedDialSettingsIntent = new Intent(this, SpeedDialListActivity.class);
             speedDialSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
@@ -106,7 +107,8 @@
         // "Call Settings" is not shown.
         boolean isPrimaryUser = isPrimaryUser();
 
-        if (QtiImsExtUtils.isCarrierOneSupported()) {
+        if (QtiImsExtUtils.isCarrierOneSupported()
+                    && QtiImsExtUtils.isCarrierOneCallSettingsAvailable(this)) {
             if (isPrimaryUser) {
                 Header callSettingsHeader =  new Header();
                 Intent callSettingsIntent = new Intent(ACTION_LAUNCH_CALL_SETTINGS);
diff --git a/src/com/android/dialer/settings/SoundSettingsFragment.java b/src/com/android/dialer/settings/SoundSettingsFragment.java
index 3736512..c00772e 100644
--- a/src/com/android/dialer/settings/SoundSettingsFragment.java
+++ b/src/com/android/dialer/settings/SoundSettingsFragment.java
@@ -142,7 +142,8 @@
             mVibrateWhenRinging.setChecked(shouldVibrateWhenRinging());
         }
 
-        if (QtiImsExtUtils.isCarrierOneSupported()) {
+        if (QtiImsExtUtils.isCarrierOneSupported()
+                && QtiImsExtUtils.isCarrierOneCallSettingsAvailable(getContext())) {
             getPreferenceScreen().removePreference(mRingtonePreference);
             mRingtonePreference = null;
         }