Add EID to IccSlotStatus

Test: make
Bug: 116656814
Change-Id: Iaa568607672550d8b5c861e2fe5ce8286087598d
diff --git a/Android.bp b/Android.bp
index 0fba2d1..4efe367 100644
--- a/Android.bp
+++ b/Android.bp
@@ -52,6 +52,7 @@
         "android.hardware.radio-V1.2-java",
         "android.hardware.radio-V1.3-java",
         "android.hardware.radio.config-V1.0-java",
+        "android.hardware.radio.config-V1.1-java",
         "android.hardware.radio.deprecated-V1.0-java",
         "android.hidl.base-V1.0-java",
     ],
diff --git a/src/java/com/android/internal/telephony/RadioConfig.java b/src/java/com/android/internal/telephony/RadioConfig.java
index c258f6c..37e2d6a 100644
--- a/src/java/com/android/internal/telephony/RadioConfig.java
+++ b/src/java/com/android/internal/telephony/RadioConfig.java
@@ -24,7 +24,6 @@
 import android.hardware.radio.V1_0.RadioResponseInfo;
 import android.hardware.radio.V1_0.RadioResponseType;
 import android.hardware.radio.config.V1_0.IRadioConfig;
-import android.hardware.radio.config.V1_0.SimSlotStatus;
 import android.net.ConnectivityManager;
 import android.os.AsyncResult;
 import android.os.Handler;
