Added Cellular Data for Multi-Sim Data Usage

+ Bug Fix: SimSettings would crash if a SIM was not in the first slot.

Change-Id: Iee75ea78dde72dc7d2d588caff1ddd451347a8f5
diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index ba0d24d..6ee0ef0 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -941,7 +941,8 @@
             mMobileDataEnabled = null;
         } else {
             //SUB SELECT
-            isEnable = mTelephonyManager.getDataEnabled() && isMobileDataAvailable(subId);
+            isEnable = mTelephonyManager.getDataEnabled()
+                && (subId == SubscriptionManager.getDefaultDataSubId());
         }
         return isEnable;
     }
@@ -2594,8 +2595,21 @@
         }
 
         //SUB SELECT
-        private boolean isMobileDataAvailable(int subId) {
+        private boolean isMobileDataAvailable(long subId) {
             int[] subIds = SubscriptionManager.getSubId(PhoneConstants.SUB1);
-            return subIds[0] == subId;
+            if (subIds != null && subIds[0] == subId) {
+                return true;
+            }
+
+            subIds = SubscriptionManager.getSubId(PhoneConstants.SUB2);
+            if (subIds != null && subIds[0] == subId) {
+                return true;
+            }
+
+            subIds = SubscriptionManager.getSubId(PhoneConstants.SUB3);
+            if (subIds != null && subIds[0] == subId) {
+                return true;
+            }
+            return false;
         }
 }