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