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: 47e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka return MF_SIM + DF_ADF; 48e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 49e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka String path = getCommonIccEFPath(efid); 50e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka if (path == null) { 51e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka // The EFids in UICC phone book entries are decided by the card manufacturer. 52e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka // So if we don't match any of the cases above and if its a UICC return 53e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka // the global 3g phone book path. 54e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka return MF_SIM + DF_TELECOM + DF_PHONEBOOK; 55e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 56e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka return path; 57e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 58e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka 59e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka @Override 60e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka protected void logd(String msg) { 61ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Saville Rlog.d(LOG_TAG, msg); 62e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 63e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka 64e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka @Override 65e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka protected void loge(String msg) { 66ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Saville Rlog.e(LOG_TAG, msg); 67e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka } 68e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka} 69