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; 8871f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt private static final boolean VDBG = false; 89e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 90e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public static final int ERI_FROM_XML = 0; 91e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public static final int ERI_FROM_FILE_SYSTEM = 1; 92e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public static final int ERI_FROM_MODEM = 2; 93e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 94e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private PhoneBase mPhone; 95e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private Context mContext; 96e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private int mEriFileSource = ERI_FROM_XML; 97f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville private boolean isEriFileLoaded; 98e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private EriFile mEriFile; 99e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 100e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public EriManager(PhoneBase phone, Context context, int eriFileSource) { 101e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mPhone = phone; 102e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mContext = context; 103e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mEriFileSource = eriFileSource; 104e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville this.mEriFile = new EriFile(); 105e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 106e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 107e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void dispose() { 108e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile = new EriFile(); 109e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville isEriFileLoaded = false; 110e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 111e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 112e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 113e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public void loadEriFile() { 114e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville switch (mEriFileSource) { 115e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville case ERI_FROM_MODEM: 116e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville loadEriFileFromModem(); 117e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville break; 118e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 119e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville case ERI_FROM_FILE_SYSTEM: 120e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville loadEriFileFromFileSystem(); 121e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville break; 122e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 123e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville case ERI_FROM_XML: 124e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville default: 125e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville loadEriFileFromXml(); 126e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville break; 127e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 128e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 129e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 130e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 131e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Load the ERI file from the MODEM through chipset specific RIL_REQUEST_OEM_HOOK 132e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 133e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * In this case the ERI file can be updated from the Phone Support Tool available 134e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * from the Chipset vendor 135e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 136e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private void loadEriFileFromModem() { 137e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville // NOT IMPLEMENTED, Chipset vendor/Operator specific 138e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 139e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 140e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 141e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Load the ERI file from a File System file 142e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 143e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * In this case the a Phone Support Tool to update the ERI file must be provided 144e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * to the Operator 145e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 146e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private void loadEriFileFromFileSystem() { 147e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville // NOT IMPLEMENTED, Chipset vendor/Operator specific 148e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 149e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 150e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 151e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Load the ERI file from the application framework resources encoded in XML 152e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 153e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 154e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville private void loadEriFileFromXml() { 15588e3f827e657ef741099b24896c17533fa9ef61eWink Saville XmlPullParser parser = null; 15688e3f827e657ef741099b24896c17533fa9ef61eWink Saville FileInputStream stream = null; 157e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville Resources r = mContext.getResources(); 15888e3f827e657ef741099b24896c17533fa9ef61eWink Saville 15988e3f827e657ef741099b24896c17533fa9ef61eWink Saville try { 16088e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: check for alternate file"); 16188e3f827e657ef741099b24896c17533fa9ef61eWink Saville stream = new FileInputStream( 16288e3f827e657ef741099b24896c17533fa9ef61eWink Saville r.getString(com.android.internal.R.string.alternate_eri_file)); 16388e3f827e657ef741099b24896c17533fa9ef61eWink Saville parser = Xml.newPullParser(); 16488e3f827e657ef741099b24896c17533fa9ef61eWink Saville parser.setInput(stream, null); 16588e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: opened alternate file"); 16688e3f827e657ef741099b24896c17533fa9ef61eWink Saville } catch (FileNotFoundException e) { 16788e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: no alternate file"); 16888e3f827e657ef741099b24896c17533fa9ef61eWink Saville parser = null; 16988e3f827e657ef741099b24896c17533fa9ef61eWink Saville } catch (XmlPullParserException e) { 17088e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: no parser for alternate file"); 17188e3f827e657ef741099b24896c17533fa9ef61eWink Saville parser = null; 17288e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 17388e3f827e657ef741099b24896c17533fa9ef61eWink Saville 17488e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (parser == null) { 17588e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: open normal file"); 17688e3f827e657ef741099b24896c17533fa9ef61eWink Saville parser = r.getXml(com.android.internal.R.xml.eri); 17788e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 17888e3f827e657ef741099b24896c17533fa9ef61eWink Saville 179e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville try { 180e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville XmlUtils.beginDocument(parser, "EriFile"); 181e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile.mVersionNumber = Integer.parseInt( 182e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parser.getAttributeValue(null, "VersionNumber")); 183e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile.mNumberOfEriEntries = Integer.parseInt( 184e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parser.getAttributeValue(null, "NumberOfEriEntries")); 185e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile.mEriFileType = Integer.parseInt( 186e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parser.getAttributeValue(null, "EriFileType")); 187e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 188e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int parsedEriEntries = 0; 189e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville while(true) { 190e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville XmlUtils.nextElement(parser); 191e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville String name = parser.getName(); 192e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville if (name == null) { 193e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville if (parsedEriEntries != mEriFile.mNumberOfEriEntries) 194e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville Log.e(LOG_TAG, "Error Parsing ERI file: " + mEriFile.mNumberOfEriEntries 195e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville + " defined, " + parsedEriEntries + " parsed!"); 196e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville break; 197e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } else if (name.equals("CallPromptId")) { 198e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int id = Integer.parseInt(parser.getAttributeValue(null, "Id")); 199e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville String text = parser.getAttributeValue(null, "CallPromptText"); 200e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville if (id >= 0 && id <= 2) { 201e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile.mCallPromptId[id] = text; 202e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } else { 203e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville Log.e(LOG_TAG, "Error Parsing ERI file: found" + id + " CallPromptId"); 204e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 205e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 206e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } else if (name.equals("EriInfo")) { 207e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int roamingIndicator = Integer.parseInt( 208e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parser.getAttributeValue(null, "RoamingIndicator")); 209e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int iconIndex = Integer.parseInt(parser.getAttributeValue(null, "IconIndex")); 210e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int iconMode = Integer.parseInt(parser.getAttributeValue(null, "IconMode")); 211e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville String eriText = parser.getAttributeValue(null, "EriText"); 212e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int callPromptId = Integer.parseInt( 213e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parser.getAttributeValue(null, "CallPromptId")); 214e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int alertId = Integer.parseInt(parser.getAttributeValue(null, "AlertId")); 215e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville parsedEriEntries++; 216e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville mEriFile.mRoamIndTable.put(roamingIndicator, new EriInfo (roamingIndicator, 217e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville iconIndex, iconMode, eriText, callPromptId, alertId)); 218e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 219e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 220e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 22188e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "loadEriFileFromXml: eri parsing successful, file loaded"); 222e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville isEriFileLoaded = true; 223e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 224e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } catch (Exception e) { 225e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville Log.e(LOG_TAG, "Got exception while loading ERI file.", e); 226e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } finally { 22788e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (parser instanceof XmlResourceParser) { 22888e3f827e657ef741099b24896c17533fa9ef61eWink Saville ((XmlResourceParser)parser).close(); 22988e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 23088e3f827e657ef741099b24896c17533fa9ef61eWink Saville try { 23188e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (stream != null) { 23288e3f827e657ef741099b24896c17533fa9ef61eWink Saville stream.close(); 23388e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 23488e3f827e657ef741099b24896c17533fa9ef61eWink Saville } catch (IOException e) { 23588e3f827e657ef741099b24896c17533fa9ef61eWink Saville // Ignore 23688e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 237e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 238e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 239e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 240e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 241e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the version of the ERI file 242e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 243e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 244e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getEriFileVersion() { 245e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return mEriFile.mVersionNumber; 246e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 247e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 248e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 249e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the number of ERI entries parsed 250e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 251e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 252e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getEriNumberOfEntries() { 253e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return mEriFile.mNumberOfEriEntries; 254e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 255e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 256e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 257e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the ERI file type value ( 0 for Phase 0, 1 for Phase 1) 258e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 259e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 260e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public int getEriFileType() { 261e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return mEriFile.mEriFileType; 262e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 263e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 264e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 265e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns if the ERI file has been loaded 266e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 267e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 268e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville public boolean isEriFileLoaded() { 269e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return isEriFileLoaded; 270e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 271e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 272e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 273e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the EriInfo record associated with roamingIndicator 274e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * or null if the entry is not found 275e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 276f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville private EriInfo getEriInfo(int roamingIndicator) { 277e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville if (mEriFile.mRoamIndTable.containsKey(roamingIndicator)) { 278e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return mEriFile.mRoamIndTable.get(roamingIndicator); 279e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } else { 280e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville return null; 281e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 282e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville } 283f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 284f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville private EriDisplayInformation getEriDisplayInformation(int roamInd, int defRoamInd){ 285f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriDisplayInformation ret; 286f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 287febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang // Carrier can use eri.xml to customize any built-in roaming display indications 288febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang if (isEriFileLoaded) { 289febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang EriInfo eriInfo = getEriInfo(roamInd); 290febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang if (eriInfo != null) { 29161c082603fe2bc192606407c9dda2a81d92d44c5Robert Greenwalt if (VDBG) Log.v(LOG_TAG, "ERI roamInd " + roamInd + " found in ERI file"); 292febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang ret = new EriDisplayInformation( 293febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang eriInfo.mIconIndex, 294febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang eriInfo.mIconMode, 295febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang eriInfo.mEriText); 296febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang return ret; 297febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang } 298febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang } 299febb94cdbb7c7b7091401d21824bfab32b9daca5Libin Tang 300f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville switch (roamInd) { 301f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville // Handling the standard roaming indicator (non-ERI) 302f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_ON: 303f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 304f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_ON, 305f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 306f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText0).toString()); 307f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3082563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 309f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_OFF: 310f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 311f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_OFF, 312f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 313f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText1).toString()); 314f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 315f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 316f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_FLASH: 317f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 318f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_FLASH, 319f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_FLASH, 320f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText2).toString()); 321f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 322f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 323f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 324f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville // Handling the standard ERI 325f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 3: 326f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 327f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 328f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 329f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText3).toString()); 330f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 331f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 332f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 4: 333f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 334f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 335f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 336f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText4).toString()); 337f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3382563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 339f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 5: 340f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 341f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 342f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 343f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText5).toString()); 344f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3452563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 346f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 6: 347f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 348f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 349f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 350f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText6).toString()); 351f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3522563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 353f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 7: 354f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 355f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 356f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 357f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText7).toString()); 358f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3592563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 360f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 8: 361f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 362f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 363f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 364f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText8).toString()); 365f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3662563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 367f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 9: 368f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 369f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 370f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 371f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText9).toString()); 372f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3732563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 374f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 10: 375f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 376f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 377f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 378f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText10).toString()); 379f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3802563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 381f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 11: 382f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 383f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 384f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 385f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText11).toString()); 386f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 3872563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 388f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case 12: 389f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 390f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville roamInd, 391f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 392f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal.R.string.roamingText12).toString()); 393f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 394f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 395f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville // Handling the non standard Enhanced Roaming Indicator (roamInd > 63) 396f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville default: 397f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville if (!isEriFileLoaded) { 398f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville // ERI file NOT loaded 39988e3f827e657ef741099b24896c17533fa9ef61eWink Saville if (DBG) Log.d(LOG_TAG, "ERI File not loaded"); 400f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville if(defRoamInd > 2) { 40171f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) Log.v(LOG_TAG, "ERI defRoamInd > 2 ...flashing"); 402f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 403f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_FLASH, 404f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_FLASH, 405f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal 406f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville .R.string.roamingText2).toString()); 407f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } else { 40871f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) Log.v(LOG_TAG, "ERI defRoamInd <= 2"); 409f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville switch (defRoamInd) { 410f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_ON: 411f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 412f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_ON, 413f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 414f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal 415f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville .R.string.roamingText0).toString()); 416f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 4172563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 418f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_OFF: 419f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 420f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_OFF, 421f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 422f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal 423f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville .R.string.roamingText1).toString()); 424f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 4252563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 426f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville case EriInfo.ROAMING_INDICATOR_FLASH: 427f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 428f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_FLASH, 429f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_FLASH, 430f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal 431f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville .R.string.roamingText2).toString()); 432f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 4332563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 434f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville default: 435f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation(-1, -1, "ERI text"); 436f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 437f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 438f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } else { 439f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville // ERI file loaded 440f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo eriInfo = getEriInfo(roamInd); 441f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo defEriInfo = getEriInfo(defRoamInd); 442f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville if (eriInfo == null) { 44371f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) { 44471f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt Log.v(LOG_TAG, "ERI roamInd " + roamInd 445f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville + " not found in ERI file ...using defRoamInd " + defRoamInd); 44688e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 447f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville if(defEriInfo == null) { 448f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville Log.e(LOG_TAG, "ERI defRoamInd " + defRoamInd 449f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville + " not found in ERI file ...on"); 450f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 451f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_INDICATOR_ON, 452f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville EriInfo.ROAMING_ICON_MODE_NORMAL, 453f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville mContext.getText(com.android.internal 454f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville .R.string.roamingText0).toString()); 455f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 456f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } else { 45771f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) { 45871f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt Log.v(LOG_TAG, "ERI defRoamInd " + defRoamInd + " found in ERI file"); 45988e3f827e657ef741099b24896c17533fa9ef61eWink Saville } 460f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 461f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville defEriInfo.mIconIndex, 462f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville defEriInfo.mIconMode, 463f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville defEriInfo.mEriText); 464f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 465f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } else { 46671f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) Log.v(LOG_TAG, "ERI roamInd " + roamInd + " found in ERI file"); 467f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville ret = new EriDisplayInformation( 468f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville eriInfo.mIconIndex, 469f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville eriInfo.mIconMode, 470f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville eriInfo.mEriText); 471f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 472f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 473f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville break; 474f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 47571f48a21b0533a5b9dc1c0eab3c675800b78fa5eRobert Greenwalt if (VDBG) Log.v(LOG_TAG, "Displaying ERI " + ret.toString()); 476f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville return ret; 477f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 478f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 479f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville public int getCdmaEriIconIndex(int roamInd, int defRoamInd){ 480f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville return getEriDisplayInformation(roamInd, defRoamInd).mEriIconIndex; 481f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 482f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 483f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville public int getCdmaEriIconMode(int roamInd, int defRoamInd){ 484f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville return getEriDisplayInformation(roamInd, defRoamInd).mEriIconMode; 485f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 486f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville 487f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville public String getCdmaEriText(int roamInd, int defRoamInd){ 488f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville return getEriDisplayInformation(roamInd, defRoamInd).mEriIconText; 489f315238a2b07c7e84f6ade800e504f520d262e66Wink Saville } 490e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville} 491