view src/ui/bmi/mmiPins.h @ 230:baa738eeb842

FCBM code implemented in first pass
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 01 May 2021 10:05:53 +0000
parents d773e7d92952
children
line wrap: on
line source


/*******************************************************************************

                    CONDAT (UK)

********************************************************************************

 This software product is the property of Condat (UK) Ltd and may not be
 disclosed to any third party without the express permission of the owner.

********************************************************************************

 $Project name: Basic MMI
 $Project code: BMI (6349)
 $Module:       MMI
 $File:         MmiPins.h
 $Revision:     1.0

 $Author:       Condat(UK)
 $Date:         25/10/00

********************************************************************************

 Description:

    MMI PIN / PUK entry handling


********************************************************************************

 $History: MmiPins.h

    Apr 03, 2007    ER: OMAPS00122561  x0pleela
    Description:   [ACI] Phone lock feature has to be supported by ACI
    Solution: Phone Lock ER implementation

    Nov 13, 2006 DR: OMAPS00103356  x0pleela
    Description: SIMP:Master unlock failed through MMI
    Solution: Defined new enums SMLK_SHOW_WRONG_PWD: if Master unlocking password is wrong
            and SMLK_SHOW_DEP_CATS_UNLOCKE: if Master unlocking operation is successful

    Sep 26, 2006 DR: OMAPS00095524 x0pleela
    Description:Implement 2 missing SIM Lock types
    Solution: Made the following changes
            - Added new enum INPUT_PBLOCK_PIN_REQ to send request for entering
                Blocked Network Password
            - Added prototype of functions setLockTypePb(), simlock_check_PBCatLock()
    xashmic 21 Sep 2006, OMAPS00095831
    Description: USB enumeration does not happen in PIN/PUK/Insert SIM scenarios
    Solution: When booting up without SIM card, or prompting for PIN/PUK/SIMP entry,
    enumerate all the USB ports automatically

    Sep 08, 2006 DR: OMAPS00091250 x0pleela
    Description:The phone resets if no MEPD data is presented
    Solution: Added new enums NO_MEPD, NO_MEPD_DATA,    TXT_NO_MEPD to display the string
            MEPD not present

    July 31, 2006 ER: OMAPS00087586, OMAPS00087587 x0pleela
    Description:    OMAPS00087586: MasterKey funtion in TCS3.2 SW
                OMAPS00087587: Time Penaly feature extend handset security
    Solution:Made the following changes
    1) Added new event  SIM_LOCK_BUSY_UNBLOCK

    July 21, 2006 ER: OMAPS00087586, OMAPS00087587 x0pleela
    Description:    OMAPS00087586: MasterKey funtion in TCS3.2 SW
                OMAPS00087587: Time Penaly feature extend handset security
    Solution:Made the following changes
        1) Defined new enumerations SMLK_MASTERKEY,INPUT_MASTER_KEY_REQ,
            SIM_LOCK_REQ_MKPWD,TXT_ENTER_MKPWD,INPUT_SIM_MKPWD,
            SIM_MKPWD_END,SIM_LOCK_MKPWD_FAIL,SIM_LOCK_MKPWDSUCC,
            SIM_LOCK_BUSY,SIM_LOCK_BUSY_BOOTUP,SMLK_SHOW_MK_FAIL,
            SMLK_SHOW_MK_SUCC
        2) Added prototypes of the following functions:
            SIMLock_MasterKeyUnlock(), SIMLock_MasterKeyUnlock_bootup(), simlock_check_masterkey(),
            simlock_check_NWCatLock(), simlock_check_NSCatLock(), simlock_check_SPCatLock(),
            simlock_check_CPCatLock(), simlock_check_SIMCatLock(), simlock_check_CatBlock(),
            SIMLock_unblock_ME(), mmi_simlock_category_menus(), mmi_simlock_master_unlock(),
            simlock_get_masterkey_status(), simp_unlock_Category()


    May 13, 2006 DR: OMAPS00067919 x0pleela
    Description: SIMP:On repeat Depersonalisation with invalid password MEPD unblock key should
                be asked not Puk1.
    Solution: Removed new enumerations UNBLOCK_CODE_REQ, UNBLOCK_REQ_ACT_INFO,
            TXT_UNBLOCK_CODE, UNBLOCK_CODE to handle unblock code for SIMP feature

    Apr 19, 2006 DR:OMAPs00067912 x0pleela
    Description: SIMP:On repeat Depersonalisation with invalid password MEPD unblock key should
                be asked not Puk1.
    Solution: Defined new enumerations UNBLOCK_CODE_REQ, UNBLOCK_REQ_ACT_INFO,
            TXT_UNBLOCK_CODE, UNBLOCK_CODE to handle unblock code for SIMP feature

    Nov 24, 2005 DR: OMAPS00045909 - Shashi Shekar B.S.
    Description: Improve IMEI control mechanism
    Solution : When MMI calls sAT_PLUSCFUN, if an IMEI invalid error is returned,
        we will block on that screen & will not allow the user to browse menus further,
        since the PS will not be booted at all!!!

    July 19, 2005 REF: CRR LOCOSTO-ENH-28173 xpradipg
    Description: To provide MMI Support to enable/disable/change password and
                query all the Personalization locks
    Solution: Integration of the changes for the same provided by the soldel
              team

    June 16, 2005  REF: CRR 31267  x0021334
    Description: Handset ignore the initializtion of the PIN1/PIN2
    Fix:    Cheking is done to ascertain if PIN1/PIN2 are initialised. If not, appropriate
           message is displayed to the user.

    25/10/00            Original Condat(UK) BMI version.

 $End

*******************************************************************************/
#ifndef _DEF_MMI_PINS_H_
#define _DEF_MMI_PINS_H_

