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