10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2009 The Android Open Source Project 30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License. 60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at 70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software 110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and 140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License. 150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony.cdma; 180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Context; 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.res.Resources; 210825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.res.XmlResourceParser; 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Message; 230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.util.Log; 240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.util.Xml; 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.Phone; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.PhoneBase; 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.util.XmlUtils; 290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 310825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport org.xmlpull.v1.XmlPullParser; 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport org.xmlpull.v1.XmlPullParserException; 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 340825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.io.FileInputStream; 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.io.FileNotFoundException; 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.io.IOException; 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.HashMap; 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/** 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * EriManager loads the ERI file definitions and manages the CDMA roaming information. 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic final class EriManager { 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville class EriFile { 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int mVersionNumber; // File version number 480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int mNumberOfEriEntries; // Number of entries 490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int mEriFileType; // Eri Phase 0/1 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville //public int mNumberOfIconImages; // reserved for future use 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville //public int mIconImageType; // reserved for future use 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String[] mCallPromptId; // reserved for future use 530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public HashMap<Integer, EriInfo> mRoamIndTable; // Roaming Indicator Table 540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public EriFile() { 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.mVersionNumber = -1; 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.mNumberOfEriEntries = 0; 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.mEriFileType = -1; 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.mCallPromptId = new String[] { "", "", "" }; 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.mRoamIndTable = new HashMap<Integer, EriInfo>(); 610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville class EriDisplayInformation { 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int mEriIconIndex; 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int mEriIconMode; 670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String mEriIconText; 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public EriDisplayInformation(int eriIconIndex, int eriIconMode, String eriIconText) { 700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEriIconIndex = eriIconIndex; 710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEriIconMode = eriIconMode; 720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEriIconText = eriIconText; 730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville// public void setParameters(int eriIconIndex, int eriIconMode, String eriIconText){ 760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville// this.mEriIconIndex = eriIconIndex; 770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville// this.mEriIconMode = eriIconMode; 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville// this.mEriIconText = eriIconText; 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville// } 800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String toString() { 830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return "EriDisplayInformation: {" + " IconIndex: " + mEriIconIndex + " EriIconMode: " 840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + mEriIconMode + " EriIconText: " + mEriIconText + " }"; 850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final String LOG_TAG = "CDMA"; 890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final boolean DBG = true; 900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final boolean VDBG = false; 910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int ERI_FROM_XML = 0; 930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int ERI_FROM_FILE_SYSTEM = 1; 940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int ERI_FROM_MODEM = 2; 950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private PhoneBase mPhone; 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private Context mContext; 980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private int mEriFileSource = ERI_FROM_XML; 990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private boolean isEriFileLoaded; 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private EriFile mEriFile; 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public EriManager(PhoneBase phone, Context context, int eriFileSource) { 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.mPhone = phone; 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.mContext = context; 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.mEriFileSource = eriFileSource; 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.mEriFile = new EriFile(); 1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void dispose() { 1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEriFile = new EriFile(); 1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville isEriFileLoaded = false; 1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void loadEriFile() { 1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (mEriFileSource) { 1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case ERI_FROM_MODEM: 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville loadEriFileFromModem(); 1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case ERI_FROM_FILE_SYSTEM: 1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville loadEriFileFromFileSystem(); 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case ERI_FROM_XML: 1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville loadEriFileFromXml(); 1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Load the ERI file from the MODEM through chipset specific RIL_REQUEST_OEM_HOOK 1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * In this case the ERI file can be updated from the Phone Support Tool available 1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * from the Chipset vendor 1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private void loadEriFileFromModem() { 1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // NOT IMPLEMENTED, Chipset vendor/Operator specific 1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Load the ERI file from a File System file 1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * In this case the a Phone Support Tool to update the ERI file must be provided 1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * to the Operator 1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private void loadEriFileFromFileSystem() { 1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // NOT IMPLEMENTED, Chipset vendor/Operator specific 1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Load the ERI file from the application framework resources encoded in XML 1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private void loadEriFileFromXml() { 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville XmlPullParser parser = null; 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville FileInputStream stream = null; 1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Resources r = mContext.getResources(); 1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: check for alternate file"); 1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville stream = new FileInputStream( 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville r.getString(com.android.internal.R.string.alternate_eri_file)); 1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville parser = Xml.newPullParser(); 1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville parser.setInput(stream, null); 1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: opened alternate file"); 1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (FileNotFoundException e) { 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: no alternate file"); 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville parser = null; 1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (XmlPullParserException e) { 1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: no parser for alternate file"); 1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville parser = null; 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (parser == null) { 1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: open normal file"); 1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville parser = r.getXml(com.android.internal.R.xml.eri); 1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville XmlUtils.beginDocument(parser, "EriFile"); 1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEriFile.mVersionNumber = Integer.parseInt( 1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville parser.getAttributeValue(null, "VersionNumber")); 1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEriFile.mNumberOfEriEntries = Integer.parseInt( 1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville parser.getAttributeValue(null, "NumberOfEriEntries")); 1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEriFile.mEriFileType = Integer.parseInt( 1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville parser.getAttributeValue(null, "EriFileType")); 1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int parsedEriEntries = 0; 1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville while(true) { 1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville XmlUtils.nextElement(parser); 1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String name = parser.getName(); 1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (name == null) { 1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (parsedEriEntries != mEriFile.mNumberOfEriEntries) 1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Log.e(LOG_TAG, "Error Parsing ERI file: " + mEriFile.mNumberOfEriEntries 1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + " defined, " + parsedEriEntries + " parsed!"); 1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else if (name.equals("CallPromptId")) { 2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int id = Integer.parseInt(parser.getAttributeValue(null, "Id")); 2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String text = parser.getAttributeValue(null, "CallPromptText"); 2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (id >= 0 && id <= 2) { 2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEriFile.mCallPromptId[id] = text; 2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Log.e(LOG_TAG, "Error Parsing ERI file: found" + id + " CallPromptId"); 2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else if (name.equals("EriInfo")) { 2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int roamingIndicator = Integer.parseInt( 2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville parser.getAttributeValue(null, "RoamingIndicator")); 2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int iconIndex = Integer.parseInt(parser.getAttributeValue(null, "IconIndex")); 2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int iconMode = Integer.parseInt(parser.getAttributeValue(null, "IconMode")); 2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String eriText = parser.getAttributeValue(null, "EriText"); 2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int callPromptId = Integer.parseInt( 2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville parser.getAttributeValue(null, "CallPromptId")); 2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int alertId = Integer.parseInt(parser.getAttributeValue(null, "AlertId")); 2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville parsedEriEntries++; 2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mEriFile.mRoamIndTable.put(roamingIndicator, new EriInfo (roamingIndicator, 2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville iconIndex, iconMode, eriText, callPromptId, alertId)); 2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: eri parsing successful, file loaded"); 2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville isEriFileLoaded = true; 2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (Exception e) { 2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Log.e(LOG_TAG, "Got exception while loading ERI file.", e); 2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } finally { 2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (parser instanceof XmlResourceParser) { 2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ((XmlResourceParser)parser).close(); 2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (stream != null) { 2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville stream.close(); 2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (IOException e) { 2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Ignore 2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the version of the ERI file 2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getEriFileVersion() { 2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mEriFile.mVersionNumber; 2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the number of ERI entries parsed 2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getEriNumberOfEntries() { 2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mEriFile.mNumberOfEriEntries; 2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the ERI file type value ( 0 for Phase 0, 1 for Phase 1) 2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getEriFileType() { 2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mEriFile.mEriFileType; 2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns if the ERI file has been loaded 2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isEriFileLoaded() { 2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return isEriFileLoaded; 2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the EriInfo record associated with roamingIndicator 2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * or null if the entry is not found 2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private EriInfo getEriInfo(int roamingIndicator) { 2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (mEriFile.mRoamIndTable.containsKey(roamingIndicator)) { 2800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mEriFile.mRoamIndTable.get(roamingIndicator); 2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return null; 2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private EriDisplayInformation getEriDisplayInformation(int roamInd, int defRoamInd){ 2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriDisplayInformation ret; 2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Carrier can use eri.xml to customize any built-in roaming display indications 2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (isEriFileLoaded) { 2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo eriInfo = getEriInfo(roamInd); 2920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (eriInfo != null) { 2930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (VDBG) Log.v(LOG_TAG, "ERI roamInd " + roamInd + " found in ERI file"); 2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville eriInfo.mIconIndex, 2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville eriInfo.mIconMode, 2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville eriInfo.mEriText); 2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return ret; 2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (roamInd) { 3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Handling the standard roaming indicator (non-ERI) 3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case EriInfo.ROAMING_INDICATOR_ON: 3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_INDICATOR_ON, 3070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText0).toString()); 3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case EriInfo.ROAMING_INDICATOR_OFF: 3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_INDICATOR_OFF, 3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText1).toString()); 3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case EriInfo.ROAMING_INDICATOR_FLASH: 3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_INDICATOR_FLASH, 3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_FLASH, 3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText2).toString()); 3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Handling the standard ERI 3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case 3: 3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville roamInd, 3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText3).toString()); 3320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case 4: 3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville roamInd, 3370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText4).toString()); 3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case 5: 3420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville roamInd, 3440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText5).toString()); 3460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case 6: 3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville roamInd, 3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText6).toString()); 3530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case 7: 3560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville roamInd, 3580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText7).toString()); 3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case 8: 3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville roamInd, 3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText8).toString()); 3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case 9: 3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville roamInd, 3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText9).toString()); 3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case 10: 3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville roamInd, 3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText10).toString()); 3810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case 11: 3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville roamInd, 3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText11).toString()); 3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case 12: 3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 3920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville roamInd, 3930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 3940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal.R.string.roamingText12).toString()); 3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Handling the non standard Enhanced Roaming Indicator (roamInd > 63) 3980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 3990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (!isEriFileLoaded) { 4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // ERI file NOT loaded 4010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) Log.d(LOG_TAG, "ERI File not loaded"); 4020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if(defRoamInd > 2) { 4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (VDBG) Log.v(LOG_TAG, "ERI defRoamInd > 2 ...flashing"); 4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_INDICATOR_FLASH, 4060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_FLASH, 4070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal 4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville .R.string.roamingText2).toString()); 4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 4100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (VDBG) Log.v(LOG_TAG, "ERI defRoamInd <= 2"); 4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (defRoamInd) { 4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case EriInfo.ROAMING_INDICATOR_ON: 4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_INDICATOR_ON, 4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal 4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville .R.string.roamingText0).toString()); 4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case EriInfo.ROAMING_INDICATOR_OFF: 4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 4220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_INDICATOR_OFF, 4230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal 4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville .R.string.roamingText1).toString()); 4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case EriInfo.ROAMING_INDICATOR_FLASH: 4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_INDICATOR_FLASH, 4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_FLASH, 4320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal 4330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville .R.string.roamingText2).toString()); 4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 4370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation(-1, -1, "ERI text"); 4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // ERI file loaded 4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo eriInfo = getEriInfo(roamInd); 4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo defEriInfo = getEriInfo(defRoamInd); 4440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (eriInfo == null) { 4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (VDBG) { 4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Log.v(LOG_TAG, "ERI roamInd " + roamInd 4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + " not found in ERI file ...using defRoamInd " + defRoamInd); 4480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if(defEriInfo == null) { 4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Log.e(LOG_TAG, "ERI defRoamInd " + defRoamInd 4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + " not found in ERI file ...on"); 4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_INDICATOR_ON, 4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mContext.getText(com.android.internal 4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville .R.string.roamingText0).toString()); 4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 4590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (VDBG) { 4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Log.v(LOG_TAG, "ERI defRoamInd " + defRoamInd + " found in ERI file"); 4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 4630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville defEriInfo.mIconIndex, 4640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville defEriInfo.mIconMode, 4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville defEriInfo.mEriText); 4660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (VDBG) Log.v(LOG_TAG, "ERI roamInd " + roamInd + " found in ERI file"); 4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret = new EriDisplayInformation( 4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville eriInfo.mIconIndex, 4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville eriInfo.mIconMode, 4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville eriInfo.mEriText); 4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (VDBG) Log.v(LOG_TAG, "Displaying ERI " + ret.toString()); 4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return ret; 4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getCdmaEriIconIndex(int roamInd, int defRoamInd){ 4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return getEriDisplayInformation(roamInd, defRoamInd).mEriIconIndex; 4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getCdmaEriIconMode(int roamInd, int defRoamInd){ 4860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return getEriDisplayInformation(roamInd, defRoamInd).mEriIconMode; 4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getCdmaEriText(int roamInd, int defRoamInd){ 4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return getEriDisplayInformation(roamInd, defRoamInd).mEriIconText; 4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 493