#define ALLOC_MEMORY mfwAlloc
#define FREE_MEMORY  mfwFree

//API - 30/10/02 Move these defines to the header file 1162
#define MAX_DIG         30          /* maximum number of digits */
#define MAX_PIN         16          /* maximum number of PIN/PUK, SPR1351, simlock passwords can be up to 16 chars */
#define MAX_PIN_EN_DIS  8           /*SPR 2145 maximum string length for PIN1 when enabling/disabling PIN1 */
#define MIN_PIN         4
#define TIMERESULT      500         /*   time for results(later to change!!*/
#define TIMEOUT         30000       /* time for entering         */

//x0pleela 09 Mar, 2007 ER: OMAPS00122561
#ifdef FF_PHONE_LOCK
#define PH_MAX_DIG  4 /*MAX digits for Phone unlock code*/
#endif

/* typedefs */

typedef enum
{
    INPUT_PIN1 = PinsDummy,
    INPUT_PIN2,
    INPUT_PUK1,
#ifdef SIM_PERS
    PERM_BLK1,
#endif
    INPUT_PUK2,
    INPUT_NEW_PIN,
    INPUT_NEW_PIN_AGAIN,
    INPUT_NEW_PIN2,
    INPUT_NEW_PIN2_AGAIN,
#ifdef SIM_PERS
    INPUT_SIM_PLOCK,
    TXT_ENTER_PLOCK,
    SIM_LOCK_STATUS_END,
    SIM_PLOCK_END,
    SIM_LOCK_ENDSUCC,
    SIM_LOCK_ENDIS_FAIL,
    SIM_LOCK_REQ_OLD,
    SIM_LOCK_STATUS,
    SIM_LOCK_REQ_NEW,
    TXT_ENTER_NEW_SIMLOCK,
    TXT_ENTER_NEW_SIMLOCK_AGAIN,
    INPUT_NEW_SIM_PLOCK,
    INPUT_NEW_SIM_PLOCK_AGAIN,
    NEW_SIM_PLOCK_END,
    NEW_SIM_PLOCK_FAIL,
    SIM_LOCK_NEW_ENDISFAIL,
    SIM_LOCK_NEW_ENDSUCC,
    SIM_LOCK_REQ_FCPWD,
    SIM_LOCK_FCPWD_FAIL,
    SIM_LOCK_FCPWDSUCC,
    TXT_ENTER_FCPWD,
    INPUT_SIM_FCPWD,
    SIM_FCPWD_END,
    FAILURE_PASS_CHG,
    SIM_LOCK_NEW_ENDSUCC_CKEY,
    INPUT_SIM_PIN_REQ,
    INPUT_NLOCK_PIN_REQ,
    INPUT_NSLOCK_PIN_REQ,
    INPUT_SPLOCK_PIN_REQ,
    INPUT_CLOCK_PIN_REQ,
    SIM_LOCK_ALREADY_ENDIS,
    SIM_LOCK_PERS_CHK_OK,
    SIM_LOCK_SIM_REM,
    SMLK_PUK,
    SMLK_SHOW_FC_FAIL,
    SMLK_SHOW_FC_SUCC,
    SMLK_SHOW_FC_FAIL1,
//x0pleela 20 July, 2006 ER: OMAPS00087586, OMAPS00087587
    SMLK_MASTERKEY,
    INPUT_MASTER_KEY_REQ,
    SIM_LOCK_REQ_MKPWD,
    TXT_ENTER_MKPWD,
    INPUT_SIM_MKPWD,
    SIM_MKPWD_END,
    SIM_LOCK_MKPWD_FAIL,
    SIM_LOCK_MKPWDSUCC,
    SIM_LOCK_BUSY,
    SIM_LOCK_BUSY_BOOTUP,
    SMLK_SHOW_MK_FAIL,
    SMLK_SHOW_MK_SUCC,
    SIM_LOCK_BUSY_UNBLOCK,
    INPUT_PBLOCK_PIN_REQ, //x0pleela 25 Sep, 2006 ER: OMAPS00095524
    SMLK_SHOW_WRONG_PWD, //x0pleela 13 Nov, 2006 DR: OMAPS00103356  if Master unlocking password is wrong
    SMLK_SHOW_DEP_CATS_UNLOCKED, //x0pleela 13 Nov, 2006 DR: OMAPS00103356  if Master unlocking operation is successful
#endif
    INSERT_CARD,
    CARD_REJECTED,
    PIN_OK,
    PIN2_OK,
    PIN1_OK,
    PIN1_STATUS,
    PIN1_STATUS_END,
    PIN2_ABORT,
    PIN1_ABORT,
    PIN1_REQ,
    PIN2_REQ,
    PIN1_REQ_ATT,
    PUK1_REQ_ACT_INFO,
    PUK1_REQ,
#ifdef SIM_PERS
    PERM_BLK,
    PUK_FCM_REQ,
#endif
    PUK1_OK_END,
    PIN1_REQ_OLD,
    PIN2_REQ_OLD,
    GSM_FAIL,
    NEW_PIN_FAIL,
    NEW_PIN2_FAIL,
    PUK1_REQ_VER_INFO,
    PUK1_UNBL_FAIL_INFO,
    PUK1_UNBL_FATAL_ERROR,
    INVALID_CARD,
    NO_SIM_CARD,
    SIM_UNLOCK_OK,
    SIM_LOCK_ERR,
    SIM_PLOCK_REQ,
    SIM_NLOCK_REQ,
    SIM_NSLOCK_REQ,
    SIM_SPLOCK_REQ,
    SIM_CLOCK_REQ,
    SIM_PLOCK,
    SIM_NLOCK,
    SIM_NSLOCK,
    SIM_SPLOCK,
    SIM_CLOCK,
    TXT_ENTER_PIN1,
    TXT_ENTER_PIN2,
    TXT_ENTER_PUK1,
#ifdef SIM_PERS
    ME_PERM_BLK,
#endif
    TXT_ENTER_PUK2,
    TXT_ENTER_NEW_PIN,
    TXT_ENTER_NEW_PIN2,
    TXT_ENTER_NEW_PIN_AGAIN,
    TXT_ENTER_NEW_PIN_AGAIN2,
    TXT_INVALID_CARD,
    TXT_NO_CARD,
    TXT_INSERT_CARD,
    PIN1_END,
    PIN2_END,
    PUK1_END,
    PIN_OK_INFO,
    PIN_OK_END,
    TXT_SIM_LOCK_ALL,
    TXT_SIM_PLOCK,
    TXT_SIM_NLOCK,
    TXT_SIM_NSLOCK,
    TXT_SIM_SPLOCK,
    TXT_SIM_CLOCK,
    PUK1_UNBL_SUCC,
    SIM_REMOVED,
    SIM_LOCK_ALL,
    PIN1_CH_END,
    PIN2_CH_END,
    UNBL_OK,
    FDN_UNBL_OK,
    PIN2_REQ_ATT,
    PIN1_CH_SUCC,
    PIN2_CH_SUCC,
    PUK2_REQ,
    NEW_PIN_END,
    NEW_PIN2_END,
    PIN1_ENAB_END,
    PIN1_DISAB_END,
    PIN1_ENDIS_FAIL,
    SETT_ABORT,
    FDN_ACT_END,
    FDN_ACTIVATED,
    ADN_ACTIVATED,
    FDN_FAIL,
    FDN_WAIT,
    FDN_DEACT_END,
    IDLE_GSM_FAIL,
    PIN2_SIM_FAILURE,    // Marcus: Issue 1419: 16/12/2002
    SIM_LOCKED, // June 16, 2005  REF: CRR 31267  x0021334
    SIM_LOCKED_EMR_EDITOR, // June 16, 2005  REF: CRR 31267  x0021334
    INVALID_IMEI, // Nov 24, 2005, a0876501, DR: OMAPS00045909
    SHOW_IMEI_INVALID,// Nov 24, 2005, a0876501, DR: OMAPS00045909
    TXT_INVALID_IMEI // Nov 24, 2005, a0876501, DR: OMAPS00045909
//x0pleela 18 Oct, 2006 DR: OMAPS00099660
//Flagging the following enums
#ifdef SIM_PERS
    //x0pleela 30 Aug, 2006 DR: OMAPS00091250
    , NO_MEPD,
    NO_MEPD_DATA,
    TXT_NO_MEPD
#endif
//x0pleela 05 Mar, 2007  ER: OMAPS00122561
#ifdef FF_PHONE_LOCK
    ,PH_LOCK_ALREADY_ENDIS,
    PH_LOCK_STATUS,
    PH_LOCK_REQ_OLD,
    TXT_ENTER_PHLOCK,
    INPUT_PH_LOCK,
    PH_LOCK_END,
    PH_LOCK_REQ_NEW,
    TXT_ENTER_NEW_PHLOCK,
    INPUT_NEW_PH_LOCK,
    INPUT_NEW_PH_LOCK_AGAIN,
    TXT_ENTER_NEW_PHLOCK_AGAIN,
    NEW_PH_LOCK_END,
    NEW_PH_LOCK_FAIL,
    PH_LOCK_NEW_ENDISFAIL,
    PH_LOCK_NEW_ENDSUCC,
    TXT_PH_LOCK_ALL,
    PH_LOCK_ENDIS_FAIL,
    PH_LOCK_ENDSUCC,
    AUTO_PH_LOCK_ENDSUCC,
    PH_LOCK_SUCCESS,
    PH_LOCK_FAILURE,
    PH_UNLOCK_REQ,
    PH_LOCK_EN_FAIL,
    PH_LOCK_SUCC,
    PH_LOCK_AUTO_SUCC,
    PH_LOCK_SETT_ABORT
#endif /*FF_PHONE_LOCK*/

} PIN_CASE;

