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