133034b13cae1429d526722374bd39be3f9605ae4Wink Saville/*
233034b13cae1429d526722374bd39be3f9605ae4Wink Saville * Copyright (C) 2012 The Android Open Source Project
333034b13cae1429d526722374bd39be3f9605ae4Wink Saville *
433034b13cae1429d526722374bd39be3f9605ae4Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
533034b13cae1429d526722374bd39be3f9605ae4Wink Saville * you may not use this file except in compliance with the License.
633034b13cae1429d526722374bd39be3f9605ae4Wink Saville * You may obtain a copy of the License at
733034b13cae1429d526722374bd39be3f9605ae4Wink Saville *
833034b13cae1429d526722374bd39be3f9605ae4Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
933034b13cae1429d526722374bd39be3f9605ae4Wink Saville *
1033034b13cae1429d526722374bd39be3f9605ae4Wink Saville * Unless required by applicable law or agreed to in writing, software
1133034b13cae1429d526722374bd39be3f9605ae4Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
1233034b13cae1429d526722374bd39be3f9605ae4Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1333034b13cae1429d526722374bd39be3f9605ae4Wink Saville * See the License for the specific language governing permissions and
1433034b13cae1429d526722374bd39be3f9605ae4Wink Saville * limitations under the License.
1533034b13cae1429d526722374bd39be3f9605ae4Wink Saville */
1633034b13cae1429d526722374bd39be3f9605ae4Wink Savillepackage com.android.internal.telephony;
1733034b13cae1429d526722374bd39be3f9605ae4Wink Saville
1833034b13cae1429d526722374bd39be3f9605ae4Wink Saville/**
1933034b13cae1429d526722374bd39be3f9605ae4Wink Saville * {@hide}
2033034b13cae1429d526722374bd39be3f9605ae4Wink Saville */
2133034b13cae1429d526722374bd39be3f9605ae4Wink Savillepublic class IccCardConstants {
2233034b13cae1429d526722374bd39be3f9605ae4Wink Saville
2333034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* The extra data for broacasting intent INTENT_ICC_STATE_CHANGE */
2433034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_KEY_ICC_STATE = "ss";
25ceb9bbc5df7c384d5a6b3dec916e1c838f994536Alex Yakavenka    /* UNKNOWN means the ICC state is unknown */
26ceb9bbc5df7c384d5a6b3dec916e1c838f994536Alex Yakavenka    public static final String INTENT_VALUE_ICC_UNKNOWN = "UNKNOWN";
2733034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* NOT_READY means the ICC interface is not ready (eg, radio is off or powering on) */
2833034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_VALUE_ICC_NOT_READY = "NOT_READY";
2933034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* ABSENT means ICC is missing */
3033034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_VALUE_ICC_ABSENT = "ABSENT";
3133034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* LOCKED means ICC is locked by pin or by network */
3233034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_VALUE_ICC_LOCKED = "LOCKED";
3333034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* READY means ICC is ready to access */
3433034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_VALUE_ICC_READY = "READY";
3533034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* IMSI means ICC IMSI is ready in property */
3633034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_VALUE_ICC_IMSI = "IMSI";
3733034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* LOADED means all ICC records, including IMSI, are loaded */
3833034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_VALUE_ICC_LOADED = "LOADED";
3933034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* The extra data for broacasting intent INTENT_ICC_STATE_CHANGE */
4033034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_KEY_LOCKED_REASON = "reason";
4133034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* PIN means ICC is locked on PIN1 */
4233034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_VALUE_LOCKED_ON_PIN = "PIN";
4333034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* PUK means ICC is locked on PUK1 */
4433034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_VALUE_LOCKED_ON_PUK = "PUK";
4533034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* NETWORK means ICC is locked on NETWORK PERSONALIZATION */
4633034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_VALUE_LOCKED_NETWORK = "NETWORK";
4733034b13cae1429d526722374bd39be3f9605ae4Wink Saville    /* PERM_DISABLED means ICC is permanently disabled due to puk fails */
4833034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public static final String INTENT_VALUE_ABSENT_ON_PERM_DISABLED = "PERM_DISABLED";
4933034b13cae1429d526722374bd39be3f9605ae4Wink Saville
50022668bf33ead5de5eb8633f0dea2b0f30455df6Alex Yakavenka    /**
51022668bf33ead5de5eb8633f0dea2b0f30455df6Alex Yakavenka     * This is combination of IccCardStatus.CardState and IccCardApplicationStatus.AppState
52022668bf33ead5de5eb8633f0dea2b0f30455df6Alex Yakavenka     * for external apps (like PhoneApp) to use
53022668bf33ead5de5eb8633f0dea2b0f30455df6Alex Yakavenka     *
54022668bf33ead5de5eb8633f0dea2b0f30455df6Alex Yakavenka     * UNKNOWN is a transient state, for example, after user inputs ICC pin under
55022668bf33ead5de5eb8633f0dea2b0f30455df6Alex Yakavenka     * PIN_REQUIRED state, the query for ICC status returns UNKNOWN before it
56022668bf33ead5de5eb8633f0dea2b0f30455df6Alex Yakavenka     * turns to READY
5733034b13cae1429d526722374bd39be3f9605ae4Wink Saville     */
5833034b13cae1429d526722374bd39be3f9605ae4Wink Saville    public enum State {
5933034b13cae1429d526722374bd39be3f9605ae4Wink Saville        UNKNOWN,
6033034b13cae1429d526722374bd39be3f9605ae4Wink Saville        ABSENT,
6133034b13cae1429d526722374bd39be3f9605ae4Wink Saville        PIN_REQUIRED,
6233034b13cae1429d526722374bd39be3f9605ae4Wink Saville        PUK_REQUIRED,
6333034b13cae1429d526722374bd39be3f9605ae4Wink Saville        NETWORK_LOCKED,
6433034b13cae1429d526722374bd39be3f9605ae4Wink Saville        READY,
6533034b13cae1429d526722374bd39be3f9605ae4Wink Saville        NOT_READY,
6633034b13cae1429d526722374bd39be3f9605ae4Wink Saville        PERM_DISABLED;
6733034b13cae1429d526722374bd39be3f9605ae4Wink Saville
6833034b13cae1429d526722374bd39be3f9605ae4Wink Saville        public boolean isPinLocked() {
6933034b13cae1429d526722374bd39be3f9605ae4Wink Saville            return ((this == PIN_REQUIRED) || (this == PUK_REQUIRED));
7033034b13cae1429d526722374bd39be3f9605ae4Wink Saville        }
7133034b13cae1429d526722374bd39be3f9605ae4Wink Saville
7233034b13cae1429d526722374bd39be3f9605ae4Wink Saville        public boolean iccCardExist() {
7333034b13cae1429d526722374bd39be3f9605ae4Wink Saville            return ((this == PIN_REQUIRED) || (this == PUK_REQUIRED)
7433034b13cae1429d526722374bd39be3f9605ae4Wink Saville                    || (this == NETWORK_LOCKED) || (this == READY)
7533034b13cae1429d526722374bd39be3f9605ae4Wink Saville                    || (this == PERM_DISABLED));
7633034b13cae1429d526722374bd39be3f9605ae4Wink Saville        }
7733034b13cae1429d526722374bd39be3f9605ae4Wink Saville    }
7833034b13cae1429d526722374bd39be3f9605ae4Wink Saville}
79