如何让密码输入的字符停留一段时间后再转换为*号

目前的设计中,数字密码输入是直接显示*号,其他字符通过物理键盘输入是先显示字符,停留一段时间后显示*,虚拟键盘输入是直接显示*号。客户需求在所有情况下,都先显示字符,然后再显示*号。 
[SOLUTION] 
对于数字密码输入先显示字符,后显示*号。请修改以下代码: 
在函数mmi_imc_key_direct_input_handler中 
语句if ((mmi_imm_get_curr_input_type() == IMM_INPUT_TYPE_ALPHANUMERIC_PASSWORD) 
|| (mmi_imm_get_curr_input_type() == IMM_INPUT_TYPE_ASCII_PASSWORD)后面添加条件: 
 ||(mmi_imm_get_curr_input_type() ==IMM_INPUT_TYPE_NUMERIC_PASSWORD)) 
让数字输入密码的方式也采用计时到了才隐藏的方法。 
对于虚拟键盘也要输入密码后先显示字符,后显示*号。请作以下修改: 
1.在函数 mmi_imc_pen_vk_insert_char中,代码 
if ( mmi_imm_is_chinese_input_method(mmi_imm_get_curr_input_mode()) &&  
mmi_ime_word_code_to_symbol(char_code) != 0xFF) 
~~~~~~~~~~~~~~~~~ 
 ~~~~~~~~~~~~~~~~~ 
else  
 { 
//改动开始 
 if ((mmi_imm_get_curr_input_type() == IMM_INPUT_TYPE_ALPHANUMERIC_PASSWORD) 
 || (mmi_imm_get_curr_input_type() == IMM_INPUT_TYPE_ASCII_PASSWORD) 
 || (mmi_imm_get_curr_input_type() == IMM_INPUT_TYPE_NUMERIC_PASSWORD)) 
 { 
 password_mode = MMI_TRUE; 
 } 
 if (password_mode) 
 { 
 insert_msg = MMI_IMC_MESSAGE_INSERT_MULTITAP_CHAR; 
 } 
 if (insert_msg == MMI_IMC_MESSAGE_INSERT_MULTITAP_CHAR) 
 { 
 mmi_imc_pen_send_imc_message(MMI_IMC_MESSAGE_START_SMART_ALPHABETIC, 0, 0); 
 } 
 if (mmi_imm_test_input(&char_code, 1)) 
 { 
 ret = mmi_imc_pen_send_imc_message( insert_msg, char_code, 0 ); 
 }  
if (ret && insert_msg == MMI_IMC_MESSAGE_INSERT_MULTITAP_CHAR) 
 { 
 mmi_imc_set_state(MMI_IMC_STATE_NUMERIC_PASSWORD_MULTITAP); 
 mmi_imc_print_string_inserted_to_editor((UI_string_type)&char_code, 1); 
 } 
 else 
 { 
 mmi_imc_pen_send_imc_message( (MMI_IMC_MESSAGE_STOP_SMART_ALPHABETIC, 0, 0); 
 } 
 if (password_mode) 
 {  
 mmi_imc_start_timer(500, mmi_imc_pen_input_password_confirm,
mmi_imc_pen_input_password_confirm); 
 } 
//添加结束 
 //mmi_imc_pen_send_imc_message(MMI_IMC_MESSAGE_INSERT_CHAR, (U32)char_code, 0);//这句是原来的
,请注销 
 #if defined(__MMI_IME_FTE_ENHANCE__) 
 ret_val = mmi_imc_pen_vk_back_to_lang(); 
 #endif  
return ret_val; 
2.添加函数: 
static void mmi_imc_pen_input_password_confirm(void) 

*----------------------------------------------------------------*/ 
* Local Variables */ 
*----------------------------------------------------------------*/ 
*----------------------------------------------------------------*/ 
* Code Body */ 
*----------------------------------------------------------------*/ 
mmi_imc_pen_send_imc_message(MMI_IMC_MESSAGE_RESET_MULTITAP_STATE, 0, 0); 
mmi_imc_set_state(MMI_IMC_STATE_INITIAL); 
mmi_imc_redraw_screen_by_state(); 

效果:所有虚拟键盘下,密码输入都先显示字符,再显示*号。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值