1e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville/* 2cea764088d48723d3b58c0bc3a2ffba15770bb7dWink Saville * Copyright (C) 2009 The Android Open Source Project 3cea764088d48723d3b58c0bc3a2ffba15770bb7dWink Saville * 4e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 5e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * you may not use this file except in compliance with the License. 6e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * You may obtain a copy of the License at 7e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 8e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 9e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 10e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Unless required by applicable law or agreed to in writing, software 11e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 12e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * See the License for the specific language governing permissions and 14e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * limitations under the License. 15e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 16e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 17e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savillepackage com.android.internal.telephony.cdma; 18e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 19e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savilleimport android.content.Context; 20e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savilleimport android.content.res.Resources; 21e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savilleimport android.content.res.XmlResourceParser; 22e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savilleimport android.os.Message; 23e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savilleimport android.util.Log; 2488e3f827e657ef741099b24896c17533fa9ef61eWink Savilleimport android.util.Xml; 25e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 26e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savilleimport com.android.internal.telephony.Phone; 27e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savilleimport com.android.internal.telephony.PhoneBase; 282269d1572e5fcfb725ea55f5764d8c3280d69f6dDianne Hackbornimport com.android.internal.util.XmlUtils; 29e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 30e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 3188e3f827e657ef741099b24896c17533fa9ef61eWink Savilleimport org.xmlpull.v1.XmlPullParser; 3288e3f827e657ef741099b24896c17533fa9ef61eWink Savilleimport org.xmlpull.v1.XmlPullParserException; 3388e3f827e657ef741099b24896c17533fa9ef61eWink Saville 3488e3f827e657ef741099b24896c17533fa9ef61eWink Savilleimport java.io.FileInputStream; 3588e3f827e657ef741099b24896c17533fa9ef61eWink Savilleimport java.io.FileNotFoundException; 3688e3f827e657ef741099b24896c17533fa9ef61eWink Savilleimport java.io.IOException; 37e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savilleimport java.util.HashMap; 38e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 39e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville/** 40f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville * EriManager loads the ERI file definitions and manages the CDMA roaming information. 41f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville * 42e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 43e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savillepublic final class EriManager { 44e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 45e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville class EriFile { 46e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 47e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int mVersionNumber; // File version number 48e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int mNumberOfEriEntries; // Number of entries 49e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int mEriFileType; // Eri Phase 0/1 50e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville //public int mNumberOfIconImages; // reserved for future use 51e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville //public int mIconImageType; // reserved for future use 52e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public String[] mCallPromptId; // reserved for future use 53e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public HashMap<Integer, EriInfo> mRoamIndTable; // Roaming Indicator Table 54e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 55e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public EriFile() { 56e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mVersionNumber = -1; 57e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mNumberOfEriEntries = 0; 58e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mEriFileType = -1; 59e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mCallPromptId = new String[] { "", "", "" }; 60e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mRoamIndTable = new HashMap<Integer, EriInfo>(); 61e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 62f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 63f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 64f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville class EriDisplayInformation { 65f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville public int mEriIconIndex; 66f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville public int mEriIconMode; 67f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville public String mEriIconText; 68f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 69f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville public EriDisplayInformation(int eriIconIndex, int eriIconMode, String eriIconText) { 70f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mEriIconIndex = eriIconIndex; 71f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mEriIconMode = eriIconMode; 72f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mEriIconText = eriIconText; 73f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 74f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 75f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville// public void setParameters(int eriIconIndex, int eriIconMode, String eriIconText){ 76f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville// this.mEriIconIndex = eriIconIndex; 77f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville// this.mEriIconMode = eriIconMode; 78f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville// this.mEriIconText = eriIconText; 79f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville// } 80e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 81f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville @Override 82f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville public String toString() { 83f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville return "EriDisplayInformation: {" + " IconIndex: " + mEriIconIndex + " EriIconMode: " 84f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville + mEriIconMode + " EriIconText: " + mEriIconText + " }"; 85f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 86e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 87e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 8888e3f827e657ef741099b24896c17533fa9ef61eWink Saville private static final String LOG_TAG = "CDMA"; 8988e3f827e657ef741099b24896c17533fa9ef61eWink Saville private static final boolean DBG = true; 9071f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt private static final boolean VDBG = false; 91e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 92e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public static final int ERI_FROM_XML = 0; 93e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public static final int ERI_FROM_FILE_SYSTEM = 1; 94e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public static final int ERI_FROM_MODEM = 2; 95e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 96e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private PhoneBase mPhone; 97e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private Context mContext; 98e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private int mEriFileSource = ERI_FROM_XML; 99f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville private boolean isEriFileLoaded; 100e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private EriFile mEriFile; 101e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 102e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public EriManager(PhoneBase phone, Context context, int eriFileSource) { 103e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mPhone = phone; 104e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mContext = context; 105e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mEriFileSource = eriFileSource; 106e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mEriFile = new EriFile(); 107e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 108e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 109e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void dispose() { 110e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile = new EriFile(); 111e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville isEriFileLoaded = false; 112e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 113e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 114e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 115e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void loadEriFile() { 116e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville switch (mEriFileSource) { 117e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville case ERI_FROM_MODEM: 118e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville loadEriFileFromModem(); 119e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville break; 120e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 121e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville case ERI_FROM_FILE_SYSTEM: 122e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville loadEriFileFromFileSystem(); 123e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville break; 124e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 125e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville case ERI_FROM_XML: 126e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville default: 127e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville loadEriFileFromXml(); 128e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville break; 129e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 130e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 131e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 132e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 133e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Load the ERI file from the MODEM through chipset specific RIL_REQUEST_OEM_HOOK 134e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 135e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * In this case the ERI file can be updated from the Phone Support Tool available 136e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * from the Chipset vendor 137e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 138e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private void loadEriFileFromModem() { 139e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville // NOT IMPLEMENTED, Chipset vendor/Operator specific 140e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 141e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 142e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 143e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Load the ERI file from a File System file 144e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 145e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * In this case the a Phone Support Tool to update the ERI file must be provided 146e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * to the Operator 147e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 148e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private void loadEriFileFromFileSystem() { 149e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville // NOT IMPLEMENTED, Chipset vendor/Operator specific 150e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 151e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 152e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 153e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Load the ERI file from the application framework resources encoded in XML 154e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 155e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 156e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private void loadEriFileFromXml() { 15788e3f827e657ef741099b24896c17533fa9ef61eWink Saville XmlPullParser parser = null; 15888e3f827e657ef741099b24896c17533fa9ef61eWink Saville FileInputStream stream = null; 159e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville Resources r = mContext.getResources(); 16088e3f827e657ef741099b24896c17533fa9ef61eWink Saville 16188e3f827e657ef741099b24896c17533fa9ef61eWink Saville try { 16288e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: check for alternate file"); 16388e3f827e657ef741099b24896c17533fa9ef61eWink Saville stream = new FileInputStream( 16488e3f827e657ef741099b24896c17533fa9ef61eWink Saville r.getString(com.android.internal.R.string.alternate_eri_file)); 16588e3f827e657ef741099b24896c17533fa9ef61eWink Saville parser = Xml.newPullParser(); 16688e3f827e657ef741099b24896c17533fa9ef61eWink Saville parser.setInput(stream, null); 16788e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: opened alternate file"); 16888e3f827e657ef741099b24896c17533fa9ef61eWink Saville } catch (FileNotFoundException e) { 16988e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: no alternate file"); 17088e3f827e657ef741099b24896c17533fa9ef61eWink Saville parser = null; 17188e3f827e657ef741099b24896c17533fa9ef61eWink Saville } catch (XmlPullParserException e) { 17288e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: no parser for alternate file"); 17388e3f827e657ef741099b24896c17533fa9ef61eWink Saville parser = null; 17488e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 17588e3f827e657ef741099b24896c17533fa9ef61eWink Saville 17688e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (parser == null) { 17788e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: open normal file"); 17888e3f827e657ef741099b24896c17533fa9ef61eWink Saville parser = r.getXml(com.android.internal.R.xml.eri); 17988e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 18088e3f827e657ef741099b24896c17533fa9ef61eWink Saville 181e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville try { 182e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville XmlUtils.beginDocument(parser, "EriFile"); 183e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile.mVersionNumber = Integer.parseInt( 184e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parser.getAttributeValue(null, "VersionNumber")); 185e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile.mNumberOfEriEntries = Integer.parseInt( 186e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parser.getAttributeValue(null, "NumberOfEriEntries")); 187e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile.mEriFileType = Integer.parseInt( 188e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parser.getAttributeValue(null, "EriFileType")); 189e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 190e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int parsedEriEntries = 0; 191e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville while(true) { 192e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville XmlUtils.nextElement(parser); 193e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville String name = parser.getName(); 194e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville if (name == null) { 195e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville if (parsedEriEntries != mEriFile.mNumberOfEriEntries) 196e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville Log.e(LOG_TAG, "Error Parsing ERI file: " + mEriFile.mNumberOfEriEntries 197e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + " defined, " + parsedEriEntries + " parsed!"); 198e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville break; 199e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } else if (name.equals("CallPromptId")) { 200e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int id = Integer.parseInt(parser.getAttributeValue(null, "Id")); 201e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville String text = parser.getAttributeValue(null, "CallPromptText"); 202e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville if (id >= 0 && id <= 2) { 203e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile.mCallPromptId[id] = text; 204e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } else { 205e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville Log.e(LOG_TAG, "Error Parsing ERI file: found" + id + " CallPromptId"); 206e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 207e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 208e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } else if (name.equals("EriInfo")) { 209e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int roamingIndicator = Integer.parseInt( 210e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parser.getAttributeValue(null, "RoamingIndicator")); 211e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int iconIndex = Integer.parseInt(parser.getAttributeValue(null, "IconIndex")); 212e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int iconMode = Integer.parseInt(parser.getAttributeValue(null, "IconMode")); 213e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville String eriText = parser.getAttributeValue(null, "EriText"); 214e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int callPromptId = Integer.parseInt( 215e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parser.getAttributeValue(null, "CallPromptId")); 216e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int alertId = Integer.parseInt(parser.getAttributeValue(null, "AlertId")); 217e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parsedEriEntries++; 218e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile.mRoamIndTable.put(roamingIndicator, new EriInfo (roamingIndicator, 219e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville iconIndex, iconMode, eriText, callPromptId, alertId)); 220e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 221e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 222e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 22388e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: eri parsing successful, file loaded"); 224e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville isEriFileLoaded = true; 225e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 226e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } catch (Exception e) { 227e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville Log.e(LOG_TAG, "Got exception while loading ERI file.", e); 228e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } finally { 22988e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (parser instanceof XmlResourceParser) { 23088e3f827e657ef741099b24896c17533fa9ef61eWink Saville ((XmlResourceParser)parser).close(); 23188e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 23288e3f827e657ef741099b24896c17533fa9ef61eWink Saville try { 23388e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (stream != null) { 23488e3f827e657ef741099b24896c17533fa9ef61eWink Saville stream.close(); 23588e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 23688e3f827e657ef741099b24896c17533fa9ef61eWink Saville } catch (IOException e) { 23788e3f827e657ef741099b24896c17533fa9ef61eWink Saville // Ignore 23888e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 239e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 240e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 241e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 242e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 243e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the version of the ERI file 244e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 245e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 246e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getEriFileVersion() { 247e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return mEriFile.mVersionNumber; 248e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 249e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 250e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 251e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the number of ERI entries parsed 252e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 253e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 254e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getEriNumberOfEntries() { 255e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return mEriFile.mNumberOfEriEntries; 256e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 257e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 258e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 259e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the ERI file type value ( 0 for Phase 0, 1 for Phase 1) 260e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 261e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 262e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getEriFileType() { 263e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return mEriFile.mEriFileType; 264e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 265e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 266e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 267e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns if the ERI file has been loaded 268e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 269e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 270e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public boolean isEriFileLoaded() { 271e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return isEriFileLoaded; 272e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 273e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 274e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 275e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the EriInfo record associated with roamingIndicator 276e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * or null if the entry is not found 277e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 278f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville private EriInfo getEriInfo(int roamingIndicator) { 279e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville if (mEriFile.mRoamIndTable.containsKey(roamingIndicator)) { 280e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return mEriFile.mRoamIndTable.get(roamingIndicator); 281e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } else { 282e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return null; 283e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 284e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 285f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 286f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville private EriDisplayInformation getEriDisplayInformation(int roamInd, int defRoamInd){ 287f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriDisplayInformation ret; 288f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 289febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang // Carrier can use eri.xml to customize any built-in roaming display indications 290febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang if (isEriFileLoaded) { 291febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang EriInfo eriInfo = getEriInfo(roamInd); 292febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang if (eriInfo != null) { 29361c082603fe2bc192606407c9dda2a81d92d44c5Robert Greenwalt if (VDBG) Log.v(LOG_TAG, "ERI roamInd " + roamInd + " found in ERI file"); 294febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang ret = new EriDisplayInformation( 295febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang eriInfo.mIconIndex, 296febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang eriInfo.mIconMode, 297febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang eriInfo.mEriText); 298febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang return ret; 299febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang } 300febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang } 301febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang 302f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville switch (roamInd) { 303f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville // Handling the standard roaming indicator (non-ERI) 304f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_ON: 305f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 306f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_ON, 307f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 308f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText0).toString()); 309f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3102563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 311f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_OFF: 312f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 313f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_OFF, 314f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 315f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText1).toString()); 316f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 317f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 318f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_FLASH: 319f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 320f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_FLASH, 321f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_FLASH, 322f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText2).toString()); 323f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 324f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 325f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 326f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville // Handling the standard ERI 327f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 3: 328f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 329f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 330f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 331f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText3).toString()); 332f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 333f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 334f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 4: 335f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 336f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 337f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 338f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText4).toString()); 339f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3402563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 341f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 5: 342f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 343f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 344f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 345f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText5).toString()); 346f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3472563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 348f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 6: 349f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 350f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 351f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 352f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText6).toString()); 353f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3542563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 355f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 7: 356f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 357f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 358f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 359f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText7).toString()); 360f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3612563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 362f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 8: 363f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 364f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 365f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 366f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText8).toString()); 367f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3682563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 369f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 9: 370f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 371f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 372f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 373f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText9).toString()); 374f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3752563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 376f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 10: 377f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 378f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 379f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 380f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText10).toString()); 381f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3822563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 383f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 11: 384f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 385f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 386f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 387f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText11).toString()); 388f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3892563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 390f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 12: 391f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 392f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 393f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 394f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText12).toString()); 395f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 396f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 397f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville // Handling the non standard Enhanced Roaming Indicator (roamInd > 63) 398f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville default: 399f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville if (!isEriFileLoaded) { 400f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville // ERI file NOT loaded 40188e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "ERI File not loaded"); 402f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville if(defRoamInd > 2) { 40371f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) Log.v(LOG_TAG, "ERI defRoamInd > 2 ...flashing"); 404f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 405f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_FLASH, 406f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_FLASH, 407f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal 408f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville .R.string.roamingText2).toString()); 409f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } else { 41071f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) Log.v(LOG_TAG, "ERI defRoamInd <= 2"); 411f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville switch (defRoamInd) { 412f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_ON: 413f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 414f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_ON, 415f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 416f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal 417f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville .R.string.roamingText0).toString()); 418f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 4192563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 420f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_OFF: 421f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 422f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_OFF, 423f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 424f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal 425f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville .R.string.roamingText1).toString()); 426f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 4272563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 428f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_FLASH: 429f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 430f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_FLASH, 431f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_FLASH, 432f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal 433f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville .R.string.roamingText2).toString()); 434f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 4352563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 436f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville default: 437f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation(-1, -1, "ERI text"); 438f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 439f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 440f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } else { 441f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville // ERI file loaded 442f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo eriInfo = getEriInfo(roamInd); 443f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo defEriInfo = getEriInfo(defRoamInd); 444f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville if (eriInfo == null) { 44571f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) { 44671f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt Log.v(LOG_TAG, "ERI roamInd " + roamInd 447f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville + " not found in ERI file ...using defRoamInd " + defRoamInd); 44888e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 449f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville if(defEriInfo == null) { 450f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville Log.e(LOG_TAG, "ERI defRoamInd " + defRoamInd 451f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville + " not found in ERI file ...on"); 452f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 453f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_ON, 454f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 455f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal 456f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville .R.string.roamingText0).toString()); 457f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 458f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } else { 45971f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) { 46071f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt Log.v(LOG_TAG, "ERI defRoamInd " + defRoamInd + " found in ERI file"); 46188e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 462f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 463f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville defEriInfo.mIconIndex, 464f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville defEriInfo.mIconMode, 465f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville defEriInfo.mEriText); 466f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 467f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } else { 46871f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) Log.v(LOG_TAG, "ERI roamInd " + roamInd + " found in ERI file"); 469f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 470f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville eriInfo.mIconIndex, 471f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville eriInfo.mIconMode, 472f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville eriInfo.mEriText); 473f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 474f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 475f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 476f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 47771f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) Log.v(LOG_TAG, "Displaying ERI " + ret.toString()); 478f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville return ret; 479f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 480f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 481f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville public int getCdmaEriIconIndex(int roamInd, int defRoamInd){ 482f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville return getEriDisplayInformation(roamInd, defRoamInd).mEriIconIndex; 483f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 484f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 485f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville public int getCdmaEriIconMode(int roamInd, int defRoamInd){ 486f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville return getEriDisplayInformation(roamInd, defRoamInd).mEriIconMode; 487f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 488f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 489f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville public String getCdmaEriText(int roamInd, int defRoamInd){ 490f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville return getEriDisplayInformation(roamInd, defRoamInd).mEriIconText; 491f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 492e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville} 493