From f4b0c7903dd5cacd929e1c006cb9467ec647e7fa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A7=8B=E5=8F=B6=E9=9A=8F=E9=A3=8Eivan?=
Date: Sun, 3 Jan 2016 21:29:16 +0800
Subject: [PATCH 2/2] Update for mtk
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change-Id: I0318ed975caeb595db3efd1dd4b87a9729167bcd
Signed-off-by: 秋叶随风ivan
---
.../java/android/telephony/PhoneNumberUtils.java | 280 ++++++++++++++++++
.../java/android/telephony/PhoneRatFamily.aidl | 19 ++
.../java/android/telephony/PhoneRatFamily.java | 114 ++++++++
telephony/java/android/telephony/ServiceState.java | 190 +++++++++++-
.../internal/telephony/IccCardConstants.java | 12 +
.../android/internal/telephony/RILConstants.java | 324 ++++++++++++++++++++-
.../internal/telephony/TelephonyIntents.java | 255 ++++++++++++++++
.../internal/telephony/TelephonyProperties.java | 35 +++
8 files changed, 1226 insertions(+), 3 deletions(-)
create mode 100755 telephony/java/android/telephony/PhoneRatFamily.aidl
create mode 100755 telephony/java/android/telephony/PhoneRatFamily.java
diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java
index 3d0a553..8bd60b0 100644
--- a/telephony/java/android/telephony/PhoneNumberUtils.java
+++ b/telephony/java/android/telephony/PhoneNumberUtils.java
@@ -47,6 +47,14 @@ import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.ArrayList;
+import java.util.HashMap;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlPullParserFactory;
+import java.io.FileReader;
+import java.io.IOException;
+
/**
* Various utilities for dealing with phone number strings.
*/
@@ -89,6 +97,78 @@ public class PhoneNumberUtils
private static final Pattern GLOBAL_PHONE_NUMBER_PATTERN =
Pattern.compile("[\\+]?[0-9.-]+");
+ // MTK
+
+ /** @hide */
+ public static class EccEntry {
+ public static final String ECC_LIST_PATH = "/system/etc/ecc_list.xml";
+ public static final String ECC_ENTRY_TAG = "EccEntry";
+ public static final String ECC_ATTR = "Ecc";
+ public static final String CATEGORY_ATTR = "Category";
+ public static final String CONDITION_ATTR = "Condition";
+
+ public static final String ECC_NO_SIM = "0";
+ public static final String ECC_ALWAYS = "1";
+ public static final String ECC_FOR_MMI = "2";
+
+ private String mEcc;
+ private String mCategory;
+ private String mCondition; // ECC_NO_SIM, ECC_ALWAYS, or ECC_FOR_MMI
+
+ public EccEntry() {
+ mEcc = new String("");
+ mCategory = new String("");
+ mCondition = new String("");
+ }
+
+ public void setEcc(String strEcc) {
+ mEcc = strEcc;
+ }
+ public void setCategory(String strCategory) {
+ mCategory = strCategory;
+ }
+ public void setCondition(String strCondition) {
+ mCondition = strCondition;
+ }
+
+ public String getEcc() {
+ return mEcc;
+ }
+ public String getCategory() {
+ return mCategory;
+ }
+ public String getCondition() {
+ return mCondition;
+ }
+
+ @Override
+ public String toString() {
+ return ("\n" + ECC_ATTR + "=" + getEcc() + ", " + CATEGORY_ATTR + "="
+ + getCategory() + ", " + CONDITION_ATTR + "=" + getCondition());
+ }
+ }
+
+ private static ArrayList mCustomizedEccList = null;
+ private static HashMap mHashMapForNetworkEccCategory = null;
+
+ // private static IPhoneNumberExt sPhoneNumberExt = null;
+
+ private static boolean sIsCtaSupport = false;
+ private static boolean sIsCtaSet = false;
+
+ static {
+ sIsCtaSupport = "1".equals(SystemProperties.get("persist.mtk_cta_support"));
+ sIsCtaSet = "1".equals(SystemProperties.get("ro.mtk_cta_set"));
+ /*
+ if (!SystemProperties.get("ro.mtk_bsp_package").equals("1")) {
+ sPhoneNumberExt = MPlugin.createInstance(IPhoneNumberExt.class.getName());
+ }
+ */
+ mCustomizedEccList = new ArrayList();
+ parseEccList();
+ mHashMapForNetworkEccCategory = new HashMap();
+ }
+
/** True if c is ISO-LATIN characters 0-9 */
public static boolean
isISODigit (char c) {
@@ -1855,6 +1935,8 @@ public class PhoneNumberUtils
private static boolean isEmergencyNumberInternal(int subId, String number,
String defaultCountryIso,
boolean useExactMatch) {
+ boolean bSIMInserted = false;
+
// If the number passed in is null, just return false:
if (number == null) return false;
@@ -1876,6 +1958,28 @@ public class PhoneNumberUtils
Rlog.d(LOG_TAG, "subId:" + subId + ", number: " + number + ", defaultCountryIso:" +
((defaultCountryIso == null) ? "NULL" : defaultCountryIso));
+ // MTK
+ // 1. Check ECCs updated by network
+ mHashMapForNetworkEccCategory.clear();
+ String strEccCategoryList = SystemProperties.get("ril.ecc.service.category.list");
+ if (!TextUtils.isEmpty(strEccCategoryList)) {
+ for (String strEccCategory : strEccCategoryList.split(";")) {
+ if (!strEccCategory.isEmpty()) {
+ String[] strEccCategoryAry = strEccCategory.split(",");
+ if (2 == strEccCategoryAry.length)
+ mHashMapForNetworkEccCategory.put(strEccCategoryAry[0], Integer.parseInt(strEccCategoryAry[1]));
+ }
+ }
+ }
+ for (String emergencyNum : mHashMapForNetworkEccCategory.keySet()) {
+ String numberPlus = emergencyNum + "+";
+ if (emergencyNum.equals(number)
+ || numberPlus.equals(number)) {
+ Rlog.d(LOG_TAG, "[isEmergencyNumber] match network ecc list");
+ return true;
+ }
+ }
+
String emergencyNumbers = "";
int slotId = SubscriptionManager.getSlotId(subId);
@@ -1885,6 +1989,7 @@ public class PhoneNumberUtils
String ecclist = (slotId == 0) ? "ril.ecclist" : ("ril.ecclist" + slotId);
emergencyNumbers = SystemProperties.get(ecclist, "");
+ bSIMInserted = true;
}
Rlog.d(LOG_TAG, "slotId:" + slotId + ", emergencyNumbers: " + emergencyNumbers);
@@ -1914,6 +2019,36 @@ public class PhoneNumberUtils
return false;
}
+ // MTK
+ // 3. Check ECCs customized by user
+ if (bSIMInserted) {
+ if (mCustomizedEccList != null) {
+ for (EccEntry eccEntry : mCustomizedEccList) {
+ if (!eccEntry.getCondition().equals(EccEntry.ECC_NO_SIM)) {
+ String ecc = eccEntry.getEcc();
+ String numberPlus = ecc + "+";
+ if (ecc.equals(number)
+ || numberPlus.equals(number)) {
+ Rlog.d(LOG_TAG, "[isEmergencyNumber] match customized ecc list");
+ return true;
+ }
+ }
+ }
+ }
+ } else {
+ if (mCustomizedEccList != null) {
+ for (EccEntry eccEntry : mCustomizedEccList) {
+ String ecc = eccEntry.getEcc();
+ String numberPlus = ecc + "+";
+ if (ecc.equals(number)
+ || numberPlus.equals(number)) {
+ Rlog.d(LOG_TAG, "[isEmergencyNumber] match customized ecc list when no sim");
+ return true;
+ }
+ }
+ }
+ }
+
Rlog.d(LOG_TAG, "System property doesn't provide any emergency numbers."
+ " Use embedded logic for determining ones.");
@@ -2961,4 +3096,149 @@ public class PhoneNumberUtils
return SubscriptionManager.getDefaultVoiceSubId();
}
//==== End of utility methods used only in compareStrictly() =====
+
+ // MTK
+
+ /**
+ * Parse Ecc List From XML File
+ *
+ * @param none.
+ * @return none.
+ * @hide
+ */
+ private static void parseEccList() {
+ mCustomizedEccList.clear();
+
+ try {
+ XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
+ XmlPullParser parser = factory.newPullParser();
+ if (parser == null) {
+ Rlog.d(LOG_TAG, "XmlPullParserFactory.newPullParser() return null");
+ return;
+ }
+ FileReader fileReader = new FileReader(EccEntry.ECC_LIST_PATH);
+ parser.setInput(fileReader);
+ int eventType = parser.getEventType();
+ EccEntry record = null;
+
+ while (eventType != XmlPullParser.END_DOCUMENT) {
+ switch (eventType) {
+ case XmlPullParser.START_TAG:
+ if (parser.getName().equals(EccEntry.ECC_ENTRY_TAG)) {
+ record = new EccEntry();
+ int attrNum = parser.getAttributeCount();
+ for (int i = 0; i < attrNum; ++i) {
+ String name = parser.getAttributeName(i);
+ String value = parser.getAttributeValue(i);
+ if (name.equals(EccEntry.ECC_ATTR))
+ record.setEcc(value);
+ else if (name.equals(EccEntry.CATEGORY_ATTR))
+ record.setCategory(value);
+ else if (name.equals(EccEntry.CONDITION_ATTR))
+ record.setCondition(value);
+ }
+ }
+ break;
+ case XmlPullParser.END_TAG:
+ if (parser.getName().equals(EccEntry.ECC_ENTRY_TAG) && record != null)
+ mCustomizedEccList.add(record);
+ break;
+ }
+ eventType = parser.next();
+ }
+ fileReader.close();
+
+ if (sIsCtaSet) {
+ String [] emergencyCTAList = {"120", "122"};
+ for (String emergencyNum : emergencyCTAList) {
+ record = new EccEntry();
+ record.setEcc(emergencyNum);
+ record.setCategory("0");
+ record.setCondition(EccEntry.ECC_FOR_MMI);
+
+ boolean bFound = false;
+ int nIndex = 0;
+ for (EccEntry eccEntry : mCustomizedEccList) {
+ String ecc = eccEntry.getEcc();
+ if (ecc.equals(emergencyNum)) {
+ bFound = true;
+ Rlog.d(LOG_TAG, "[parseEccList]"
+ + "CTA ecc match customized ecc list, ecc=" + ecc);
+ break;
+ }
+ nIndex++;
+ }
+
+ if (bFound)
+ mCustomizedEccList.set(nIndex, record);
+ else
+ mCustomizedEccList.add(record);
+ }
+ }
+ } catch (XmlPullParserException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ Rlog.d(LOG_TAG, "parseEccList: " + mCustomizedEccList);
+ }
+
+ /**
+ * Get Ecc List
+ *
+ * @param none.
+ * @return Ecc List with type ArrayList.
+ * @hide
+ */
+ public static ArrayList getEccList() {
+ return mCustomizedEccList;
+ }
+
+ /**
+ * Get the service category for the given ECC number.
+ * @param number The ECC number.
+ * @return The service category for the given number.
+ * @hide
+ */
+ public static int getServiceCategoryFromEcc(String number) {
+ String numberPlus = null;
+
+ // 1. Get category from network
+ for (String emergencyNum : mHashMapForNetworkEccCategory.keySet()) {
+ numberPlus = emergencyNum + "+";
+ if (emergencyNum.equals(number)
+ || numberPlus.equals(number)) {
+ Integer nSC = mHashMapForNetworkEccCategory.get(emergencyNum);
+ if (nSC != null) {
+ Rlog.d(LOG_TAG, "[getServiceCategoryFromEcc] match network ecc list, "
+ + "Ecc= " + number + ", Category= " + nSC);
+ return nSC;
+ }
+ }
+ }
+
+ // 2. Get category from sim
+ // ToDo: EF_Ecc will convey service category later
+
+ // 3. Get category from user-customized
+ if (mCustomizedEccList != null) {
+ for (EccEntry eccEntry : mCustomizedEccList) {
+ String ecc = eccEntry.getEcc();
+ numberPlus = ecc + "+";
+ if (ecc.equals(number)
+ || numberPlus.equals(number)) {
+ Rlog.d(LOG_TAG, "[getServiceCategoryFromEcc] match customized ecc list, "
+ + "Ecc= " + ecc + ", Category= " + eccEntry.getCategory());
+ return Integer.parseInt(eccEntry.getCategory());
+ }
+ }
+ }
+
+ Rlog.d(LOG_TAG, "[getServiceCategoryFromEcc] no matched for Ecc =" + number + ", return 0");
+ return 0;
+ }
+
}
diff --git a/telephony/java/android/telephony/PhoneRatFamily.aidl b/telephony/java/android/telephony/PhoneRatFamily.aidl
new file mode 100755
index 0000000..dd7132c
--- /dev/null
+++ b/telephony/java/android/telephony/PhoneRatFamily.aidl
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2014 MediaTek Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.telephony;
+
+parcelable PhoneRatFamily;
\ No newline at end of file
diff --git a/telephony/java/android/telephony/PhoneRatFamily.java b/telephony/java/android/telephony/PhoneRatFamily.java
new file mode 100755
index 0000000..158dcca
--- /dev/null
+++ b/telephony/java/android/telephony/PhoneRatFamily.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2014 MediaTek Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.telephony;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * Object to indicate the phone RAT family.
+ *
+ * @hide
+ */
+public class PhoneRatFamily implements Parcelable {
+ /* Phone ID of phone */
+ private int mPhoneId;
+ /* New phone rat family */
+ private int mRatFamily;
+
+ public static final int PHONE_RAT_FAMILY_NONE = 0x00;
+ public static final int PHONE_RAT_FAMILY_2G = 0x01;
+ public static final int PHONE_RAT_FAMILY_3G = 0x02;
+ public static final int PHONE_RAT_FAMILY_4G = 0x04;
+
+ /**
+ * Constructor.
+ *
+ * @param phoneId the phone ID
+ * @param ratFamily the new RAT family
+ */
+ public PhoneRatFamily(int phoneId, int ratFamily) {
+ mPhoneId = phoneId;
+ mRatFamily = ratFamily;
+ }
+
+ /**
+ * Get phone ID.
+ *
+ * @return phone ID
+ */
+ public int getPhoneId() {
+ return mPhoneId;
+ }
+
+ /**
+ * Get RAT family.
+ *
+ * @return phone RAT family
+ */
+ public int getRatFamily() {
+ return mRatFamily;
+ }
+
+ @Override
+ public String toString() {
+ String ret = "{ mPhoneId = " + mPhoneId
+ + ", mRatFamily = " + mRatFamily
+ + "}";
+ return ret;
+ }
+
+ /**
+ * Implement the Parcelable interface.
+ *
+ * @return describe content
+ */
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ /**
+ * Implement the Parcelable interface.
+ *
+ * @param outParcel The Parcel in which the object should be written.
+ * @param flags Additional flags about how the object should be written.
+ */
+ public void writeToParcel(Parcel outParcel, int flags) {
+ outParcel.writeInt(mPhoneId);
+ outParcel.writeInt(mRatFamily);
+ }
+
+ /**
+ * Implement the Parcelable interface.
+ */
+ public static final Creator CREATOR = new Creator() {
+ @Override
+ public PhoneRatFamily createFromParcel(Parcel in) {
+ int phoneId = in.readInt();
+ int ratFamily = in.readInt();
+
+ return new PhoneRatFamily(phoneId, ratFamily);
+ }
+
+ @Override
+ public PhoneRatFamily[] newArray(int size) {
+ return new PhoneRatFamily[size];
+ }
+ };
+}
+
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index 2d72c2b..5f5377f 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -154,6 +154,30 @@ public class ServiceState implements Parcelable {
* @hide
*/
public static final int RIL_RADIO_TECHNOLOGY_IWLAN = 18;
+ // MTK-specific HSPAP radio technologies
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_MTK = 128;
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_HSDPAP = RIL_RADIO_TECHNOLOGY_MTK + 1;
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_HSDPAP_UPA = RIL_RADIO_TECHNOLOGY_MTK + 2;
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_HSUPAP = RIL_RADIO_TECHNOLOGY_MTK + 3;
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_HSUPAP_DPA = RIL_RADIO_TECHNOLOGY_MTK + 4;
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_DC_DPA = RIL_RADIO_TECHNOLOGY_MTK + 5;
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_DC_UPA = RIL_RADIO_TECHNOLOGY_MTK + 6;
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_DC_HSDPAP = RIL_RADIO_TECHNOLOGY_MTK + 7;
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_DC_HSDPAP_UPA = RIL_RADIO_TECHNOLOGY_MTK + 8;
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_DC_HSDPAP_DPA = RIL_RADIO_TECHNOLOGY_MTK + 9;
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_DC_HSPAP = RIL_RADIO_TECHNOLOGY_MTK + 10;
+
/**
* Available registration states for GSM, UMTS and CDMA.
*/
@@ -221,6 +245,25 @@ public class ServiceState implements Parcelable {
private int mCdmaEriIconIndex = 1; //EriInfo.ROAMING_INDICATOR_OFF;;
private int mCdmaEriIconMode;
+ // MTK
+ private int mRilVoiceRegState = REGISTRATION_STATE_NOT_REGISTERED_AND_NOT_SEARCHING;
+ private int mRilDataRegState = REGISTRATION_STATE_NOT_REGISTERED_AND_NOT_SEARCHING;
+ //[ALPS01675318] -START
+ private int mProprietaryDataRadioTechnology;
+ //[ALPS01675318] -END
+
+ // MTK CDMA
+ /** @hide */
+ public static final int RIL_CDMA_NETWORK_MODE_UNKOWN = 0;
+ /** @hide */
+ public static final int RIL_CDMA_NETWORK_MODE_1X_ONLY = 2;
+ /** @hide */
+ public static final int RIL_CDMA_NETWORK_MODE_EVDO_ONLY = 4;
+ /** @hide */
+ public static final int RIL_CDMA_NETWORK_MODE_1X_EVDO = 8;
+ /** @hide */
+ protected int mCdmaNetWorkMode = RIL_CDMA_NETWORK_MODE_UNKOWN;
+
/**
* get String description of roaming type
* @hide
@@ -298,6 +341,12 @@ public class ServiceState implements Parcelable {
mCdmaEriIconIndex = s.mCdmaEriIconIndex;
mCdmaEriIconMode = s.mCdmaEriIconMode;
mIsEmergencyOnly = s.mIsEmergencyOnly;
+
+ // MTK
+ mRilVoiceRegState = s.mRilVoiceRegState;
+ mRilDataRegState = s.mRilDataRegState;
+ mProprietaryDataRadioTechnology = s.mProprietaryDataRadioTechnology;
+ mCdmaNetWorkMode = s.mCdmaNetWorkMode;
}
/**
@@ -325,6 +374,12 @@ public class ServiceState implements Parcelable {
mCdmaEriIconIndex = in.readInt();
mCdmaEriIconMode = in.readInt();
mIsEmergencyOnly = in.readInt() != 0;
+
+ // MTK
+ mRilVoiceRegState = in.readInt();
+ mRilDataRegState = in.readInt();
+ mProprietaryDataRadioTechnology = in.readInt();
+ mCdmaNetWorkMode = in.readInt();
}
public void writeToParcel(Parcel out, int flags) {
@@ -349,6 +404,12 @@ public class ServiceState implements Parcelable {
out.writeInt(mCdmaEriIconIndex);
out.writeInt(mCdmaEriIconMode);
out.writeInt(mIsEmergencyOnly ? 1 : 0);
+
+ // MTK
+ out.writeInt(mRilVoiceRegState);
+ out.writeInt(mRilDataRegState);
+ out.writeInt(mProprietaryDataRadioTechnology);
+ out.writeInt(mCdmaNetWorkMode);
}
public int describeContents() {
@@ -636,7 +697,12 @@ public class ServiceState implements Parcelable {
&& equalsHandlesNulls(mCdmaRoamingIndicator, s.mCdmaRoamingIndicator)
&& equalsHandlesNulls(mCdmaDefaultRoamingIndicator,
s.mCdmaDefaultRoamingIndicator)
- && mIsEmergencyOnly == s.mIsEmergencyOnly);
+ && mIsEmergencyOnly == s.mIsEmergencyOnly
+ // MTK
+ && mRilVoiceRegState == s.mRilVoiceRegState
+ && mRilDataRegState == s.mRilDataRegState
+ && equalsHandlesNulls(mProprietaryDataRadioTechnology, s.mProprietaryDataRadioTechnology)
+ && mCdmaNetWorkMode == s.mCdmaNetWorkMode);
}
/**
@@ -740,7 +806,12 @@ public class ServiceState implements Parcelable {
+ " " + mSystemId
+ " RoamInd=" + mCdmaRoamingIndicator
+ " DefRoamInd=" + mCdmaDefaultRoamingIndicator
- + " EmergOnly=" + mIsEmergencyOnly);
+ + " EmergOnly=" + mIsEmergencyOnly
+ // MTK
+ + " RilVoiceRegState=" + mRilVoiceRegState
+ + " RilDataRegState=" + mRilDataRegState
+ + " ProprietaryDataRadioTechnology=" + mProprietaryDataRadioTechnology
+ + " CdmaNetWorkMode=" + mCdmaNetWorkMode);
}
private void setNullState(int state) {
@@ -766,6 +837,11 @@ public class ServiceState implements Parcelable {
mCdmaEriIconIndex = -1;
mCdmaEriIconMode = -1;
mIsEmergencyOnly = false;
+
+ // MTK
+ mRilVoiceRegState = REGISTRATION_STATE_NOT_REGISTERED_AND_NOT_SEARCHING;
+ mRilDataRegState = REGISTRATION_STATE_NOT_REGISTERED_AND_NOT_SEARCHING;
+ mProprietaryDataRadioTechnology = 0;
}
public void setStateOutOfService() {
@@ -938,6 +1014,12 @@ public class ServiceState implements Parcelable {
mCdmaRoamingIndicator = m.getInt("cdmaRoamingIndicator");
mCdmaDefaultRoamingIndicator = m.getInt("cdmaDefaultRoamingIndicator");
mIsEmergencyOnly = m.getBoolean("emergencyOnly");
+
+ // MTK
+ mRilVoiceRegState = m.getInt("RilVoiceRegState");
+ mRilDataRegState = m.getInt("RilDataRegState");
+ mProprietaryDataRadioTechnology = m.getInt("proprietaryDataRadioTechnology");
+ mCdmaNetWorkMode = m.getInt("cdmaNetWorkMode");
}
/**
@@ -966,6 +1048,12 @@ public class ServiceState implements Parcelable {
m.putInt("cdmaRoamingIndicator", mCdmaRoamingIndicator);
m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator);
m.putBoolean("emergencyOnly", Boolean.valueOf(mIsEmergencyOnly));
+
+ // MTK
+ m.putInt("RilVoiceRegState", mRilVoiceRegState);
+ m.putInt("RilDataRegState", mRilDataRegState);
+ m.putInt("proprietaryDataRadioTechnology", mProprietaryDataRadioTechnology);
+ m.putInt("cdmaNetWorkMode", mCdmaNetWorkMode);
}
/** @hide */
@@ -975,6 +1063,15 @@ public class ServiceState implements Parcelable {
/** @hide */
public void setRilDataRadioTechnology(int rt) {
+ // redirect MTK-specific RATs
+ if (rt > ServiceState.RIL_RADIO_TECHNOLOGY_MTK) {
+ if (DBG) Rlog.d(LOG_TAG, "[ServiceState] setDataRadioTechnology mProprietaryDataRadioTechnology=" + rt);
+ mProprietaryDataRadioTechnology = rt;
+ rt = ServiceState.RIL_RADIO_TECHNOLOGY_HSPAP;
+ } else {
+ mProprietaryDataRadioTechnology = 0;
+ }
+
this.mRilDataRadioTechnology = rt;
if (DBG) Rlog.d(LOG_TAG, "[ServiceState] setDataRadioTechnology=" + mRilDataRadioTechnology);
}
@@ -1128,4 +1225,93 @@ public class ServiceState implements Parcelable {
return newSs;
}
+
+ // MTK
+
+ /** @hide */
+ public int getRegState() {
+ return getRilVoiceRegState();
+ }
+
+ /** @hide */
+ public int getRilVoiceRegState() {
+ return mRilVoiceRegState;
+ }
+
+ /** @hide */
+ public int getRilDataRegState() {
+ return mRilDataRegState;
+ }
+
+ /**
+ * @hide
+ */
+ public void setRegState(int nRegState) {
+ setRilVoiceRegState(nRegState);
+ }
+
+ /**
+ * @hide
+ */
+ public void setRilVoiceRegState(int nRegState) {
+ mRilVoiceRegState = nRegState;
+ }
+
+ /**
+ * @hide
+ */
+ public void setRilDataRegState(int nDataRegState) {
+ mRilDataRegState = nDataRegState;
+ }
+
+ /**
+ * @hide
+ */
+ public boolean isVoiceRadioTechnologyHigher(int nRadioTechnology) {
+ return compareTwoRadioTechnology(mRilVoiceRadioTechnology, nRadioTechnology);
+ }
+
+ /**
+ * @hide
+ */
+ public boolean isDataRadioTechnologyHigher(int nRadioTechnology) {
+ return compareTwoRadioTechnology(mRilDataRadioTechnology, nRadioTechnology);
+ }
+
+ /**
+ * @hide
+ */
+ public boolean compareTwoRadioTechnology(int nRadioTechnology1, int nRadioTechnology2) {
+ if (nRadioTechnology1 == nRadioTechnology2) {
+ return false;
+ } else if (nRadioTechnology1 == RIL_RADIO_TECHNOLOGY_LTE) {
+ return true;
+ } else if (nRadioTechnology2 == RIL_RADIO_TECHNOLOGY_LTE) {
+ return false;
+ } else if (nRadioTechnology1 == RIL_RADIO_TECHNOLOGY_GSM) {
+ return false;
+ } else if (nRadioTechnology2 == RIL_RADIO_TECHNOLOGY_GSM) {
+ return true;
+ } else if (nRadioTechnology1 > nRadioTechnology2) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ // MTK CDMA
+
+ /**
+ * @hide
+ */
+ public int getCdmaNetworkMode() {
+ return mCdmaNetWorkMode;
+ }
+
+ /**
+ * @hide
+ */
+ public void setCdmaNetworkMode(int networkMode) {
+ mCdmaNetWorkMode = networkMode;
+ }
}
diff --git a/telephony/java/com/android/internal/telephony/IccCardConstants.java b/telephony/java/com/android/internal/telephony/IccCardConstants.java
index e24664b..79063f5 100644
--- a/telephony/java/com/android/internal/telephony/IccCardConstants.java
+++ b/telephony/java/com/android/internal/telephony/IccCardConstants.java
@@ -51,6 +51,18 @@ public class IccCardConstants {
/* PERM_DISABLED means ICC is permanently disabled due to puk fails */
public static final String INTENT_VALUE_ABSENT_ON_PERM_DISABLED = "PERM_DISABLED";
+ // MTK ICC lock reasons
+ /* NETWORK means ICC is locked on NETWORK PERSONALIZATION */
+ public static final String INTENT_VALUE_LOCKED_NETWORK = "NETWORK";
+ /* NETWORK_SUBSET means ICC is locked on NETWORK SUBSET PERSONALIZATION */
+ public static final String INTENT_VALUE_LOCKED_NETWORK_SUBSET = "NETWORK_SUBSET";
+ /* CORPORATE means ICC is locked on CORPORATE PERSONALIZATION */
+ public static final String INTENT_VALUE_LOCKED_CORPORATE = "CORPORATE";
+ /* SERVICE_PROVIDER means ICC is locked on SERVICE_PROVIDER PERSONALIZATION */
+ public static final String INTENT_VALUE_LOCKED_SERVICE_PROVIDER = "SERVICE_PROVIDER";
+ /* SIM means ICC is locked on SIM PERSONALIZATION */
+ public static final String INTENT_VALUE_LOCKED_SIM = "SIM";
+
/**
* This is combination of IccCardStatus.CardState and IccCardApplicationStatus.AppState
* for external apps (like PhoneApp) to use
diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java
index b87cfac..d9f6323 100644
--- a/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -323,7 +323,8 @@ cat include/telephony/ril.h | \
int RIL_REQUEST_GET_RADIO_CAPABILITY = 130;
int RIL_REQUEST_SET_RADIO_CAPABILITY = 131;
int RIL_REQUEST_GET_DATA_CALL_PROFILE = 132;
- int RIL_REQUEST_SIM_GET_ATR = 133;
+ // MTK please
+ // int RIL_REQUEST_SIM_GET_ATR = 133;
int RIL_UNSOL_RESPONSE_BASE = 1000;
int RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED = 1000;
@@ -373,4 +374,325 @@ cat include/telephony/ril.h | \
int RIL_UNSOL_STK_CC_ALPHA_NOTIFY = 1044;
int RIL_UNSOL_STK_SEND_SMS_RESULT = 11002; /* Samsung STK */
+
+ // MediaTek Custom States
+ // oh no
+ static final int RIL_REQUEST_GET_PHONE_RAT_FAMILY = 130;
+ static final int RIL_REQUEST_SET_PHONE_RAT_FAMILY = 131;
+
+ static final int RIL_REQUEST_MTK_BASE = 2000;
+ static final int RIL_REQUEST_GET_COLP = (RIL_REQUEST_MTK_BASE + 0);
+ static final int RIL_REQUEST_SET_COLP = (RIL_REQUEST_MTK_BASE + 1);
+ static final int RIL_REQUEST_GET_COLR = (RIL_REQUEST_MTK_BASE + 2);
+ static final int RIL_REQUEST_GET_CCM = (RIL_REQUEST_MTK_BASE + 3);
+ static final int RIL_REQUEST_GET_ACM = (RIL_REQUEST_MTK_BASE + 4);
+ static final int RIL_REQUEST_GET_ACMMAX = (RIL_REQUEST_MTK_BASE + 5);
+ static final int RIL_REQUEST_GET_PPU_AND_CURRENCY = (RIL_REQUEST_MTK_BASE + 6);
+ static final int RIL_REQUEST_SET_ACMMAX = (RIL_REQUEST_MTK_BASE + 7);
+ static final int RIL_REQUEST_RESET_ACM = (RIL_REQUEST_MTK_BASE + 8);
+ static final int RIL_REQUEST_SET_PPU_AND_CURRENCY = (RIL_REQUEST_MTK_BASE + 9);
+ static final int RIL_REQUEST_MODEM_POWEROFF = (RIL_REQUEST_MTK_BASE + 10);
+ static final int RIL_REQUEST_DUAL_SIM_MODE_SWITCH = (RIL_REQUEST_MTK_BASE + 11);
+ static final int RIL_REQUEST_QUERY_PHB_STORAGE_INFO = (RIL_REQUEST_MTK_BASE + 12);
+ static final int RIL_REQUEST_WRITE_PHB_ENTRY = (RIL_REQUEST_MTK_BASE + 13);
+ static final int RIL_REQUEST_READ_PHB_ENTRY = (RIL_REQUEST_MTK_BASE + 14);
+ static final int RIL_REQUEST_SET_GPRS_CONNECT_TYPE = (RIL_REQUEST_MTK_BASE + 15);
+ static final int RIL_REQUEST_SET_GPRS_TRANSFER_TYPE = (RIL_REQUEST_MTK_BASE + 16);
+ static final int RIL_REQUEST_MOBILEREVISION_AND_IMEI = (RIL_REQUEST_MTK_BASE + 17); //Add by mtk80372 for Barcode Number
+ static final int RIL_REQUEST_QUERY_SIM_NETWORK_LOCK = (RIL_REQUEST_MTK_BASE + 18);
+ static final int RIL_REQUEST_SET_SIM_NETWORK_LOCK = (RIL_REQUEST_MTK_BASE + 19);
+ static final int RIL_REQUEST_SET_SCRI = (RIL_REQUEST_MTK_BASE + 20);
+ static final int RIL_REQUEST_BTSIM_CONNECT = (RIL_REQUEST_MTK_BASE + 21);
+ static final int RIL_REQUEST_BTSIM_DISCONNECT_OR_POWEROFF = (RIL_REQUEST_MTK_BASE + 22);
+ static final int RIL_REQUEST_BTSIM_POWERON_OR_RESETSIM = (RIL_REQUEST_MTK_BASE + 23);
+ static final int RIL_REQUEST_BTSIM_TRANSFERAPDU = (RIL_REQUEST_MTK_BASE + 24);
+ static final int RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL_WITH_ACT = (RIL_REQUEST_MTK_BASE + 25);
+ static final int RIL_REQUEST_QUERY_ICCID = (RIL_REQUEST_MTK_BASE + 26);
+ static final int RIL_REQUEST_USIM_AUTHENTICATION = (RIL_REQUEST_MTK_BASE + 27);
+ static final int RIL_REQUEST_MODEM_POWERON = (RIL_REQUEST_MTK_BASE + 28);
+ static final int RIL_REQUEST_GET_SMS_SIM_MEM_STATUS = (RIL_REQUEST_MTK_BASE + 29);
+ /* 3G switch start */
+ static final int RIL_REQUEST_GET_PHONE_CAPABILITY = (RIL_REQUEST_MTK_BASE + 30);
+ static final int RIL_REQUEST_SET_PHONE_CAPABILITY = (RIL_REQUEST_MTK_BASE + 31);
+ /* 3G switch end */
+ /* User controlled PLMN selector with Access Technology begin */
+ static final int RIL_REQUEST_GET_POL_CAPABILITY = (RIL_REQUEST_MTK_BASE + 32);
+ static final int RIL_REQUEST_GET_POL_LIST = (RIL_REQUEST_MTK_BASE + 33);
+ static final int RIL_REQUEST_SET_POL_ENTRY = (RIL_REQUEST_MTK_BASE + 34);
+ /* User controlled PLMN selector with Access Technology end */
+ /* UPB start */
+ static final int RIL_REQUEST_QUERY_UPB_CAPABILITY = (RIL_REQUEST_MTK_BASE + 35);
+ static final int RIL_REQUEST_EDIT_UPB_ENTRY = (RIL_REQUEST_MTK_BASE + 36);
+ static final int RIL_REQUEST_DELETE_UPB_ENTRY = (RIL_REQUEST_MTK_BASE + 37);
+ static final int RIL_REQUEST_READ_UPB_GAS_LIST = (RIL_REQUEST_MTK_BASE + 38);
+ static final int RIL_REQUEST_READ_UPB_GRP = (RIL_REQUEST_MTK_BASE + 39);
+ static final int RIL_REQUEST_WRITE_UPB_GRP = (RIL_REQUEST_MTK_BASE + 40);
+ /* UPB end */
+ static final int RIL_REQUEST_SET_SIM_RECOVERY_ON = (RIL_REQUEST_MTK_BASE + 41);
+ static final int RIL_REQUEST_GET_SIM_RECOVERY_ON = (RIL_REQUEST_MTK_BASE + 42);
+ static final int RIL_REQUEST_SET_TRM = (RIL_REQUEST_MTK_BASE + 43);
+ static final int RIL_REQUEST_DETECT_SIM_MISSING = (RIL_REQUEST_MTK_BASE + 44);
+ static final int RIL_REQUEST_GET_CALIBRATION_DATA = (RIL_REQUEST_MTK_BASE + 45);
+
+ //For LGE APIs start
+ static final int RIL_REQUEST_GET_PHB_STRING_LENGTH = (RIL_REQUEST_MTK_BASE + 46);
+ static final int RIL_REQUEST_GET_PHB_MEM_STORAGE = (RIL_REQUEST_MTK_BASE + 47);
+ static final int RIL_REQUEST_SET_PHB_MEM_STORAGE = (RIL_REQUEST_MTK_BASE + 48);
+ static final int RIL_REQUEST_READ_PHB_ENTRY_EXT = (RIL_REQUEST_MTK_BASE + 49);
+ static final int RIL_REQUEST_WRITE_PHB_ENTRY_EXT = (RIL_REQUEST_MTK_BASE + 50);
+
+ // requests for read/write EFsmsp
+ static final int RIL_REQUEST_GET_SMS_PARAMS = (RIL_REQUEST_MTK_BASE + 51);
+ static final int RIL_REQUEST_SET_SMS_PARAMS = (RIL_REQUEST_MTK_BASE + 52);
+
+ // NFC SEEK start
+ static final int RIL_REQUEST_SIM_TRANSMIT_BASIC = (RIL_REQUEST_MTK_BASE + 53);
+ static final int RIL_REQUEST_SIM_TRANSMIT_CHANNEL = (RIL_REQUEST_MTK_BASE + 54);
+ static final int RIL_REQUEST_SIM_GET_ATR = (RIL_REQUEST_MTK_BASE + 55);
+ // NFC SEEK end
+
+ // MTK-START, SMS part, CB extension
+ static final int RIL_REQUEST_SET_CB_CHANNEL_CONFIG_INFO = (RIL_REQUEST_MTK_BASE + 56);
+ static final int RIL_REQUEST_SET_CB_LANGUAGE_CONFIG_INFO = (RIL_REQUEST_MTK_BASE + 57);
+ static final int RIL_REQUEST_GET_CB_CONFIG_INFO = (RIL_REQUEST_MTK_BASE + 58);
+ static final int RIL_REQUEST_SET_ALL_CB_LANGUAGE_ON = (RIL_REQUEST_MTK_BASE + 59);
+ // MTK-END, SMS part, CB extension
+
+ static final int RIL_REQUEST_SET_ETWS = (RIL_REQUEST_MTK_BASE + 60);
+
+ // [New R8 modem FD]
+ static final int RIL_REQUEST_SET_FD_MODE = (RIL_REQUEST_MTK_BASE + 61);
+
+ // detach PS service request
+ static final int RIL_REQUEST_DETACH_PS = (RIL_REQUEST_MTK_BASE + 62);
+
+ static final int RIL_REQUEST_SIM_OPEN_CHANNEL_WITH_SW = (RIL_REQUEST_MTK_BASE + 63); // NFC SEEK
+
+ static final int RIL_REQUEST_SET_REG_SUSPEND_ENABLED = (RIL_REQUEST_MTK_BASE + 64);
+ static final int RIL_REQUEST_RESUME_REGISTRATION = (RIL_REQUEST_MTK_BASE + 65);
+ static final int RIL_REQUEST_STORE_MODEM_TYPE = (RIL_REQUEST_MTK_BASE + 66);
+ static final int RIL_REQUEST_QUERY_MODEM_TYPE = (RIL_REQUEST_MTK_BASE + 67);
+ static final int RIL_REQUEST_SIM_INTERFACE_SWITCH = (RIL_REQUEST_MTK_BASE + 68);
+
+ //MTK-START [mtk80776] WiFi Calling
+ static final int RIL_REQUEST_UICC_SELECT_APPLICATION = (RIL_REQUEST_MTK_BASE + 69);
+ static final int RIL_REQUEST_UICC_DEACTIVATE_APPLICATION = (RIL_REQUEST_MTK_BASE + 70);
+ static final int RIL_REQUEST_UICC_APPLICATION_IO = (RIL_REQUEST_MTK_BASE + 71);
+ static final int RIL_REQUEST_UICC_AKA_AUTHENTICATE = (RIL_REQUEST_MTK_BASE + 72);
+ static final int RIL_REQUEST_UICC_GBA_AUTHENTICATE_BOOTSTRAP = (RIL_REQUEST_MTK_BASE + 73);
+ static final int RIL_REQUEST_UICC_GBA_AUTHENTICATE_NAF = (RIL_REQUEST_MTK_BASE + 74);
+ //MTK-END [mtk80776] WiFi Calling
+ static final int RIL_REQUEST_STK_EVDL_CALL_BY_AP = (RIL_REQUEST_MTK_BASE + 75);
+
+ // Femtocell (CSG)
+ static final int RIL_REQUEST_GET_FEMTOCELL_LIST = (RIL_REQUEST_MTK_BASE + 76);
+ static final int RIL_REQUEST_ABORT_FEMTOCELL_LIST = (RIL_REQUEST_MTK_BASE + 77);
+ static final int RIL_REQUEST_SELECT_FEMTOCELL = (RIL_REQUEST_MTK_BASE + 78);
+
+ // For OPLMN update
+ static final int RIL_REQUEST_SEND_OPLMN = (RIL_REQUEST_MTK_BASE + 79);
+ static final int RIL_REQUEST_GET_OPLMN_VERSION = (RIL_REQUEST_MTK_BASE + 80);
+
+ // For PLMN List abort
+ static final int RIL_REQUEST_ABORT_QUERY_AVAILABLE_NETWORKS = (RIL_REQUEST_MTK_BASE + 81);
+ // CSD
+ static final int RIL_REQUEST_DIAL_UP_CSD = (RIL_REQUEST_MTK_BASE + 82);
+
+ // M: For telephony modes update
+ static final int RIL_REQUEST_SET_TELEPHONY_MODE = (RIL_REQUEST_MTK_BASE + 83);
+
+ /* M: call control part start */
+ static final int RIL_REQUEST_HANGUP_ALL = (RIL_REQUEST_MTK_BASE + 84);
+ static final int RIL_REQUEST_FORCE_RELEASE_CALL = (RIL_REQUEST_MTK_BASE + 85);
+ static final int RIL_REQUEST_SET_CALL_INDICATION = (RIL_REQUEST_MTK_BASE + 86);
+ static final int RIL_REQUEST_EMERGENCY_DIAL = (RIL_REQUEST_MTK_BASE + 87);
+ static final int RIL_REQUEST_SET_ECC_SERVICE_CATEGORY = (RIL_REQUEST_MTK_BASE + 88);
+ static final int RIL_REQUEST_SET_ECC_LIST = (RIL_REQUEST_MTK_BASE + 89);
+ /* M: call control part end */
+
+
+ //New SIM Authentication
+ static final int RIL_REQUEST_GENERAL_SIM_AUTH = (RIL_REQUEST_MTK_BASE + 90);
+ //ISIM
+ static final int RIL_REQUEST_OPEN_ICC_APPLICATION = (RIL_REQUEST_MTK_BASE + 91);
+ static final int RIL_REQUEST_GET_ICC_APPLICATION_STATUS = (RIL_REQUEST_MTK_BASE + 92);
+ //SIM_IO_EX
+ static final int RIL_REQUEST_SIM_IO_EX = (RIL_REQUEST_MTK_BASE + 93);
+
+ // IMS
+ static final int RIL_REQUEST_SET_IMS_ENABLE = (RIL_REQUEST_MTK_BASE + 94);
+ static final int RIL_REQUEST_QUERY_AVAILABLE_NETWORKS_WITH_ACT = (RIL_REQUEST_MTK_BASE + 95);
+
+ /* M: SS part */
+ ///M: For query CNAP
+ static final int RIL_REQUEST_SEND_CNAP = (RIL_REQUEST_MTK_BASE + 96);
+ static final int RIL_REQUEST_SET_CLIP = (RIL_REQUEST_MTK_BASE + 97);
+ /* M: SS part end */
+
+ /** M: VoLTE data start */
+ static final int RIL_REQUEST_SETUP_DEDICATE_DATA_CALL = (RIL_REQUEST_MTK_BASE + 98);
+ static final int RIL_REQUEST_DEACTIVATE_DEDICATE_DATA_CALL = (RIL_REQUEST_MTK_BASE + 99);
+ static final int RIL_REQUEST_MODIFY_DATA_CALL = (RIL_REQUEST_MTK_BASE + 100);
+ static final int RIL_REQUEST_ABORT_SETUP_DATA_CALL = (RIL_REQUEST_MTK_BASE + 101);
+ static final int RIL_REQUEST_PCSCF_DISCOVERY_PCO = (RIL_REQUEST_MTK_BASE + 102);
+ static final int RIL_REQUEST_CLEAR_DATA_BEARER = (RIL_REQUEST_MTK_BASE + 103);
+ /** M: VoLTE end */
+
+ // MTK-START, SMS part, CB extension
+ static final int RIL_REQUEST_REMOVE_CB_MESSAGE = (RIL_REQUEST_MTK_BASE + 104);
+ // MTK-END, SMS part, CB extension
+
+ // NAS configuration for voice call
+ // 0: voice centric
+ // 1: data centric
+ static final int RIL_REQUEST_SET_DATA_CENTRIC = (RIL_REQUEST_MTK_BASE + 105);
+
+ /// M: IMS feature. @{
+ static final int RIL_REQUEST_ADD_IMS_CONFERENCE_CALL_MEMBER = (RIL_REQUEST_MTK_BASE + 106);
+ static final int RIL_REQUEST_REMOVE_IMS_CONFERENCE_CALL_MEMBER = (RIL_REQUEST_MTK_BASE + 107);
+ static final int RIL_REQUEST_DIAL_WITH_SIP_URI = (RIL_REQUEST_MTK_BASE + 108);
+ static final int RIL_REQUEST_RETRIEVE_HELD_CALL = (RIL_REQUEST_MTK_BASE + 109);
+ /// @}
+
+ /* M: call control part start */
+ static final int RIL_REQUEST_SET_SPEECH_CODEC_INFO = (RIL_REQUEST_MTK_BASE + 110);
+ /* M: call control part end */
+ /// M: CC33 LTE
+ static final int RIL_REQUEST_SET_DATA_ON_TO_MD = (RIL_REQUEST_MTK_BASE + 111);
+ static final int RIL_REQUEST_SET_REMOVE_RESTRICT_EUTRAN_MODE = (RIL_REQUEST_MTK_BASE + 112);
+
+ /* M: call control part start */
+ static final int RIL_REQUEST_SET_IMS_CALL_STATUS = (RIL_REQUEST_MTK_BASE + 113);
+ /* M: call control part end */
+
+ static final int RIL_REQUEST_EVDO_SUPPORT_BASE = 2100;
+ static final int RIL_REQUEST_RADIO_POWER_CARD_SWITCH = (RIL_REQUEST_EVDO_SUPPORT_BASE + 0);
+
+ // oh no again
+ static final int RIL_UNSOL_SET_PHONE_RAT_FAMILY_COMPLETE = 1042;
+
+ static final int RIL_UNSOL_MTK_BASE = 3000;
+ static final int RIL_UNSOL_NEIGHBORING_CELL_INFO = (RIL_UNSOL_MTK_BASE + 0);
+ static final int RIL_UNSOL_NETWORK_INFO = (RIL_UNSOL_MTK_BASE + 1);
+ static final int RIL_UNSOL_PHB_READY_NOTIFICATION = (RIL_UNSOL_MTK_BASE + 2);
+ static final int RIL_UNSOL_SIM_INSERTED_STATUS = (RIL_UNSOL_MTK_BASE + 3);
+ static final int RIL_UNSOL_RADIO_TEMPORARILY_UNAVAILABLE = (RIL_UNSOL_MTK_BASE + 4);
+ static final int RIL_UNSOL_ME_SMS_STORAGE_FULL = (RIL_UNSOL_MTK_BASE + 5);
+ static final int RIL_UNSOL_SMS_READY_NOTIFICATION = (RIL_UNSOL_MTK_BASE + 6);
+ static final int RIL_UNSOL_SCRI_RESULT = (RIL_UNSOL_MTK_BASE + 7);
+ static final int RIL_UNSOL_SIM_MISSING = (RIL_UNSOL_MTK_BASE + 8);
+ static final int RIL_UNSOL_GPRS_DETACH = (RIL_UNSOL_MTK_BASE + 9);
+ //MTK-START [mtk04070][120208][ALPS00233196] ATCI for unsolicited response
+ static final int RIL_UNSOL_ATCI_RESPONSE = (RIL_UNSOL_MTK_BASE + 10);
+ //MTK-END [mtk04070][120208][ALPS00233196] ATCI for unsolicited response
+ static final int RIL_UNSOL_SIM_RECOVERY = (RIL_UNSOL_MTK_BASE + 11);
+ static final int RIL_UNSOL_VIRTUAL_SIM_ON = (RIL_UNSOL_MTK_BASE + 12);
+ static final int RIL_UNSOL_VIRTUAL_SIM_OFF = (RIL_UNSOL_MTK_BASE + 13);
+ static final int RIL_UNSOL_INVALID_SIM = (RIL_UNSOL_MTK_BASE + 14);
+ static final int RIL_UNSOL_RESPONSE_PS_NETWORK_STATE_CHANGED = (RIL_UNSOL_MTK_BASE + 15);
+ static final int RIL_UNSOL_RESPONSE_ACMT = (RIL_UNSOL_MTK_BASE + 16);
+ static final int RIL_UNSOL_EF_CSP_PLMN_MODE_BIT = (RIL_UNSOL_MTK_BASE + 17);
+ static final int RIL_UNSOL_IMEI_LOCK = (RIL_UNSOL_MTK_BASE + 18);
+ static final int RIL_UNSOL_RESPONSE_MMRR_STATUS_CHANGED = (RIL_UNSOL_MTK_BASE + 19);
+ static final int RIL_UNSOL_SIM_PLUG_OUT = (RIL_UNSOL_MTK_BASE + 20);
+ static final int RIL_UNSOL_SIM_PLUG_IN = (RIL_UNSOL_MTK_BASE + 21);
+ static final int RIL_UNSOL_RESPONSE_ETWS_NOTIFICATION = (RIL_UNSOL_MTK_BASE + 22);
+ static final int RIL_UNSOL_RESPONSE_PLMN_CHANGED = (RIL_UNSOL_MTK_BASE + 23);
+ static final int RIL_UNSOL_RESPONSE_REGISTRATION_SUSPENDED = (RIL_UNSOL_MTK_BASE + 24);
+ static final int RIL_UNSOL_STK_EVDL_CALL = (RIL_UNSOL_MTK_BASE + 25);
+ static final int RIL_UNSOL_DATA_PACKETS_FLUSH = (RIL_UNSOL_MTK_BASE + 26);
+ static final int RIL_UNSOL_FEMTOCELL_INFO = (RIL_UNSOL_MTK_BASE + 27);
+ static final int RIL_UNSOL_STK_SETUP_MENU_RESET = (RIL_UNSOL_MTK_BASE + 28);
+ static final int RIL_UNSOL_APPLICATION_SESSION_ID_CHANGED = (RIL_UNSOL_MTK_BASE + 29);
+ /// M: For updating call ids for conference call after SRVCC is done.
+ static final int RIL_UNSOL_ECONF_SRVCC_INDICATION = (RIL_UNSOL_MTK_BASE + 30);
+ // IMS
+ static final int RIL_UNSOL_IMS_ENABLE_DONE = (RIL_UNSOL_MTK_BASE + 31);
+ static final int RIL_UNSOL_IMS_DISABLE_DONE = (RIL_UNSOL_MTK_BASE + 32);
+ static final int RIL_UNSOL_IMS_REGISTRATION_INFO = (RIL_UNSOL_MTK_BASE + 33);
+ //VoLTE
+ static final int RIL_UNSOL_DEDICATE_BEARER_ACTIVATED = (RIL_UNSOL_MTK_BASE + 34);
+ static final int RIL_UNSOL_DEDICATE_BEARER_MODIFIED = (RIL_UNSOL_MTK_BASE + 35);
+ static final int RIL_UNSOL_DEDICATE_BEARER_DEACTIVATED = (RIL_UNSOL_MTK_BASE + 36);
+
+ //sm cause rac
+ static final int RIL_UNSOL_RAC_UPDATE = (RIL_UNSOL_MTK_BASE + 37);
+
+ //[VoLTE]Conf. call merged/added result
+ static final int RIL_UNSOL_ECONF_RESULT_INDICATION = (RIL_UNSOL_MTK_BASE + 38);
+
+ //Remote SIM ME lock related APIs [Start]
+ static final int RIL_UNSOL_MELOCK_NOTIFICATION = (RIL_UNSOL_MTK_BASE + 39);
+ //Remote SIM ME lock related APIs [END]
+
+ /* M: call control part start */
+ static final int RIL_UNSOL_CALL_FORWARDING = (RIL_UNSOL_MTK_BASE + 40);
+ static final int RIL_UNSOL_CRSS_NOTIFICATION = (RIL_UNSOL_MTK_BASE + 41);
+ static final int RIL_UNSOL_INCOMING_CALL_INDICATION = (RIL_UNSOL_MTK_BASE + 42);
+ static final int RIL_UNSOL_CIPHER_INDICATION = (RIL_UNSOL_MTK_BASE + 43);
+ static final int RIL_UNSOL_CNAP = (RIL_UNSOL_MTK_BASE + 44);
+ /* M: call control part end */
+ static final int RIL_UNSOL_SIM_COMMON_SLOT_NO_CHANGED = (RIL_UNSOL_MTK_BASE + 45);
+ //Combine attach
+ static final int RIL_UNSOL_DATA_ALLOWED = (RIL_UNSOL_MTK_BASE + 46);
+ static final int RIL_UNSOL_STK_CALL_CTRL = (RIL_UNSOL_MTK_BASE + 47);
+ static final int RIL_UNSOL_VOLTE_EPS_NETWORK_FEATURE_SUPPORT = (RIL_UNSOL_MTK_BASE + 48);
+
+ /// M: IMS feature. @{
+ static final int RIL_UNSOL_CALL_INFO_INDICATION = (RIL_UNSOL_MTK_BASE + 49);
+ /// @}
+
+ static final int RIL_UNSOL_VOLTE_EPS_NETWORK_FEATURE_INFO = (RIL_UNSOL_MTK_BASE + 50);
+ static final int RIL_UNSOL_SRVCC_HANDOVER_INFO_INDICATION = (RIL_UNSOL_MTK_BASE + 51);
+ /* M: call control part start */
+ static final int RIL_UNSOL_SPEECH_CODEC_INFO = (RIL_UNSOL_MTK_BASE + 52);
+ /* M: call control part end */
+
+ //MTK-START for MD state change
+ static final int RIL_UNSOL_MD_STATE_CHANGE = (RIL_UNSOL_MTK_BASE + 53);
+ //MTK-END for MD state change
+ // M: CC33 URC
+ static final int RIL_UNSOL_REMOVE_RESTRICT_EUTRAN = (RIL_UNSOL_MTK_BASE + 54);
+
+ // IMS client on AP shall get the information of MO Data Barring and SSAC barring
+ static final int RIL_UNSOL_MO_DATA_BARRING_INFO = (RIL_UNSOL_MTK_BASE + 55);
+ static final int RIL_UNSOL_SSAC_BARRING_INFO = (RIL_UNSOL_MTK_BASE + 56);
+
+//MTK_TC1_FEATURE for LGE CSMCC_MO_CALL_MODIFIED {
+ static final int RIL_UNSOL_RESPONSE_MO_CALL_STATE_CHANGED = (RIL_UNSOL_MTK_BASE + 57);
+//}
+
+ /* M: Add C2K proprietary start */
+ static final int RIL_REQUEST_C2K_BASE = 4000;
+ static final int RIL_REQUEST_GET_NITZ_TIME = (RIL_REQUEST_C2K_BASE + 0);
+ static final int RIL_REQUEST_QUERY_UIM_INSERTED = (RIL_REQUEST_C2K_BASE + 1);
+ static final int RIL_REQUEST_SWITCH_HPF = (RIL_REQUEST_C2K_BASE + 2);
+ static final int RIL_REQUEST_SET_AVOID_SYS = (RIL_REQUEST_C2K_BASE + 3);
+ static final int RIL_REQUEST_QUERY_AVOID_SYS = (RIL_REQUEST_C2K_BASE + 4);
+ static final int RIL_REQUEST_QUERY_CDMA_NETWORK_INFO = (RIL_REQUEST_C2K_BASE + 5);
+ static final int RIL_REQUEST_GET_LOCAL_INFO = (RIL_REQUEST_C2K_BASE + 6);
+ static final int RIL_REQUEST_UTK_REFRESH = (RIL_REQUEST_C2K_BASE + 7);
+ static final int RIL_REQUEST_QUERY_SMS_AND_PHONEBOOK_STATUS = (RIL_REQUEST_C2K_BASE + 8);
+ static final int RIL_REQUEST_QUERY_NETWORK_REGISTRATION = (RIL_REQUEST_C2K_BASE + 9);
+ static final int RIL_REQUEST_AGPS_TCP_CONNIND = (RIL_REQUEST_C2K_BASE + 10);
+ static final int RIL_REQUEST_AGPS_SET_MPC_IPPORT = (RIL_REQUEST_C2K_BASE + 11);
+ static final int RIL_REQUEST_AGPS_GET_MPC_IPPORT = (RIL_REQUEST_C2K_BASE + 12);
+ static final int RIL_REQUEST_SET_MEID = (RIL_REQUEST_C2K_BASE + 13);
+ static final int RIL_REQUEST_SET_REG_RESUME = (RIL_REQUEST_C2K_BASE + 14);
+ static final int RIL_REQUEST_ENABLE_REG_PAUSE = (RIL_REQUEST_C2K_BASE + 15);
+ static final int RIL_REQUEST_SET_ETS_DEV = (RIL_REQUEST_C2K_BASE + 16);
+ static final int RIL_REQUEST_WRITE_MDN = (RIL_REQUEST_C2K_BASE + 17);
+ static final int RIL_REQUEST_SET_VIA_TRM = (RIL_REQUEST_C2K_BASE + 18);
+ static final int RIL_REQUEST_SET_ARSI_THRESHOLD = (RIL_REQUEST_C2K_BASE + 19);
+
+ static final int RIL_UNSOL_C2K_BASE = 5000;
+ static final int RIL_UNSOL_CDMA_CALL_ACCEPTED = (RIL_UNSOL_C2K_BASE + 0);
+ static final int RIL_UNSOL_UTK_SESSION_END = (RIL_UNSOL_C2K_BASE + 1);
+ static final int RIL_UNSOL_UTK_PROACTIVE_COMMAND = (RIL_UNSOL_C2K_BASE + 2);
+ static final int RIL_UNSOL_UTK_EVENT_NOTIFY = (RIL_UNSOL_C2K_BASE + 3);
+ static final int RIL_UNSOL_VIA_GPS_EVENT = (RIL_UNSOL_C2K_BASE + 4);
+ static final int RIL_UNSOL_VIA_NETWORK_TYPE_CHANGE = (RIL_UNSOL_C2K_BASE + 5);
+ static final int RIL_UNSOL_VIA_PLMN_CHANGE_REG_PAUSE = (RIL_UNSOL_C2K_BASE + 6);
+ static final int RIL_UNSOL_VIA_INVALID_SIM_DETECTED = (RIL_UNSOL_C2K_BASE + 7);
+ /* M: Add C2K proprietary end */
}
diff --git a/telephony/java/com/android/internal/telephony/TelephonyIntents.java b/telephony/java/com/android/internal/telephony/TelephonyIntents.java
index 99f262a..4f07228 100644
--- a/telephony/java/com/android/internal/telephony/TelephonyIntents.java
+++ b/telephony/java/com/android/internal/telephony/TelephonyIntents.java
@@ -424,4 +424,259 @@ public class TelephonyIntents {
public static final String ACTION_CAPABILITY_SWITCH_DONE
= "com.android.phone.ACTION_CAPABILITY_SWITCH_DONE";
+ // MTK additions
+
+ /**
+ * Broadcast Action: An attempt to set phone RAT family has changed. This has the following
+ * extra values:
+ *
+ * - phones RAT family - A PhoneRatFamily array,
+ * contain phone ID and new RAT family for each phone.
+ *
+ * @internal
+ */
+ public static final String ACTION_SET_PHONE_RAT_FAMILY_DONE =
+ "android.intent.action.ACTION_SET_PHONE_RAT_FAMILY_DONE";
+ /**
+ * @internal
+ */
+ public static final String EXTRA_PHONES_RAT_FAMILY = "phonesRatFamily";
+
+ /**
+ * Broadcast Action: An attempt to set phone RAT family has failed.
+ *
+ * - phone ID - A int, indicates the failed phone.
+ *
+ * @internal
+ */
+ public static final String ACTION_SET_PHONE_RAT_FAMILY_FAILED =
+ "android.intent.action.ACTION_SET_PHONE_RAT_FAMILY_FAILED";
+ /**
+ * @internal
+ */
+ public static final String EXTRA_PHONES_ID = "phoneId";
+
+ // Added by M begin
+
+ /**
+ * Broadcast Action: To activate an application to unlock SIM lock.
+ * The intent will have the following extra value:
+ *
+ * - reason
- The reason why ss is {@code LOCKED}; null otherwise.
+ *
+ * - {@code PIN}
- locked on PIN1
+ * - {@code PUK}
- locked on PUK1
+ * - {@code NETWORK}
- locked on network personalization
+ * - {@code NETWORK_SUBSET}
- locked on network subset personalization
+ * - {@code CORPORATE}
- locked on corporate personalization
+ * - {@code SERVICE_PROVIDER}
- locked on service proiver personalization
+ * - {@code SIM}
- locked on SIM personalization
+ *
+ *
+ * @internal
+ */
+ // FIXME: need to add subId, slotId, phoneId extra value comments.
+ public static final String ACTION_UNLOCK_SIM_LOCK
+ = "mediatek.intent.action.ACTION_UNLOCK_SIM_LOCK";
+
+
+ /**
+ * Broadcast Action: The sim card application state has changed. (only support ISIM currently)
+ * The intent will have the following extra values:
+ *
+ * - phoneName
- A string version of the phone name.
+ * - ss
- The sim state. One of:
+ *
+ * - {@code ABSENT}
- SIM card not found
+ * - {@code LOCKED}
- SIM card locked (see {@code reason})
+ * - {@code READY}
- SIM card ready
+ * - {@code IMSI}
- FIXME: what is this state?
+ * - {@code LOADED}
- SIM card data loaded
+ *
+ * - reason
- The reason why ss is {@code LOCKED}; null otherwise.
+ *
+ * - {@code PIN}
- locked on PIN1
+ * - {@code PUK}
- locked on PUK1
+ * - {@code NETWORK}
- locked on network personalization
+ *
+ * - appid
- The application id.
+ *
+ *
+ * This is a protected intent that can only be sent
+ * by the system.
+ */
+ // FIXME: need to add subId, slotId, phoneId extra value comments.
+ public static final String ACTION_SIM_STATE_CHANGED_MULTI_APPLICATION
+ = "mediatek.intent.action.ACTION_SIM_STATE_CHANGED_MULTI_APPLICATION";
+
+ /**
+ * Do SIM Recovery Done.
+ */
+ public static final String ACTION_SIM_RECOVERY_DONE = "com.android.phone.ACTION_SIM_RECOVERY_DONE";
+
+ // ALPS00302698 ENS
+ /**
+ * This event is broadcasted when CSP PLMN is changed
+ * @internal
+ */
+ public static final String ACTION_EF_CSP_CONTENT_NOTIFY = "android.intent.action.ACTION_EF_CSP_CONTENT_NOTIFY";
+ public static final String INTENT_KEY_PLMN_MODE_BIT = "plmn_mode_bit";
+
+ // ALPS00302702 RAT balancing
+ public static final String ACTION_EF_RAT_CONTENT_NOTIFY = "android.intent.action.ACTION_EF_RAT_CONTENT_NOTIFY";
+ public static final String INTENT_KEY_EF_RAT_CONTENT = "ef_rat_content";
+ public static final String INTENT_KEY_EF_RAT_STATUS = "ef_rat_status";
+
+ public static final String ACTION_COMMON_SLOT_NO_CHANGED = "com.mediatek.phone.ACTION_COMMON_SLOT_NO_CHANGED";
+
+
+ /**
+ * Broadcast Action: ACMT Network Service Status Indicator
+ * The intent will have the following extra values:
+ *
+ * - CauseCode - specify the reject cause code from MM/GMM/EMM
+ * - Cause - the reject cause
-
+ *
+ */
+ public static final String ACTION_ACMT_NETWORK_SERVICE_STATUS_INDICATOR
+ = "mediatek.intent.action.acmt_nw_service_status";
+
+ //MTK-START [mtk80589][121026][ALPS00376525] STK dialog pop up caused ISVR
+ public static final String ACTION_IVSR_NOTIFY
+ = "mediatek.intent.action.IVSR_NOTIFY";
+
+ public static final String INTENT_KEY_IVSR_ACTION = "action";
+ //MTK-END [mtk80589][121026][ALPS00376525] STK dialog pop up caused ISVR
+
+ /* ALPS01139189 */
+ /**
+ * This event is broadcasted when frmework start/stop hiding network state update
+ * @internal
+ */
+ public static final String ACTION_HIDE_NETWORK_STATE = "mediatek.intent.action.ACTION_HIDE_NETWORK_STATE";
+ public static final String EXTRA_ACTION = "action";
+ public static final String EXTRA_REAL_SERVICE_STATE = "state";
+
+ /**
+ * This event is broadcasted when the located PLMN is changed
+ * @internal
+ */
+ public static final String ACTION_LOCATED_PLMN_CHANGED = "mediatek.intent.action.LOCATED_PLMN_CHANGED";
+
+ /**
+ * This event is broadcasted when the IMS registeration state is changed
+ */
+ public static final String ACTION_IMS_STATE_CHANGED = "android.intent.action.IMS_SERVICE_STATE";
+
+ /**
+ * This extra value is the IMS registeration state
+ */
+ public static final String EXTRA_IMS_REG_STATE_KEY = "regState"; // 0: not registered , 1: registered
+
+ // Femtocell (CSG) START
+ public static final String EXTRA_HNB_NAME = "hnbName";
+ public static final String EXTRA_CSG_ID = "csgId";
+ public static final String EXTRA_DOMAIN = "domain";
+ // Femtocell (CSG) END
+
+ /**
+ * Broadcast Action: The PHB state has changed.
+ * The intent will have the following extra values:
+ *
+ * - ready - The PHB ready state. True for ready, false for not ready
+ * - simId - The SIM ID
+ *
+ *
+ *
+ * Requires the READ_PHONE_STATE permission.
+ *
+ *
This is a protected intent that can only be sent
+ * by the system.
+ * @internal
+ */
+ public static final String ACTION_PHB_STATE_CHANGED
+ = "android.intent.action.PHB_STATE_CHANGED";
+
+ /* SIM switch start */
+ /**
+ * To notify the capability switch procedure start
+ */
+ public static String EVENT_PRE_CAPABILITY_SWITCH = "com.mediatek.PRE_CAPABILITY_SWITCH";
+ /**
+ * To notify the capability switch procedure end
+ */
+ public static String EVENT_CAPABILITY_SWITCH_DONE = "com.mediatek.CAPABILITY_SWITCH_DONE";
+ /**
+ * The target SIM Id where capability is going to set to.
+ * This is an extra information comes with EVENT_CAPABILITY_PRE_SWITCH event.
+ */
+ public static String EXTRA_MAIN_PROTOCOL_SIM = "MAIN_PROTOCOL_SIM";
+ // Added by M end
+
+ /**
+ * Broadcast Action: The modem type changed.
+ * @internal
+ * The intent will have the following extra values:
+ *
+ * - ready - The modem type after switched.
+ *
+ */
+ public static final String ACTION_MD_TYPE_CHANGE
+ = "android.intent.action.ACTION_MD_TYPE_CHANGE";
+ /** @internal */
+ public static final String EXTRA_MD_TYPE = "mdType";
+
+ /**
+ * This event is to notify when data bearer need to clear
+ */
+ public static final String ACTION_CLEAR_DATA_BEARER_NOTIFY = "android.intent.action.CLEAR_DATA_BEARER_NOTIFY";
+
+ // VOLTE
+ public static final String ACTION_ANY_DEDICATE_DATA_CONNECTION_STATE_CHANGED = "android.intent.action.ANY_DEDICATE_DATA_STATE";
+ /**
+ * This event is broadcasted when clear data bearer finished
+ */
+ public static final String ACTION_CLEAR_DATA_BEARER_FINISHED = "android.intent.action.CLEAR_DATA_BEARER_FINISHED";
+ public static final String ACTION_NOTIFY_GLOBAL_IP_ADDR = "android.intent.action.NOTIFY_GLOBAL_ADDR";
+ public static final String EXTRA_GLOBAL_IP_ADDR_KEY = "lte_global_ip_addr";
+
+ /**
+ * This event is broadcasted when ims or emergency pdn deactivated from NW in VOLTE
+ */
+ public static final String ACTION_NOTIFY_IMS_DEACTIVATED_CIDS = "android.intent.action.NOTIFY_IMS_DEACTIVATED_CIDS";
+ public static final String EXTRA_IMS_DEACTIVATED_CIDS = "ims_deactivate_cids";
+
+ /**
+ * This event is broadcasted when default pdn modified by NW in VOLTE
+ */
+ public static final String ACTION_NOTIFY_IMS_DEFAULT_PDN_MODIFICATION = "android.intent.action.NOTIFY_IMS_DEFAULT_PDN_MODIFICATION";
+ public static final String EXTRA_IMS_DEFAULT_RESPONSE_DATA_CALL = "ims_default_response_data_call";
+
+
+ /**
+ * This event is broadcasted when Stk Refresh with type REFRESH_RESULT_INIT,
+ * REFRESH_RESULT_RESET, REFRESH_INIT_FULL_FILE_UPDATED, REFRESH_INIT_FILE_UPDATED
+ * @internal
+ */
+ public static final String ACTION_REMOVE_IDLE_TEXT = "android.intent.aciton.stk.REMOVE_IDLE_TEXT";
+
+ /**
+ * @hide
+ */
+ public static final String ACTION_REMOVE_IDLE_TEXT_2 = "android.intent.aciton.stk.REMOVE_IDLE_TEXT_2";
+
+ /// M: IMS feature for SS Runtime Indication. @{
+ public static final String ACTION_LTE_MESSAGE_WAITING_INDICATION = "android.intent.action.lte.mwi";
+ public static final String EXTRA_LTE_MWI_BODY = "lte_mwi_body";
+ /// @}
+
+ /// M: c2k modify, intents. @{
+ // MCC MNC Change
+ public static final String ACTION_MCC_MNC_CHANGED = "android.intent.action.MCC_MNC_CHANGED";
+ public static final String EXTRA_MCC_MNC_CHANGED_MCC = "mcc";
+ public static final String EXTRA_MCC_MNC_CHANGED_MNC = "mnc";
+ // RADIO AVAILABLE
+ public static final String ACTION_RADIO_AVAILABLE = "android.intent.action.RADIO_AVAILABLE";
+ public static final String EXTRA_RADIO_AVAILABLE_STATE = "radio_available_state";
+ /// @}
}
diff --git a/telephony/java/com/android/internal/telephony/TelephonyProperties.java b/telephony/java/com/android/internal/telephony/TelephonyProperties.java
index db84d59..ec79f9c 100644
--- a/telephony/java/com/android/internal/telephony/TelephonyProperties.java
+++ b/telephony/java/com/android/internal/telephony/TelephonyProperties.java
@@ -248,4 +248,39 @@ public interface TelephonyProperties
* or Earpiece, based on the default audio routing strategy.
*/
static final String PROPERTY_IMS_AUDIO_OUTPUT = "persist.radio.ims.audio.output";
+
+ // MTK additions
+
+ // Added by M begin
+ /** The IMSI of the SIM
+ * Availability: SIM state must be "READY"
+ */
+ static final String PROPERTY_ICC_OPERATOR_IMSI = "gsm.sim.operator.imsi";
+
+ /**
+ * Indicate if chaneing to SIM locale is processing
+ */
+ static final String PROPERTY_SIM_LOCALE_SETTINGS = "gsm.sim.locale.waiting";
+
+ /** PROPERTY_ICC_OPERATOR_DEFAULT_NAME is the operator name for plmn which origins the SIM.
+ * Availablity: SIM state must be "READY"
+ */
+ static final String PROPERTY_ICC_OPERATOR_DEFAULT_NAME = "gsm.sim.operator.default-name";
+ // Added by M end
+
+ static final String PROPERTY_WORLD_PHONE = "ro.mtk_world_phone";
+ static final String PROPERTY_ACTIVE_MD = "ril.active.md";
+
+ /**
+ * Indicate the highest radio access capability(ex: UMTS,LTE,etc.) of modem
+ */
+ static final String PROPERTY_BASEBAND_CAPABILITY = "gsm.baseband.capability";
+ static final String PROPERTY_BASEBAND_CAPABILITY_MD2 = "gsm.baseband.capability.md2";
+
+ /**
+ * NITZ operator long name,short name, numeric (if ever received from MM information)
+ */
+ static final String PROPERTY_NITZ_OPER_CODE = "persist.radio.nitz_oper_code";
+ static final String PROPERTY_NITZ_OPER_LNAME = "persist.radio.nitz_oper_lname";
+ static final String PROPERTY_NITZ_OPER_SNAME = "persist.radio.nitz_oper_sname";
}
--
1.9.1