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 17c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savillepackage com.android.internal.telephony.gsm; 18c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 19c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport android.os.Message; 20c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport android.util.Log; 21c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 22c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.CommandsInterface; 23c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.IccConstants; 24c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.IccFileHandler; 25e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenkaimport com.android.internal.telephony.UiccCardApplication; 26c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 27c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville/** 28c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * {@hide} 29c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville */ 30c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savillepublic final class SIMFileHandler extends IccFileHandler implements IccConstants { 31c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville static final String LOG_TAG = "GSM"; 32c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 33c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville //***** Instance Variables 34c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 35c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville //***** Constructor 36c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 37e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka public SIMFileHandler(UiccCardApplication app, String aid, CommandsInterface ci) { 38e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka super(app, aid, ci); 39c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 40c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 41c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville //***** Overridden from IccFileHandler 42c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 43c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville @Override 44c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville protected String getEFPath(int efid) { 45c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville // TODO(): DF_GSM can be 7F20 or 7F21 to handle backward compatibility. 46c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville // Implement this after discussion with OEMs. 47c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville switch(efid) { 48c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SMS: 49c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return MF_SIM + DF_TELECOM; 50c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 51c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_EXT6: 52c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_MWIS: 53c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_MBI: 54c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SPN: 55c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_AD: 56c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_MBDN: 57c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_PNN: 58c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SPDI: 59c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SST: 60c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_CFIS: 61c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return MF_SIM + DF_GSM; 62c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 63c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_MAILBOX_CPHS: 64c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_VOICE_MAIL_INDICATOR_CPHS: 65c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_CFF_CPHS: 66c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SPN_CPHS: 67c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SPN_SHORT_CPHS: 68c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_INFO_CPHS: 69c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_CSP_CPHS: 70c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return MF_SIM + DF_GSM; 71c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 72c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville String path = getCommonIccEFPath(efid); 73c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville if (path == null) { 74c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville Log.e(LOG_TAG, "Error: EF Path being returned in null"); 75c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 76c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return path; 77c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 78c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 79e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka @Override 80c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville protected void logd(String msg) { 81c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville Log.d(LOG_TAG, "[SIMFileHandler] " + msg); 82c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 83c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 84e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka @Override 85c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville protected void loge(String msg) { 86c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville Log.e(LOG_TAG, "[SIMFileHandler] " + msg); 87c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 88c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville} 89