📄 mmipins.c
字号:
AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII, (UBYTE *)pin_data->edtbuf, MAX_PIN+1);
pin_editor_window = AUI_pin_Start(win, &editor_data);
#else /*NEW_EDITOR */
pins_loadEditDefault (&editor_data);
editor_data.editor_attr.text = pin_data->edtbuf; /* buffer to be edited */
editor_data.editor_attr.size = MAX_PIN + 1; /* limit to 8 digits */
editor_data.LeftSoftKey = TxtSoftOK;
editor_data.RightSoftKey = TxtDelete;
editor_data.TextId = TxtEnterPin1;
editor_data.Identifier = PIN1_REQ;
editor_data.min_enter = 4;
editor_data.hide = TRUE;
/* create the dialog handler */
pin_editor_window = editor_start(win, &editor_data); /* start the editor */
#endif /* NEW_EDITOR */
break;
case NO_SIM_CARD: //Text "No Sim Card "
case INVALID_CARD: //Text "Invalid SIM card "
TRACE_EVENT("NO_SIM OR INVALID_SIM");
/* API - Created the one call to generate the editor as there were two duplicate calls */
//clear the editor-buffer
memset(pin_data->edtbuf,'\0',sizeof(pin_data->edtbuf));
/* SPR#1428 - SH - New Editor changes */
#ifdef NEW_EDITOR
pins_loadEditDefault (&editor_data, TxtNull, 0);
if(event == NO_SIM_CARD)
{
AUI_edit_SetTextStr(&editor_data, TxtNull, TxtDelete, TxtNoCard, NULL);
AUI_edit_SetEvents(&editor_data, INSERT_CARD, FALSE, FOREVER, (T_AUI_EDIT_CB)pins_editor_cb);
}
else
{
AUI_edit_SetTextStr(&editor_data, TxtNull, TxtDelete, TxtInvalidCard, NULL);
AUI_edit_SetEvents(&editor_data, CARD_REJECTED, FALSE, FOREVER, (T_AUI_EDIT_CB)pins_editor_cb);
}
AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII, (UBYTE *)pin_data->edtbuf, MIN_PIN);
AUI_edit_SetAltTextStr(&editor_data, 3, TxtNull, TRUE, TxtNull);
pin_editor_window = AUI_pin_Start(win, &editor_data);
#else /*NEW_EDITOR */
pins_loadEditDefault (&editor_data);
if(event == NO_SIM_CARD)
{
editor_data.TextId = TxtNoCard;
editor_data.Identifier = INSERT_CARD;
}
else
{
editor_data.TextId = TxtInvalidCard;
editor_data.Identifier = CARD_REJECTED;
}
editor_data.editor_attr.text = pin_data->edtbuf; /* buffer to be edited */
editor_data.editor_attr.size = MIN_PIN; /* limit to 3 digits */
editor_data.LeftSoftKey = TxtNull;
editor_data.RightSoftKey = TxtDelete;
editor_data.min_enter = 3;
editor_data.destroyEditor = FALSE;
/* create the dialog handler */
pin_editor_window = editor_start(win, &editor_data); /* start the editor */
#endif /* NEW_EDITOR */
break;
case TXT_SIM_PLOCK:
pin_data->pin_case = SIM_PLOCK;
main_call_edit(win,SIM_PLOCK); // Start: enter P unlock
break;
case TXT_SIM_SPLOCK:
pin_data->pin_case = SIM_SPLOCK;
main_call_edit(win,SIM_SPLOCK); // Start: enter SP unlock
break;
case TXT_SIM_NLOCK:
pin_data->pin_case = SIM_NLOCK;
main_call_edit(win,SIM_NLOCK); // Start: enter N unlock
break;
case TXT_SIM_CLOCK:
pin_data->pin_case = SIM_CLOCK;
main_call_edit(win,SIM_CLOCK); // Start: enter C unlock
break;
case TXT_SIM_NSLOCK:
pin_data->pin_case = SIM_NSLOCK;
main_call_edit(win,SIM_NSLOCK); // Start: enter NS unlock
break;
}
switch(event)
{
case PIN_OK_INFO: // PIN was needed
case PIN_OK: // PIN wasn't needed
check_plock_to_clock(win,event);/* start sim lock procedure */
break;
case PIN_OK_END:
{
U8 uMode;
/*
*** registration in full service mode case: PIN was necessary
*/
/* SH - show welcome screen */
showwelcome(idle_get_window());
network_start_full_service ();
//GW-SPR#1035-Added STK Changes
TRACE_FUNCTION("pin_destroy 2");
}
break;
//nm insert new one
case PIN1_STATUS_END:
pin_destroy(pin_data->pin_win);// finish main pin dialog
TRACE_FUNCTION("pin_destroy 3");
break;
//nm
case TXT_SIM_LOCK_ALL:
ShowMessage(idle_get_window(), pin_data->display_id1, pin_data->display_id2);
pin_destroy(pin_data->pin_win);// finish main pin dialog
TRACE_FUNCTION("pin_destroy 4");
break;
case PUK1_UNBL_SUCC:
if((pin_data->pin_case EQ PUK1_END) || (pin_data->gsm_state && (pin_data->pin_case EQ INPUT_PUK1)))
/* sim lock check only after power on and puk verified */
/* by PUK (normal way) or by gsm unblock string */
{
check_plock_to_clock(win,event);
}
else
{
main_call_mess(win,event);
}
break;
}
switch(event)
{
case SIM_NLOCK_REQ:
case SIM_NSLOCK_REQ:
case SIM_SPLOCK_REQ:
case SIM_CLOCK_REQ:
main_call_mess(win,event);
break;
case SIM_PLOCK:
check_nlock_to_clock(win,event);
break;
case SIM_NLOCK:
check_splock_to_clock(win,event);
break;
case SIM_SPLOCK:
check_nslock_to_clock(win,event);
break;
case SIM_NSLOCK:
check_sim_clock(win,event);
break;
case SIM_CLOCK:
if(sim_unlock_sim_lock(MFW_SIM_CLOCK,(UBYTE *)pin_data->pin)EQ MFW_SIM_CLOCK)/* unlock code */
{
main_call_mess(win,SIM_UNLOCK_OK); /* finish sim unlock procedure */
}
else if(sim_unlock_sim_lock(MFW_SIM_CLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_UNLOCK_ERR)
{
main_call_mess(win,SIM_LOCK_ERR);
}
break;
default:
break;
}
}
/*******************************************************************************
$Function: check_plock_to_clock
$Description: sim lock check from PLOCK to CLOCK
$Returns: void
$Arguments: window, window handler event
*******************************************************************************/
static void check_plock_to_clock(T_MFW_HND win,USHORT event)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_pin * pin_data = (T_pin *)win_data->user; // pin main data
TRACE_FUNCTION("MmiPins:check_plock_to_clock");
/*MC SPR 1351 check all locks other than Plock for being blocked as well as locked. User can
then attempt to enter overall PUK to disable lock if need be*/
if(sim_check_sim_Plock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_LOCK_ALL);
}
else if(sim_check_sim_Plock() EQ MFW_SIM_LOCKED)
{
main_call_mess(win,SIM_PLOCK_REQ);
}
else if(sim_check_sim_Nlock() EQ MFW_SIM_LOCKED ||sim_check_sim_Nlock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_NLOCK_REQ);
}
else if(sim_check_sim_SPlock() EQ MFW_SIM_LOCKED||sim_check_sim_SPlock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_SPLOCK_REQ);
}
else if(sim_check_sim_NSlock() EQ MFW_SIM_LOCKED ||sim_check_sim_NSlock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_NSLOCK_REQ);
}
else if(sim_check_sim_Clock() EQ MFW_SIM_LOCKED|| sim_check_sim_Clock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_CLOCK_REQ);
}
else
{
switch(event)
{
case PIN_OK:
/*
*** registration in full service mode case: PIN was not necessary
*/
/* SH - show welcome screen*/
showwelcome(idle_get_window());
/*SPR 1431*/
network_start_full_service();
//GW-SPR#1035-Added STK Changes
/* NM, 110702
this destroy the only ONE SIM-handler which we have
after switching on !!
It should be at least one SIM-handler activ all the time
*/
TRACE_FUNCTION("pin_destroy 5");
break;
case PIN_OK_INFO:
main_call_mess(win,PIN_OK_INFO);
break;
case PUK1_UNBL_SUCC:
main_call_mess(win,event);
break;
default:
break;
}
}
}
/*******************************************************************************
$Function: check_nlock_to_clock
$Description: sim lock check from NLOCK to CLOCK
$Returns: void
$Arguments: window, window handler event
*******************************************************************************/
static void check_nlock_to_clock(T_MFW_HND win,USHORT event)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_pin * pin_data = (T_pin *)win_data->user; // pin main data
TRACE_FUNCTION("MmiPins:check_nlock_to_clock");
if(sim_unlock_sim_lock(MFW_SIM_PLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_PLOCK)/* P unlock code ok */
{ /*MC SPR 1351 check locks for being blocked as well as locked. User can
then attempt to enter overall PUK to disable lock*/
if(sim_check_sim_Nlock() EQ MFW_SIM_LOCKED || sim_check_sim_Nlock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_NLOCK_REQ); //check N unlock code
}
else if(sim_check_sim_SPlock() EQ MFW_SIM_LOCKED || sim_check_sim_SPlock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_SPLOCK_REQ); //check SP unlock code
}
else if(sim_check_sim_NSlock() EQ MFW_SIM_LOCKED || sim_check_sim_NSlock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_NSLOCK_REQ); //check NS unlock code
}
else if(sim_check_sim_Clock() EQ MFW_SIM_LOCKED || sim_check_sim_Clock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_CLOCK_REQ); //check C unlock code
}
else /* finish sim unlock procedure */
{
main_call_mess(win,SIM_UNLOCK_OK);
}
}
else if(sim_unlock_sim_lock(MFW_SIM_PLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_UNLOCK_ERR)
{
main_call_mess(win,SIM_LOCK_ERR);
}
}
/*******************************************************************************
$Function: check_splock_to_clock
$Description: sim lock check from SPLOCK to CLOCK
$Returns: void
$Arguments: window, window handler event
*******************************************************************************/
static void check_splock_to_clock(T_MFW_HND win,USHORT event)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_pin * pin_data = (T_pin *)win_data->user; // pin main data
TRACE_FUNCTION("MmiPins:check_splock_to_clock");
if(sim_unlock_sim_lock(MFW_SIM_NLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_NLOCK)
{/*MC SPR 1351 check locks for being blocked as well as locked. User can
then attempt to enter overall PUK to disable lock*/
if(sim_check_sim_SPlock() EQ MFW_SIM_LOCKED || sim_check_sim_SPlock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_SPLOCK_REQ); //check SP unlock code
}
else if(sim_check_sim_NSlock() EQ MFW_SIM_LOCKED|| sim_check_sim_NSlock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_NSLOCK_REQ); //check NS unlock code
}
else if(sim_check_sim_Clock() EQ MFW_SIM_LOCKED || sim_check_sim_Clock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_CLOCK_REQ); //check C unlock code
}
else /* finish sim unlock procedure */
{
main_call_mess(win,SIM_UNLOCK_OK); /* finish sim unlock procedure */
}
}
else if(sim_unlock_sim_lock(MFW_SIM_NLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_UNLOCK_ERR)
{
main_call_mess(win,SIM_LOCK_ERR);
}
}
/*******************************************************************************
$Function: check_nslock_to_clock
$Description: sim lock check from NSLOCK to CLOCK
$Returns: void
$Arguments: window, window handler event
*******************************************************************************/
static void check_nslock_to_clock(T_MFW_HND win,USHORT event)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_pin * pin_data = (T_pin *)win_data->user; // pin main data
TRACE_FUNCTION("MmiPins:check_nslock_to_clock");
if(sim_unlock_sim_lock(MFW_SIM_SPLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_SPLOCK)/* unlock code ok */
{/*MC SPR 1351 check locks for being blocked as well as locked. User can
then attempt to enter overall PUK to disable lock*/
if(sim_check_sim_NSlock() EQ MFW_SIM_LOCKED || sim_check_sim_NSlock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_NSLOCK_REQ); //check NS unlock code
}
else if(sim_check_sim_Clock() EQ MFW_SIM_LOCKED || sim_check_sim_Clock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_CLOCK_REQ); //check C unlock code
}
else /* finish sim unlock procedure */
{
main_call_mess(win,SIM_UNLOCK_OK); /* finish sim unlock procedure */
}
}
else if(sim_unlock_sim_lock(MFW_SIM_SPLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_UNLOCK_ERR)
{
main_call_mess(win,SIM_LOCK_ERR);
}
}
/*******************************************************************************
$Function: check_sim_clock
$Description: sim lock check CLOCK
$Returns: void
$Arguments: window, window handler event
*******************************************************************************/
static void check_sim_clock(T_MFW_HND win,USHORT event)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_pin * pin_data = (T_pin *)win_data->user; // pin main data
TRACE_FUNCTION("MmiPins:check_sim_lock");
if(sim_unlock_sim_lock(MFW_SIM_NSLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_NSLOCK)/* unlock code ok */
{/*MC SPR 1351 check locks for being blocked as well as locked. User can
then attempt to enter overall PUK to disable lock*/
if(sim_check_sim_Clock() EQ MFW_SIM_LOCKED || sim_check_sim_Clock() EQ MFW_SIM_BLOCKED)
{
main_call_mess(win,SIM_CLOCK_REQ); //check C unlock code
}
else /* finish sim unlock procedure */
{
main_call_mess(win,SIM_UNLOCK_OK); /* finish sim unlock procedure */
}
}
else if(sim_unlock_sim_lock(MFW_SIM_NSLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_UNLOCK_ERR)
{
main_call_mess(win,SIM_LOCK_ERR);
}
}
/*******************************************************************************
$Function: main_call_mess
$Description: help function for message dialog
$Returns: void
$Arguments: window, window handler event
*******************************************************************************/
static void main_call_mess(T_MFW_HND win, USHORT event)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_pin * pin_data = (T_pin *)win_data->user; // pin main data
T_MFW_HND pin_mess_win;
TRACE_FUNCTION("MmiPins: main_call_mess");
pin_mess_win = pin_mess_create(pin_data->pin_win);
if(pin_mess_win)
{
SEND_EVENT(pin_mess_win,event,0,pin_data);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -