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 19c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Savilleimport android.telephony.Rlog; 20c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville 21d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenkaimport com.android.internal.telephony.uicc.IccCardStatus.PinState; 22c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 23c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 24c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville/** 25c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * See also RIL_AppStatus in include/telephony/ril.h 26c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * 27c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville * {@hide} 28c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville */ 29e287feac673ff68565b766e0e463d105fa9cef9dAlex Yakavenkapublic class IccCardApplicationStatus { 30c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville public enum AppType{ 31c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPTYPE_UNKNOWN, 32c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPTYPE_SIM, 33c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPTYPE_USIM, 34c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPTYPE_RUIM, 35c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPTYPE_CSIM, 36c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPTYPE_ISIM 37cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville } 38c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 39c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville public enum AppState{ 40c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPSTATE_UNKNOWN, 41c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPSTATE_DETECTED, 42c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPSTATE_PIN, 43c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPSTATE_PUK, 44c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPSTATE_SUBSCRIPTION_PERSO, 45c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville APPSTATE_READY; 46c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 47c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville boolean isPinRequired() { 48c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return this == APPSTATE_PIN; 49c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 50c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 51c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville boolean isPukRequired() { 52c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return this == APPSTATE_PUK; 53c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 54c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 55c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville boolean isSubscriptionPersoEnabled() { 56c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return this == APPSTATE_SUBSCRIPTION_PERSO; 57c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 58c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 59c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville boolean isAppReady() { 60c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return this == APPSTATE_READY; 61c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 62c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 63c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville boolean isAppNotReady() { 64c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return this == APPSTATE_UNKNOWN || 65c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville this == APPSTATE_DETECTED; 66c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 67cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville } 68c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 69c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville public enum PersoSubState{ 70c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_UNKNOWN, 71c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_IN_PROGRESS, 72c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_READY, 73c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_SIM_NETWORK, 74c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_SIM_NETWORK_SUBSET, 75c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_SIM_CORPORATE, 76c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_SIM_SERVICE_PROVIDER, 77c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_SIM_SIM, 78c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_SIM_NETWORK_PUK, 79c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK, 80c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_SIM_CORPORATE_PUK, 81c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK, 82c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_SIM_SIM_PUK, 83c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_NETWORK1, 84c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_NETWORK2, 85c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_HRPD, 86c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_CORPORATE, 87c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_SERVICE_PROVIDER, 88c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_RUIM, 89c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_NETWORK1_PUK, 90c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_NETWORK2_PUK, 91c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_HRPD_PUK, 92c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_CORPORATE_PUK, 93c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK, 94c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PERSOSUBSTATE_RUIM_RUIM_PUK; 95c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 96c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville boolean isPersoSubStateUnknown() { 97c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return this == PERSOSUBSTATE_UNKNOWN; 98c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 99cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville } 100c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 101c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville public AppType app_type; 102c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville public AppState app_state; 103c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville // applicable only if app_state == RIL_APPSTATE_SUBSCRIPTION_PERSO 104c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville public PersoSubState perso_substate; 105c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville // null terminated string, e.g., from 0xA0, 0x00 -> 0x41, 0x30, 0x30, 0x30 */ 106c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville public String aid; 107c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville // null terminated string 108c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville public String app_label; 109c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville // applicable to USIM and CSIM 110c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville public int pin1_replaced; 111c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville public PinState pin1; 112c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville public PinState pin2; 113c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 114d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenka public AppType AppTypeFromRILInt(int type) { 115c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville AppType newType; 116c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville /* RIL_AppType ril.h */ 117c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville switch(type) { 118c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 0: newType = AppType.APPTYPE_UNKNOWN; break; 119c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 1: newType = AppType.APPTYPE_SIM; break; 120c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 2: newType = AppType.APPTYPE_USIM; break; 121c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 3: newType = AppType.APPTYPE_RUIM; break; 122c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 4: newType = AppType.APPTYPE_CSIM; break; 123c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 5: newType = AppType.APPTYPE_ISIM; break; 124c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville default: 125c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville newType = AppType.APPTYPE_UNKNOWN; 126c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville loge("AppTypeFromRILInt: bad RIL_AppType: " + type + " use APPTYPE_UNKNOWN"); 127c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 128c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return newType; 129c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 130c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 131d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenka public AppState AppStateFromRILInt(int state) { 132c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville AppState newState; 133c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville /* RIL_AppState ril.h */ 134c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville switch(state) { 135c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 0: newState = AppState.APPSTATE_UNKNOWN; break; 136c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 1: newState = AppState.APPSTATE_DETECTED; break; 137c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 2: newState = AppState.APPSTATE_PIN; break; 138c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 3: newState = AppState.APPSTATE_PUK; break; 139c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 4: newState = AppState.APPSTATE_SUBSCRIPTION_PERSO; break; 140c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 5: newState = AppState.APPSTATE_READY; break; 141c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville default: 142c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville newState = AppState.APPSTATE_UNKNOWN; 143c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville loge("AppStateFromRILInt: bad state: " + state + " use APPSTATE_UNKNOWN"); 144c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 145c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return newState; 146c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 147c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 148d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenka public PersoSubState PersoSubstateFromRILInt(int substate) { 149c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PersoSubState newSubState; 150c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville /* RIL_PeroSubstate ril.h */ 151c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville switch(substate) { 152c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 0: newSubState = PersoSubState.PERSOSUBSTATE_UNKNOWN; break; 153c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 1: newSubState = PersoSubState.PERSOSUBSTATE_IN_PROGRESS; break; 154c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 2: newSubState = PersoSubState.PERSOSUBSTATE_READY; break; 155c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 3: newSubState = PersoSubState.PERSOSUBSTATE_SIM_NETWORK; break; 156c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 4: newSubState = PersoSubState.PERSOSUBSTATE_SIM_NETWORK_SUBSET; break; 157c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 5: newSubState = PersoSubState.PERSOSUBSTATE_SIM_CORPORATE; break; 158c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 6: newSubState = PersoSubState.PERSOSUBSTATE_SIM_SERVICE_PROVIDER; break; 159c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 7: newSubState = PersoSubState.PERSOSUBSTATE_SIM_SIM; break; 160c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 8: newSubState = PersoSubState.PERSOSUBSTATE_SIM_NETWORK_PUK; break; 161c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 9: newSubState = PersoSubState.PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK; break; 162c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 10: newSubState = PersoSubState.PERSOSUBSTATE_SIM_CORPORATE_PUK; break; 163c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 11: newSubState = PersoSubState.PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK; break; 164c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 12: newSubState = PersoSubState.PERSOSUBSTATE_SIM_SIM_PUK; break; 165c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 13: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_NETWORK1; break; 166c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 14: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_NETWORK2; break; 167c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 15: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_HRPD; break; 168c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 16: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_CORPORATE; break; 169c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 17: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_SERVICE_PROVIDER; break; 170c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 18: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_RUIM; break; 171c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 19: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_NETWORK1_PUK; break; 172c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 20: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_NETWORK2_PUK; break; 173c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 21: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_HRPD_PUK ; break; 174c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 22: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_CORPORATE_PUK; break; 175c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 23: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK; break; 176c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 24: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_RUIM_PUK; break; 177c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville default: 178c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville newSubState = PersoSubState.PERSOSUBSTATE_UNKNOWN; 179c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville loge("PersoSubstateFromRILInt: bad substate: " + substate 180c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville + " use PERSOSUBSTATE_UNKNOWN"); 181c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 182c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return newSubState; 183c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 184c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 185d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenka public PinState PinStateFromRILInt(int state) { 186c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville PinState newPinState; 187c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville switch(state) { 188c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 0: 189c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville newPinState = PinState.PINSTATE_UNKNOWN; 190c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville break; 191c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 1: 192c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville newPinState = PinState.PINSTATE_ENABLED_NOT_VERIFIED; 193c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville break; 194c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 2: 195c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville newPinState = PinState.PINSTATE_ENABLED_VERIFIED; 196c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville break; 197c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 3: 198c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville newPinState = PinState.PINSTATE_DISABLED; 199c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville break; 200c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 4: 201c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville newPinState = PinState.PINSTATE_ENABLED_BLOCKED; 202c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville break; 203c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville case 5: 204c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville newPinState = PinState.PINSTATE_ENABLED_PERM_BLOCKED; 205c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville break; 206c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville default: 207c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville newPinState = PinState.PINSTATE_UNKNOWN; 208c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville loge("PinStateFromRILInt: bad pin state: " + state + " use PINSTATE_UNKNOWN"); 209c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 210c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return newPinState; 211c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 212c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 213c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville @Override 214c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville public String toString() { 215c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville StringBuilder sb = new StringBuilder(); 216c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville 217c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville sb.append("{").append(app_type).append(",").append(app_state); 218c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville if (app_state == AppState.APPSTATE_SUBSCRIPTION_PERSO) { 219c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville sb.append(",").append(perso_substate); 220c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 221c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville if (app_type == AppType.APPTYPE_CSIM || 222c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville app_type == AppType.APPTYPE_USIM || 223c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville app_type == AppType.APPTYPE_ISIM) { 224c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville sb.append(",pin1=").append(pin1); 225c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville sb.append(",pin2=").append(pin2); 226c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 227c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville sb.append("}"); 228c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville return sb.toString(); 229c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville } 230c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville 231c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville private void loge(String s) { 232c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville Rlog.e("IccCardApplicationStatus", s); 233c99e7c34aaca14bb1d8f9962f79d9465ccc04575Wink Saville } 234c38bb60d867c5d61d90b7179a9ed2b2d1848124fWink Saville} 235