integrate carrier id to carrier config

1. carrierConfigLoader supports loading config based on carrier
id. Include carrier id in CarrierIdentifer
2. carrier config cache named after carrier id instead of iccid+gid
3. include carrierid in action_carrier_config_loaded broadcast

Bug: 110559381
Test: telephony test
Change-Id: Icebed798c7cfbd2b067640be8627cd36510521a9
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index ce805ed..e824fee 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -99,6 +99,7 @@
 import com.android.internal.telephony.CallManager;
 import com.android.internal.telephony.CallStateException;
 import com.android.internal.telephony.CarrierInfoManager;
+import com.android.internal.telephony.CarrierResolver;
 import com.android.internal.telephony.CellNetworkScanResult;
 import com.android.internal.telephony.CommandException;
 import com.android.internal.telephony.DefaultPhoneNotifier;
@@ -2092,6 +2093,20 @@
         }
     }
 
+    @Override
+    public int getCarrierIdFromMccMnc(int slotIndex, String mccmnc) {
+        final Phone phone = PhoneFactory.getPhone(slotIndex);
+        if (phone == null) {
+            return TelephonyManager.UNKNOWN_CARRIER_ID;
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            return CarrierResolver.getCarrierIdFromMccMnc(phone.getContext(), mccmnc);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
     //
     // Internal helper methods.
     //