@@ -317,9 +316,9 @@
     }
 
     static ArrayList<IccSlotStatus> convertHalSlotStatus(
-            ArrayList<SimSlotStatus> halSlotStatusList) {
+            ArrayList<android.hardware.radio.config.V1_0.SimSlotStatus> halSlotStatusList) {
         ArrayList<IccSlotStatus> response = new ArrayList<IccSlotStatus>(halSlotStatusList.size());
-        for (SimSlotStatus slotStatus : halSlotStatusList) {
+        for (android.hardware.radio.config.V1_0.SimSlotStatus slotStatus : halSlotStatusList) {
             IccSlotStatus iccSlotStatus = new IccSlotStatus();
             iccSlotStatus.setCardState(slotStatus.cardState);
             iccSlotStatus.setSlotState(slotStatus.slotState);
@@ -331,6 +330,22 @@
         return response;
     }
 
+    static ArrayList<IccSlotStatus> convertHalSlotStatus_1_1(
+            ArrayList<android.hardware.radio.config.V1_1.SimSlotStatus> halSlotStatusList) {
+        ArrayList<IccSlotStatus> response = new ArrayList<IccSlotStatus>(halSlotStatusList.size());
+        for (android.hardware.radio.config.V1_1.SimSlotStatus slotStatus : halSlotStatusList) {
+            IccSlotStatus iccSlotStatus = new IccSlotStatus();
+            iccSlotStatus.setCardState(slotStatus.base.cardState);
+            iccSlotStatus.setSlotState(slotStatus.base.slotState);
+            iccSlotStatus.logicalSlotIndex = slotStatus.base.logicalSlotId;
+            iccSlotStatus.atr = slotStatus.base.atr;
+            iccSlotStatus.iccid = slotStatus.base.iccid;
+            iccSlotStatus.eid = slotStatus.eid;
+            response.add(iccSlotStatus);
+        }
+        return response;
+    }
+
     private static void logd(String log) {
         Rlog.d(TAG, log);
     }
diff --git a/src/java/com/android/internal/telephony/RadioConfigIndication.java b/src/java/com/android/internal/telephony/RadioConfigIndication.java
index 686282c..c064706 100644
--- a/src/java/com/android/internal/telephony/RadioConfigIndication.java
+++ b/src/java/com/android/internal/telephony/RadioConfigIndication.java
@@ -17,7 +17,6 @@
 package com.android.internal.telephony;
 
 import android.hardware.radio.config.V1_0.IRadioConfigIndication;
-import android.hardware.radio.config.V1_0.SimSlotStatus;
 import android.os.AsyncResult;
 import android.telephony.Rlog;
 
@@ -39,7 +38,8 @@
     /**
      * Unsolicited indication for slot status changed
      */
-    public void simSlotsStatusChanged(int indicationType, ArrayList<SimSlotStatus> slotStatus) {
+    public void simSlotsStatusChanged(int indicationType,
+            ArrayList<android.hardware.radio.config.V1_0.SimSlotStatus> slotStatus) {
         ArrayList<IccSlotStatus> ret = RadioConfig.convertHalSlotStatus(slotStatus);
         Rlog.d(TAG, "[UNSL]< " + " UNSOL_SIM_SLOT_STATUS_CHANGED " + ret.toString());
         if (mRadioConfig.mSimSlotStatusRegistrant != null) {
@@ -47,4 +47,17 @@
                     new AsyncResult(null, ret, null));
         }
     }
+
+    /**
+     * Unsolicited indication for slot status changed
+     */
+    public void simSlotsStatusChanged_1_1(int indicationType,
+            ArrayList<android.hardware.radio.config.V1_1.SimSlotStatus> slotStatus) {
+        ArrayList<IccSlotStatus> ret = RadioConfig.convertHalSlotStatus_1_1(slotStatus);
+        Rlog.d(TAG, "[UNSL]< " + " UNSOL_SIM_SLOT_STATUS_CHANGED " + ret.toString());
+        if (mRadioConfig.mSimSlotStatusRegistrant != null) {
+            mRadioConfig.mSimSlotStatusRegistrant.notifyRegistrant(
+                    new AsyncResult(null, ret, null));
+        }
+    }
 }
diff --git a/src/java/com/android/internal/telephony/RadioConfigResponse.java b/src/java/com/android/internal/telephony/RadioConfigResponse.java
index 8177b2d..b1248b7 100644
--- a/src/java/com/android/internal/telephony/RadioConfigResponse.java
+++ b/src/java/com/android/internal/telephony/RadioConfigResponse.java
@@ -18,8 +18,7 @@
 
 import android.hardware.radio.V1_0.RadioError;
 import android.hardware.radio.V1_0.RadioResponseInfo;
-import android.hardware.radio.config.V1_0.IRadioConfigResponse;
-import android.hardware.radio.config.V1_0.SimSlotStatus;
+import android.hardware.radio.config.V1_1.IRadioConfigResponse;
 import android.telephony.Rlog;
 
 import com.android.internal.telephony.uicc.IccSlotStatus;
@@ -41,7 +40,7 @@
      * Response function for IRadioConfig.getSimSlotsStatus().
      */
     public void getSimSlotsStatusResponse(RadioResponseInfo responseInfo,
-                                          ArrayList<SimSlotStatus> slotStatus) {
+            ArrayList<android.hardware.radio.config.V1_0.SimSlotStatus> slotStatus) {
         RILRequest rr = mRadioConfig.processResponse(responseInfo);
 
         if (rr != null) {
@@ -64,6 +63,31 @@
     }
 
     /**
+     * Response function for IRadioConfig.getSimSlotsStatus().
+     */
+    public void getSimSlotsStatusResponse_1_1(RadioResponseInfo responseInfo,
+            ArrayList<android.hardware.radio.config.V1_1.SimSlotStatus> slotStatus) {
+        RILRequest rr = mRadioConfig.processResponse(responseInfo);
+
+        if (rr != null) {
+            ArrayList<IccSlotStatus> ret = RadioConfig.convertHalSlotStatus_1_1(slotStatus);
+            if (responseInfo.error == RadioError.NONE) {
+                // send response
+                RadioResponse.sendMessageResponse(rr.mResult, ret);
+                Rlog.d(TAG, rr.serialString() + "< "
+                        + mRadioConfig.requestToString(rr.mRequest) + " " + ret.toString());
+            } else {
+                rr.onError(responseInfo.error, ret);
+                Rlog.e(TAG, rr.serialString() + "< "
+                        + mRadioConfig.requestToString(rr.mRequest) + " error "
+                        + responseInfo.error);
+            }
+        } else {
+            Rlog.e(TAG, "getSimSlotsStatusResponse_1_1: Error " + responseInfo.toString());
+        }
+    }
+
+    /**
      * Response function for IRadioConfig.setSimSlotsMapping().
      */
     public void setSimSlotsMappingResponse(RadioResponseInfo responseInfo) {
diff --git a/src/java/com/android/internal/telephony/uicc/IccSlotStatus.java b/src/java/com/android/internal/telephony/uicc/IccSlotStatus.java
index 5fdd322..43f525e 100644
--- a/src/java/com/android/internal/telephony/uicc/IccSlotStatus.java
+++ b/src/java/com/android/internal/telephony/uicc/IccSlotStatus.java
@@ -34,6 +34,7 @@
     public int        logicalSlotIndex;
     public String     atr;
     public String     iccid;
+    public String     eid;
 
     /**
      * Set the cardState according to the input state.
@@ -80,7 +81,8 @@
                 .append(slotState).append(",")
                 .append("logicalSlotIndex=").append(logicalSlotIndex).append(",")
                 .append("atr=").append(atr).append(",iccid=")
-                .append(SubscriptionInfo.givePrintableIccid(iccid));
+                .append(SubscriptionInfo.givePrintableIccid(iccid)).append(",")
+                .append("eid=").append(eid);
 
         sb.append("}");
         return sb.toString();
@@ -100,7 +102,8 @@
                 && (slotState == that.slotState)
                 && (logicalSlotIndex == that.logicalSlotIndex)
                 && (TextUtils.equals(atr, that.atr))
-                && (TextUtils.equals(iccid, that.iccid));
+                && (TextUtils.equals(iccid, that.iccid))
+                && (TextUtils.equals(eid, that.eid));
     }
 
 }