Merge 960fb40fb392b8ef9a976b90f3f995c36cd15088 on remote branch

Change-Id: I6a06716d93360d32a6c2083c9d1b9ba94d58d4ca
diff --git a/extphone/src/com/qti/extphone/ExtPhoneCallbackBase.java b/extphone/src/com/qti/extphone/ExtPhoneCallbackBase.java
index 1aebe8d..5154e0d 100644
--- a/extphone/src/com/qti/extphone/ExtPhoneCallbackBase.java
+++ b/extphone/src/com/qti/extphone/ExtPhoneCallbackBase.java
@@ -188,4 +188,14 @@
     public void onDdsSwitchRecommendation(int slotId,
             int recommendedSlotId) throws RemoteException {
     }
+
+    @Override
+    public void onDataDeactivateDelayTime(int slotId, long delayTimeMilliSecs)
+            throws RemoteException {
+    }
+
+    @Override
+    public void onEpdgOverCellularDataSupported(int slotId, boolean support)
+            throws RemoteException {
+    }
 }
diff --git a/extphone/src/com/qti/extphone/ExtTelephonyManager.java b/extphone/src/com/qti/extphone/ExtTelephonyManager.java
index 50d185b..55e55d6 100644
--- a/extphone/src/com/qti/extphone/ExtTelephonyManager.java
+++ b/extphone/src/com/qti/extphone/ExtTelephonyManager.java
@@ -848,6 +848,21 @@
         return token;
     }
 
+    public boolean isEpdgOverCellularDataSupported(int slot) throws RemoteException {
+        boolean support = false;
+        if (!isServiceConnected()) {
+            Log.e(LOG_TAG, "service not connected!");
+            return support;
+        }
+        try {
+            support = mExtTelephonyService.isEpdgOverCellularDataSupported(slot);
+        } catch(RemoteException e) {
+            Log.e(LOG_TAG, "isEpdgOverCellularDataSupported, remote exception");
+            e.printStackTrace();
+        }
+        return support;
+    }
+
     public Client registerCallback(String packageName, IExtPhoneCallback callback) {
         Client client = null;
         if (!isServiceConnected()) {
diff --git a/extphone/src/com/qti/extphone/IExtPhone.aidl b/extphone/src/com/qti/extphone/IExtPhone.aidl
index 8e72fa2..c4c2430 100644
--- a/extphone/src/com/qti/extphone/IExtPhone.aidl
+++ b/extphone/src/com/qti/extphone/IExtPhone.aidl
@@ -369,4 +369,12 @@
      */
      Token sendUserPreferenceForDataDuringVoiceCall(int slotId,
              boolean userPreference, in Client client);
+
+    /**
+     * Request for epdg over cellular data (cellular IWLAN) feature is supported or not.
+     *
+     * @param - slotId slot ID
+     * @return - boolean value indicates if the feature is supported or not
+     */
+     boolean isEpdgOverCellularDataSupported(int slotId);
 }
diff --git a/extphone/src/com/qti/extphone/IExtPhoneCallback.aidl b/extphone/src/com/qti/extphone/IExtPhoneCallback.aidl
index bcebb82..1b20d3e 100644
--- a/extphone/src/com/qti/extphone/IExtPhoneCallback.aidl
+++ b/extphone/src/com/qti/extphone/IExtPhoneCallback.aidl
@@ -219,4 +219,20 @@
      * @param - recommendedSlotId slot ID to which DDS has to be switched.
      */
     void onDdsSwitchRecommendation(int slotId, int recommendedSlotId);
+
+    /**
+     * Indiactes the delay time to deactivate default data pdn when cellular IWLAN feature is ON.
+     * @param - delayTimeMilliSecs delayTimeMilliSecs>0 indicates one or more pdns
+     *           are present on cellular IWLAN RAT and wait for delayTimeMilliSecs
+     *           to deactivate default data pdn if required.
+     *           delayTimeMilliSecs<=0 indicates no pdns are available on cellular IWLAN RAT.
+     */
+    void onDataDeactivateDelayTime(int slotId, long delayTimeMilliSecs);
+
+    /**
+     * Indicates epdg over cellular data (cellular IWLAN) feature is supported or not.
+     *
+     * @param - support support indicates if the feature is supported or not.
+     */
+    void onEpdgOverCellularDataSupported(int slotId, boolean support);
 }