RuimFileHandler.java revision c38bb60d867c5d61d90b7179a9ed2b2d1848124f
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
17c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savillepackage com.android.internal.telephony.cdma;
18c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
19c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport android.os.*;
20c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport android.util.Log;
21c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
22c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.CommandsInterface;
23c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.IccCard;
24c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.IccConstants;
25c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.IccException;
26c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.IccFileHandler;
27c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.IccFileTypeMismatch;
28c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.IccIoResult;
29c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.IccUtils;
30c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.PhoneBase;
31c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport com.android.internal.telephony.PhoneProxy;
32c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
33c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savilleimport java.util.ArrayList;
34c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
35c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville/**
36c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * {@hide}
37c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville */
38c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Savillepublic final class RuimFileHandler extends IccFileHandler {
39c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    static final String LOG_TAG = "CDMA";
40c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
41c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    //***** Instance Variables
42c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
43c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    //***** Constructor
44c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    public RuimFileHandler(IccCard card, String aid, CommandsInterface ci) {
45c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        super(card, aid, ci);
46c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    }
47c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
48c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    protected void finalize() {
49c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        Log.d(LOG_TAG, "RuimFileHandler finalized");
50c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    }
51c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
52c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    //***** Overridden from IccFileHandler
53c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
54c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    @Override
55c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    public void loadEFImgTransparent(int fileid, int highOffset, int lowOffset,
56c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville            int length, Message onLoaded) {
57c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        Message response = obtainMessage(EVENT_READ_ICON_DONE, fileid, 0,
58c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville                onLoaded);
59c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
60c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        mCi.iccIOForApp(COMMAND_GET_RESPONSE, fileid, "img", 0, 0,
61c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville                GET_RESPONSE_EF_IMG_SIZE_BYTES, null, null,
62c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville                mAid, response);
63c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    }
64c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
65c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    @Override
66c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    public void handleMessage(Message msg) {
67c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
68c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        super.handleMessage(msg);
69c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    }
70c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
71c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    protected String getEFPath(int efid) {
72c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        switch(efid) {
73c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        case EF_SMS:
74c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        case EF_CST:
75c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        case EF_RUIM_SPN:
76c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville            return MF_SIM + DF_CDMA;
77c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        }
78c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        return getCommonIccEFPath(efid);
79c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    }
80c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
81c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    protected void logd(String msg) {
82c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        Log.d(LOG_TAG, "[RuimFileHandler] " + msg);
83c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    }
84c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
85c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    protected void loge(String msg) {
86c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville        Log.e(LOG_TAG, "[RuimFileHandler] " + msg);
87c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville    }
88c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville
89c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville}
90