Merge "create getModemEnabled function in PhoneConfigurationManager"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index de1f0f3..dbb9671 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -91,7 +91,7 @@
     <protected-broadcast android:name= "android.telephony.action.NETWORK_COUNTRY_CHANGED" />
 
     <!-- For Vendor Debugging in Telephony -->
-    <protected-broadcast android:name="android.telephony.debug.action.DEBUG_EVENT" />
+    <protected-broadcast android:name="android.telephony.action.DEBUG_EVENT" />
 
     <uses-permission android:name="android.permission.BROADCAST_STICKY" />
     <uses-permission android:name="android.permission.CALL_PHONE" />
diff --git a/res/values/colors.xml b/res/values/colors.xml
index cc6f727..065515a 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -40,9 +40,9 @@
     <color name="phone_settings_actionbar_text_color">#FFFFFF</color>
     <!-- Background color of action bars.  Ensure this stays in sync with Dialer
          actionbar_background_color. -->
-    <color name="actionbar_background_color">@color/dialer_theme_color</color>
+    <color name="actionbar_background_color">#fafafa</color>
     <!-- Dark variant of the action bar color.  Ensure this stays in sync with Dialer version. -->
-    <color name="actionbar_background_color_dark">@color/dialer_theme_color_dark</color>
+    <color name="actionbar_background_color_dark">#fafafa</color>
     <!-- Color for icons in the actionbar. Ensure this stays in sync with Dialer version. -->
     <color name="actionbar_icon_color">#ffffff</color>
 
@@ -56,4 +56,11 @@
     <color name="floating_action_button_touch_tint">#80ffffff</color>
     <color name="emergency_shortcut_button_background_color">#40FFFFFF</color>
     <color name="emergency_shortcut_confirm_button_background_color">#E25142</color>
+
+    <!-- Color matches dialer settings light M2 theme.-->
+    <color name="dialer_background_color">#fafafa</color>
+    <color name="dialer_divider_color">#d8d8d8</color>
+    <color name="dialer_primary_text_color">#202124</color>
+    <color name="dialer_secondary_text_color">#5f6368</color>
+
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 38241de..23d20fc 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -202,4 +202,13 @@
 
     <!-- The text size for emergency location.-->
     <dimen name="emergency_location_text_size">13sp</dimen>
+
+    <!-- The text size for titles in settings page.-->
+    <dimen name="dialer_head1_font_size">18dp</dimen>
+
+    <!-- The text size for items in settings page.-->
+    <dimen name="dialer_primary2_font_size">16dp</dimen>
+
+    <!-- The text size for description in settings page.-->
+    <dimen name="dialer_secondary_font_size">14dp</dimen>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 6093cee..f2db63d 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -159,7 +159,6 @@
         <item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
         <item name="android:actionMenuTextColor">@color/phone_settings_actionbar_text_color</item>
         <item name="android:actionOverflowButtonStyle">@style/DialtactsActionBarOverflow</item>
-        <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
         <item name="android:windowActionBarOverlay">false</item>
         <item name="android:colorPrimaryDark">@color/actionbar_background_color_dark</item>
         <!-- Setting text. -->
@@ -169,6 +168,15 @@
     </style>
 
     <style name="DialerSettingsLight" parent="SettingsLight">
+        <!-- Action bar.-->
+        <item name="android:tint">@color/dialer_secondary_text_color</item>
+        <item name="android:windowBackground">@color/dialer_background_color</item>
+        <item name="android:actionModeBackground">@color/dialer_background_color</item>
+        <item name="android:windowLightStatusBar">true</item>
+        <!-- Navigation bar.-->
+        <item name="android:navigationBarColor">@color/dialer_background_color</item>
+        <item name="android:navigationBarDividerColor">@color/dialer_divider_color</item>
+        <item name="android:windowLightNavigationBar">true</item>
         <item name="android:colorAccent">@color/dialer_theme_color</item>
         <item name="android:dialogTheme">@style/DialerAlertDialogTheme</item>
     </style>
@@ -248,7 +256,9 @@
     <!-- Text in the action bar at the top of the screen.  Should be kept in sync with Dialer. -->
     <style name="DialtactsActionBarTitleText"
            parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
-        <item name="android:textColor">@color/phone_settings_actionbar_text_color</item>
+        <item name="android:textColor">@color/dialer_primary_text_color</item>
+        <item name="android:textSize">@dimen/dialer_head1_font_size</item>
+        <item name="android:fontFamily">sans-serif-regular</item>
     </style>
 
     <!-- Action bar overflow menu icon. -->
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 1419416..8bc8ce0 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -6581,35 +6581,39 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            // If the device has less than 2 SIM cards, indicate that multisim is restricted.
-            int numPhysicalSlots = UiccController.getInstance().getUiccSlots().length;
-            if (numPhysicalSlots < 2) {
-                loge("isMultisimSupported: requires at least 2 cards");
-                return false;
-            }
-            // Check if the hardware supports multisim functionality. If usage of multisim is not
-            // supported by the modem, indicate that it is restricted.
-            PhoneCapability staticCapability =
-                    mPhoneConfigurationManager.getStaticPhoneCapability();
-            if (staticCapability == null) {
-                loge("isMultisimSupported: no static configuration available");
-                return false;
-            }
-            if (staticCapability.logicalModemList.size() < 2) {
-                loge("isMultisimSupported: maximum number of modem is < 2");
-                return false;
-            }
-            // Check if support of multiple SIMs is restricted by carrier
-            if (mTelephonySharedPreferences.getBoolean(PREF_MULTI_SIM_RESTRICTED, false)) {
-                return false;
-            }
-
-            return true;
+            return isMultisimSupportedInternal();
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    private boolean isMultisimSupportedInternal() {
+        // If the device has less than 2 SIM cards, indicate that multisim is restricted.
+        int numPhysicalSlots = UiccController.getInstance().getUiccSlots().length;
+        if (numPhysicalSlots < 2) {
+            loge("isMultisimSupportedInternal: requires at least 2 cards");
+            return false;
+        }
+        // Check if the hardware supports multisim functionality. If usage of multisim is not
+        // supported by the modem, indicate that it is restricted.
+        PhoneCapability staticCapability =
+                mPhoneConfigurationManager.getStaticPhoneCapability();
+        if (staticCapability == null) {
+            loge("isMultisimSupportedInternal: no static configuration available");
+            return false;
+        }
+        if (staticCapability.logicalModemList.size() < 2) {
+            loge("isMultisimSupportedInternal: maximum number of modem is < 2");
+            return false;
+        }
+        // Check if support of multiple SIMs is restricted by carrier
+        if (mTelephonySharedPreferences.getBoolean(PREF_MULTI_SIM_RESTRICTED, false)) {
+            return false;
+        }
+
+        return true;
+    }
+
     /**
      * Switch configs to enable multi-sim or switch back to single-sim
      * @param numOfSims number of active sims we want to switch to
@@ -6619,7 +6623,13 @@
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
                 mApp, SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, "switchMultiSimConfig");
         final long identity = Binder.clearCallingIdentity();
+
         try {
+            //only proceed if multi-sim is not restricted
+            if (!isMultisimSupportedInternal()) {
+                loge("switchMultiSimConfig not possible. It is restricted or not supported.");
+                return;
+            }
             mPhoneConfigurationManager.switchMultiSimConfig(numOfSims);
         } finally {
             Binder.restoreCallingIdentity(identity);