1c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville/* 2c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * Copyright (C) 2008 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 19c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport android.os.*; 20ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Savilleimport android.telephony.Rlog; 21c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 22c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.CommandsInterface; 23c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 24c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville/** 25c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * {@hide} 26c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville */ 27c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savillepublic final class RuimFileHandler extends IccFileHandler { 28cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville static final String LOG_TAG = "RuimFH"; 29c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 30c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville //***** Instance Variables 31c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 32c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville //***** Constructor 33e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka public RuimFileHandler(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 public void loadEFImgTransparent(int fileid, int highOffset, int lowOffset, 41c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville int length, Message onLoaded) { 42c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville Message response = obtainMessage(EVENT_READ_ICON_DONE, fileid, 0, 43c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville onLoaded); 44c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 451b0331d1901d63ac65efb200b0e19d7aa4eb2b8bduho.ro /* Per TS 31.102, for displaying of Icon, under 461b0331d1901d63ac65efb200b0e19d7aa4eb2b8bduho.ro * DF Telecom and DF Graphics , EF instance(s) (4FXX,transparent files) 471b0331d1901d63ac65efb200b0e19d7aa4eb2b8bduho.ro * are present. The possible image file identifiers (EF instance) for 481b0331d1901d63ac65efb200b0e19d7aa4eb2b8bduho.ro * EF img ( 4F20, linear fixed file) are : 4F01 ... 4F05. 491b0331d1901d63ac65efb200b0e19d7aa4eb2b8bduho.ro * It should be MF_SIM + DF_TELECOM + DF_GRAPHICS, same path as EF IMG 501b0331d1901d63ac65efb200b0e19d7aa4eb2b8bduho.ro */ 511b0331d1901d63ac65efb200b0e19d7aa4eb2b8bduho.ro mCi.iccIOForApp(COMMAND_GET_RESPONSE, fileid, getEFPath(EF_IMG), 0, 0, 52c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville GET_RESPONSE_EF_IMG_SIZE_BYTES, null, null, 53c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville mAid, response); 54c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 55c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 56c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville @Override 57c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville protected String getEFPath(int efid) { 58c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville switch(efid) { 59c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_SMS: 60c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_CST: 61c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case EF_RUIM_SPN: 62e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_CSIM_LI: 63e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_CSIM_MDN: 64e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_CSIM_IMSIM: 65e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_CSIM_CDMAHOME: 66e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka case EF_CSIM_EPRL: 672351b17aba5350004fc76707f3b3d2859ce773c8xinhe case EF_CSIM_MIPUPP: 68c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return MF_SIM + DF_CDMA; 69c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 70c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return getCommonIccEFPath(efid); 71c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 72c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 73e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka @Override 74c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville protected void logd(String msg) { 75ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Saville Rlog.d(LOG_TAG, "[RuimFileHandler] " + msg); 76c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 77c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 78e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenka @Override 79c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville protected void loge(String msg) { 80ded9c0af7fa49504c047275ed34c2d3b22bf0c3aWink Saville Rlog.e(LOG_TAG, "[RuimFileHandler] " + msg); 81c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 82c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 83c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville} 84