[toro] Add telephonyManager API ( getMsisdnNumber() ) for IMS Module.

IMS Module need the MSISDN value for IMS registration.(VZW Requirement)

Change-Id: I8713b6c55788276246ee1c2f91eaf2d3ab8cc813
Signed-off-by: duckyoung.chai <duckyoung.chai@samsung.com>
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
old mode 100644
new mode 100755
index c59dd3c..8ead45e
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -762,6 +762,26 @@
     }
 
     /**
+     * Returns the MSISDN string.
+     * for a GSM phone. Return null if it is unavailable.
+     * <p>
+     * Requires Permission:
+     *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
+     *
+     * @hide
+     */
+    public String getMsisdn() {
+        try {
+            return getSubscriberInfo().getMsisdn();
+        } catch (RemoteException ex) {
+            return null;
+        } catch (NullPointerException ex) {
+            // This could happen before phone restarts due to crashing
+            return null;
+        }
+    }
+
+    /**
      * Returns the voice mail number. Return null if it is unavailable.
      * <p>
      * Requires Permission:
diff --git a/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl b/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl
old mode 100644
new mode 100755
index def770f..da0326c
--- a/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl
+++ b/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl
@@ -54,6 +54,11 @@
     String getLine1AlphaTag();
 
     /**
+     * Retrieves MSISDN Number.
+     */
+    String getMsisdn();
+
+    /**
      * Retrieves the voice mail number.
      */
     String getVoiceMailNumber();
diff --git a/telephony/java/com/android/internal/telephony/PhoneSubInfo.java b/telephony/java/com/android/internal/telephony/PhoneSubInfo.java
old mode 100644
new mode 100755
index de18d0a..e8449ce
--- a/telephony/java/com/android/internal/telephony/PhoneSubInfo.java
+++ b/telephony/java/com/android/internal/telephony/PhoneSubInfo.java
@@ -105,6 +105,14 @@
     }
 
     /**
+     * Retrieves the MSISDN string.
+     */
+    public String getMsisdn() {
+        mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, "Requires READ_PHONE_STATE");
+        return mPhone.getMsisdn();
+    }
+
+    /**
      * Retrieves the voice mail number.
      */
     public String getVoiceMailNumber() {
diff --git a/telephony/java/com/android/internal/telephony/PhoneSubInfoProxy.java b/telephony/java/com/android/internal/telephony/PhoneSubInfoProxy.java
old mode 100644
new mode 100755
index a287b2e..bd130de
--- a/telephony/java/com/android/internal/telephony/PhoneSubInfoProxy.java
+++ b/telephony/java/com/android/internal/telephony/PhoneSubInfoProxy.java
@@ -75,6 +75,13 @@
     }
 
     /**
+     * Retrieves the MSISDN Number.
+     */
+    public String getMsisdn() {
+        return mPhoneSubInfo.getMsisdn();
+    }
+
+    /**
      * Retrieves the voice mail number.
      */
     public String getVoiceMailNumber() {