//xashmic 21 Sep 2006, OMAPS00095831
typedef enum
{
    BOOTUP_STATE_NONE = -1,
    BOOTUP_STATE_INPROGRESS,
    BOOTUP_STATE_COMPLETED
}T_BOOTUP_STATE;

typedef enum
{
    DEFAULT = 0,
    ENABLE,
    DISABLE,
    FDN_ACTIV,
    FDN_DEACTIV,
    CHANGE_PIN,
    CHANGE_PIN2,
    IDLE_GSM,
    PIN2_CHECK,
    PIN1_CHECK
}SET_CASE;

#define FOCUSSED_PINS   1
#define NOT_FOCUSSED_PINS 0

//API define for a flag for PIN Emergency Entry
extern char pin_emerg_call[MIN_PIN];

void pin_init (T_MFW_HND parent_window);
T_MFW_HND pin_create (T_MFW_HND parent_window);
void pin_destroy  (T_MFW_HND own_window);
int sim_event_cb_main (T_MFW_EVENT event, T_MFW_HND para);
T_MFW_HND pin_edt_create (T_MFW_HND parent_window);
void pin_edt_destroy  (T_MFW_HND own_window);
T_MFW_HND pin_mess_create (T_MFW_HND parent_window);
void pin_mess_destroy(T_MFW_HND own_window);
void pin_messages(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
int pin_info_cb(T_MFW_HND win, USHORT identifier, UBYTE reasons);
void sim_rem_init (T_MFW_HND parent_window);
void sim_rem_exit(T_MFW_HND parentWindow);
T_MFW_HND sim_rem_create (T_MFW_HND parent_window);
void sim_rem_destroy (T_MFW_HND own_window);
int sim_rem_cb_main (T_MFW_EVENT event, T_MFW_HND para);
int pinsIsFocussed(void);
void setting_pin_init (T_MFW_HND parent_window);
T_MFW_HND setting_pin_create (T_MFW_HND parent_window);
void setting_pin_destroy  (T_MFW_HND own_window);
int sim_event_cb_setting (T_MFW_EVENT event, T_MFW_HND para);
U16 set_pin_ch_item_flag (struct MfwMnuTag * m,struct MfwMnuAttrTag * ma,struct MfwMnuItemTag * mi);
U16 set_pin_en_item_flag (struct MfwMnuTag * m,struct MfwMnuAttrTag * ma,struct MfwMnuItemTag * mi);
U16 set_pin_dis_item_flag (struct MfwMnuTag * m,struct MfwMnuAttrTag * ma,struct MfwMnuItemTag * mi);
U16 set_pin2_ch_item_flag (struct MfwMnuTag * m,struct MfwMnuAttrTag * ma,struct MfwMnuItemTag * mi);
void set_pin_info_cb(T_MFW_HND win, USHORT identifier, UBYTE reasons);
void set_pin_messages(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
void set_pin_mess_destroy  (T_MFW_HND own_window);
T_MFW_HND set_pin_mess_create(T_MFW_HND parent_window);
void set_pin_edt_destroy  (T_MFW_HND own_window);
T_MFW_HND set_pin_edt_create (T_MFW_HND parent_window);
int pin_change (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int pin2_change (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
void setting_pin_main(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
int pin_disable (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int pin_enable (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int pin_status (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int pin2_fdn_activate (void);
int pin2_fdn_deactivate (void);
#ifdef SIM_PERS
void setLockActionLock(void);
void setLockActionUnlock(void);
void setLockActionChPwd(void);
void setLockActionChkStat(void);
int SIMLock_resetFC (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int setLockTypeNs (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int setLockTypeSp (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int setLockTypeCp (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int setLockTypePs (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int setLockTypeNw (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int get_fc_attempts_left (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int get_fc_max_value (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int get_fail_reset_fc_max_value (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int get_succ_reset_fc_max_value (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int get_fail_reset_fc_attempts_left (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int get_succ_reset_fc_attempts_left (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int get_timer_flag_value (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int get_etsi_flag_value (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int get_airtel_ind_flag_value (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
//x0pleela 20 July, 2006 ER: OMAPS00087586, OMAPS00087587
int SIMLock_MasterKeyUnlock (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int SIMLock_MasterKeyUnlock_bootup (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
//x0pleela 25 Sep, 2006 ER: OMAPS00095524
int setLockTypePb (struct MfwMnuTag * m, struct MfwMnuItemTag * i);

USHORT  simlock_check_masterkey(struct MfwMnuTag *m,
                                       struct MfwMnuAttrTag *ma,
                                       struct MfwMnuItemTag *mi);
USHORT  simlock_check_NWCatLock(struct MfwMnuTag *m,
                                       struct MfwMnuAttrTag *ma,
                                       struct MfwMnuItemTag *mi);
USHORT  simlock_check_NSCatLock(struct MfwMnuTag *m,
                                       struct MfwMnuAttrTag *ma,
                                       struct MfwMnuItemTag *mi);
USHORT  simlock_check_SPCatLock(struct MfwMnuTag *m,
                                       struct MfwMnuAttrTag *ma,
                                       struct MfwMnuItemTag *mi);
USHORT  simlock_check_CPCatLock(struct MfwMnuTag *m,
                                       struct MfwMnuAttrTag *ma,
                                       struct MfwMnuItemTag *mi);
USHORT  simlock_check_SIMCatLock(struct MfwMnuTag *m,
                                       struct MfwMnuAttrTag *ma,
                                       struct MfwMnuItemTag *mi);
USHORT  simlock_check_CatBlock(struct MfwMnuTag *m,
                                       struct MfwMnuAttrTag *ma,
                                       struct MfwMnuItemTag *mi);

//x0pleela 25 Sep, 2006 ER: OMAPS00095524
USHORT  simlock_check_PBCatLock(struct MfwMnuTag *m,
                                       struct MfwMnuAttrTag *ma,
                                       struct MfwMnuItemTag *mi);
int SIMLock_unblock_ME(struct MfwMnuTag * m, struct MfwMnuItemTag * i);
T_MFW_HND mmi_simlock_category_menus(T_MFW_HND parent);
static void mmi_simlock_master_unlock(T_MFW_HND win, UBYTE MK_Unblock_flag);
UBYTE simlock_get_masterkey_status(void);
int simp_unlock_Category(struct MfwMnuTag * m, struct MfwMnuItemTag * i);
#endif
void backpinFDNactdeact(void);
int pin2_check (T_MFW_HND parent_window);
int pin1_check (T_MFW_HND parent_window);
int pinsSetIsFocussed(void);
int fdnActivate(struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int fdnDeactivate(struct MfwMnuTag * m, struct MfwMnuItemTag * i);
U16 set_fdn_on_item_flag (struct MfwMnuTag * m, struct MfwMnuAttrTag * ma, struct MfwMnuItemTag * mi);
U16 set_fdn_off_item_flag (struct MfwMnuTag * m, struct MfwMnuAttrTag * ma, struct MfwMnuItemTag * mi);
int gsm_idle (T_MFW_HND parent_window,char * string);
void pin_exit (void);
int mmiPinsEmergencyCall(void);
void mmiPinsResetEmergencyCall(void);

T_BOOTUP_STATE getBootUpState(void);//xashmic 21 Sep 2006, OMAPS00095831

//x0pleela 06 Mar, 2007  ER: OMAPS00122561
#ifdef FF_PHONE_LOCK
int phLock_Enable_Lock (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int phLock_Automatic_On (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int phLock_Automatic_Off (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int phLock_Change_UnlockCode (struct MfwMnuTag * m, struct MfwMnuItemTag * i);
int phLock_UnLock (void);
int phLock_Lock (void);
#endif /* FF_PHONE_LOCK */
#endif