1c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville/* 2c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * Copyright (C) 2006 The Android Open Source Project 3c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * 4c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 5c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * you may not use this file except in compliance with the License. 6c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * You may obtain a copy of the License at 7c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * 8c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * http://www.apache.org/licenses/LICENSE-2.0 9c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * 10c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * Unless required by applicable law or agreed to in writing, software 11c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * distributed under the License is distributed on an "AS IS" BASIS, 12c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * See the License for the specific language governing permissions and 14c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * limitations under the License. 15c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville */ 16c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 17d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenkapackage com.android.internal.telephony.uicc; 18c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 19ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Savilleimport android.telephony.Rlog; 20c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 21c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.CommandsInterface; 22c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 23c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville/** 24c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * {@hide} 25c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville */ 26c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savillepublic final class SIMFileHandler extends IccFileHandler implements IccConstants { 27cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville static final String LOG_TAG = "SIMFileHandler"; 28c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 29c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville //***** Instance Variables 30c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 31c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville //***** Constructor 32c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 33e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka public SIMFileHandler(UiccCardApplication app, String aid, CommandsInterface ci) { 34e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka super(app, aid, ci); 35c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 36c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 37c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville //***** Overridden from IccFileHandler 38c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 39c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville @Override 40c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville protected String getEFPath(int efid) { 41c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville // TODO(): DF_GSM can be 7F20 or 7F21 to handle backward compatibility. 42c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville // Implement this after discussion with OEMs. 43c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville switch(efid) { 44c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SMS: 45c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return MF_SIM + DF_TELECOM; 46c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 47c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_EXT6: 48c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_MWIS: 49c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_MBI: 50c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SPN: 51c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_AD: 52c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_MBDN: 53c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_PNN: 54c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SPDI: 55c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SST: 56c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_CFIS: 572f837b8058eba0bc59e983c67efbc00cd9a80eeeHyejin Kim case EF_GID1: 587234bd8664dbec97858f3f635eaa01c77d2f2881Junda Liu case EF_GID2: 59c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return MF_SIM + DF_GSM; 60c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 61c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_MAILBOX_CPHS: 62c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_VOICE_MAIL_INDICATOR_CPHS: 63c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_CFF_CPHS: 64c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SPN_CPHS: 65c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SPN_SHORT_CPHS: 66c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_INFO_CPHS: 67c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_CSP_CPHS: 68c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return MF_SIM + DF_GSM; 69c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 70c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville String path = getCommonIccEFPath(efid); 71c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville if (path == null) { 72ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Saville Rlog.e(LOG_TAG, "Error: EF Path being returned in null"); 73c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 74c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return path; 75c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 76c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 77e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka @Override 78c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville protected void logd(String msg) { 79cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville Rlog.d(LOG_TAG, msg); 80c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 81c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 82e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka @Override 83c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville protected void loge(String msg) { 84cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville Rlog.e(LOG_TAG, msg); 85c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 86c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville} 87