Implement getUiccCardsInfo API

This is a system API for returning information about the currently
inserted UICCs and eUICCs.

Bug: 80097562
Test: manual and UiccControllerTest.java
Change-Id: I05c9600a9fbf48018f0014cbdf6b61b2ffb6ee10
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 2f3dd46..469d22f 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -78,6 +78,7 @@
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyHistogram;
 import android.telephony.TelephonyManager;
+import android.telephony.UiccCardInfo;
 import android.telephony.UiccSlotInfo;
 import android.telephony.UssdResponse;
 import android.telephony.VisualVoicemailSmsFilterSettings;
@@ -5648,6 +5649,19 @@
     }
 
     @Override
+    public UiccCardInfo[] getUiccCardsInfo() {
+        enforceReadPrivilegedPermission("getUiccCardsInfo");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            ArrayList<UiccCardInfo> cards = UiccController.getInstance().getAllUiccCardInfos();
+            return cards.toArray(new UiccCardInfo[cards.size()]);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
     public UiccSlotInfo[] getUiccSlotsInfo() {
         enforceReadPrivilegedPermission("getUiccSlotsInfo");