1e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka/* 2e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * Copyright (C) 2006, 2012 The Android Open Source Project 3e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * 4e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * Licensed under the Apache License, Version 2.0 (the "License"); 5e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * you may not use this file except in compliance with the License. 6e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * You may obtain a copy of the License at 7e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * 8e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * http://www.apache.org/licenses/LICENSE-2.0 9e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * 10e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * Unless required by applicable law or agreed to in writing, software 11e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * distributed under the License is distributed on an "AS IS" BASIS, 12e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * See the License for the specific language governing permissions and 14e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * limitations under the License. 15e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka */ 16e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka 17d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenkapackage com.android.internal.telephony.uicc; 18e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka 19ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Savilleimport android.telephony.Rlog; 20e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka 21e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenkaimport com.android.internal.telephony.CommandsInterface; 22e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka 23e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka/** 24e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * {@hide} 25e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka * This class should be used to access files in CSIM ADF 26e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka */ 27e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenkapublic final class CsimFileHandler extends IccFileHandler implements IccConstants { 28cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville static final String LOG_TAG = "CsimFH"; 29e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka 30e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka public CsimFileHandler(UiccCardApplication app, String aid, CommandsInterface ci) { 31e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka super(app, aid, ci); 32e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 33e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka 34e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka @Override 35e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka protected String getEFPath(int efid) { 36e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka switch(efid) { 37e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_SMS: 38e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_CST: 39e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_FDN: 40e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_MSISDN: 41e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_RUIM_SPN: 42e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_CSIM_LI: 43e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_CSIM_MDN: 44e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_CSIM_IMSIM: 45e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_CSIM_CDMAHOME: 46e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_CSIM_EPRL: 472351b17aba5350004fc76707f3b3d2859ce773c8xinhe case EF_CSIM_MIPUPP: 48e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka return MF_SIM + DF_ADF; 49e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 50e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka String path = getCommonIccEFPath(efid); 51e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka if (path == null) { 52e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka // The EFids in UICC phone book entries are decided by the card manufacturer. 53e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka // So if we don't match any of the cases above and if its a UICC return 54e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka // the global 3g phone book path. 55e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka return MF_SIM + DF_TELECOM + DF_PHONEBOOK; 56e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 57e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka return path; 58e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 59e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka 60e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka @Override 61e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka protected void logd(String msg) { 62ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Saville Rlog.d(LOG_TAG, msg); 63e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 64e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka 65e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka @Override 66e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka protected void loge(String msg) { 67ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Saville Rlog.e(LOG_TAG, msg); 68e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 69e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka} 70