package Ġcom . y my . app nest . ui . setting . fragment Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . y my . core . base . Base Fragment Ċ import Ġcom . y my . core . ext s . hide Soft Input Ċ import Ġcom . y my . core . ext s . show Soft Input Ċ import Ġcom . y my . app nest . R Ċ import Ġcom . y my . app nest . custom . F iler Enter Space Text Watcher Ċ import Ġcom . y my . app nest . databinding . Fragment Change Password Binding Ċ Ċ /** Ċ Ġ* ĠCreated Ġon Ġ 2 0 2 0 / 8 / 8 Ġ 1 4 : 1 7 . Ċ Ġ* Ġ@ author : han x ue qi ang Ċ Ġ* Ġ@ version : Ġ 1 . 0 . 0 Ċ Ġ* Ġ@ desc : Ċ Ġ*/ Ċ class ĠChange Password Fragment Ġ: ĠBase Fragment ( true ) Ġ{ ĊĊĠĠĠ Ġval Ġm Binding : ĠFragment Change Password Binding Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠFragment Change Password Binding . inflate ( layout Inflater ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Binding View (): ĠView Ġ= Ġm Binding . root ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Title Bar () ĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġshow Soft Input ( it , Ġm Binding . ed Old Password ) Ġ} ĊĠĠĠĠĠĠĠ Ġm Binding . container . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġcon Ġ-> Ġhide Soft Input ( con , Ġit ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Binding . ed Old Password . input Type Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor Info . TYPE _ CLASS _ TEXT Ġor ĠEditor Info . TYPE _ TEXT _ VARI ATION _ PASSWORD ĊĠĠĠĠĠĠĠ Ġm Binding . ed New Password . input Type Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor Info . TYPE _ CLASS _ TEXT Ġor ĠEditor Info . TYPE _ TEXT _ VARI ATION _ PASSWORD ĊĠĠĠĠĠĠĠ Ġm Binding . ed New Password Confirm . input Type Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor Info . TYPE _ CLASS _ TEXT Ġor ĠEditor Info . TYPE _ TEXT _ VARI ATION _ PASSWORD ĊĊĠĠĠĠĠĠĠ Ġm Binding . ed Old Password . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġit 1 Ġ-> Ġshow Soft Input ( it 1 , Ġit Ġas ĠEditText ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Binding . ed New Password . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġit 1 Ġ-> Ġshow Soft Input ( it 1 , Ġit Ġas ĠEditText ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Binding . ed New Password Confirm . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġit 1 Ġ-> Ġshow Soft Input ( it 1 , Ġit Ġas ĠEditText ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Binding . toggle Old Password Visible . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Ed Password Visible ( m Binding . toggle Old Password Visible , Ġm Binding . ed Old Password ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Binding . toggle New Password Visible . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Ed Password Visible ( m Binding . toggle New Password Visible , Ġm Binding . ed New Password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Ed Password Visible ( null , Ġm Binding . ed New Password Confirm ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Binding . ed Old Password . add TextChanged Listener ( F iler Enter Space Text Watcher ( m Binding . ed Old Password )) ĊĠĠĠĠĠĠĠ Ġm Binding . ed New Password . add TextChanged Listener ( F iler Enter Space Text Watcher ( m Binding . ed New Password )) ĊĠĠĠĠĠĠĠ Ġm Binding . ed New Password Confirm . add TextChanged Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF iler Enter Space Text Watcher ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . ed New Password Confirm ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtoggle Ed Password Visible ( imageView : ĠImageView ?, Ġed : ĠEditText ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( ed . input Type Ġ== ĠEditor Info . TYPE _ CLASS _ TEXT Ġor ĠEditor Info . TYPE _ TEXT _ VARI ATION _ PASSWORD ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView ?. setImage Resource ( R . mip map . icon _ password _ visible ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed . input Type Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEditor Info . TYPE _ CLASS _ TEXT Ġor ĠEditor Info . TYPE _ TEXT _ VARI ATION _ VISIBLE _ PASSWORD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed . setSelection ( ed . text . length ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView ?. setImage Resource ( R . mip map . icon _ password _ invisible ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed . input Type Ġ= ĠEditor Info . TYPE _ CLASS _ TEXT Ġor ĠEditor Info . TYPE _ TEXT _ VARI ATION _ PASSWORD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed . setSelection ( ed . text . length ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Title Bar () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Binding . title Bar . btn Back . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Binding . title Bar . tv Title bar Title . text Ġ= Ġ" ä¿®æĶ¹ å¯Ĩçłģ " ĊĠĠĠĠĠĠĠ Ġm Binding . title Bar . btn Right Layout . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġm Binding . title Bar . tv Btn Right . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġm Binding . title Bar . tv Btn Right . text Ġ= Ġ" å®ĮæĪĲ " ĊĠĠĠĠĠĠĠ Ġm Binding . title Bar . tv Btn Right . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġit 1 Ġ-> Ġhide Soft Input ( it 1 , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Input Info () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Input Info () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġold Password Ġ= Ġm Binding . ed Old Password . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġnew Password Ġ= Ġm Binding . ed New Password . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġnew Password Confirm Ġ= Ġm Binding . ed New Password Confirm . text . toString () ĊĠĠĠĠĠĠĠ Ġif Ġ( old Password . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" ä½ł æ²¡æľī è¾ĵåħ¥ æĹ§ å¯Ĩçłģ ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( old Password . length Ġ< Ġ 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" æĤ¨ è¾ĵåħ¥ çļĦ æĹ§ å¯Ĩçłģ æł¼å¼ı ä¸į æŃ£ç¡® ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( new Password . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" ä½ł æ²¡æľī è¾ĵåħ¥ æĸ° å¯Ĩçłģ ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( new Password . length Ġ< Ġ 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" æĤ¨ è¾ĵåħ¥ çļĦ æĸ° å¯Ĩçłģ æł¼å¼ı ä¸į æŃ£ç¡® ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( new Password Confirm . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" è¯· ä½ł è¾ĵåħ¥ æĸ° ç¡®è®¤ å¯Ĩçłģ ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( new Password Confirm Ġ!= Ġnew Password ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" æĤ¨ è¾ĵåħ¥ çļĦ ç¡®è®¤ å¯Ĩçłģ ä¸İ æĸ° å¯Ĩçłģ ä¸į ä¸Ģèĩ´ ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( new Password Confirm Ġ== Ġold Password ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" æĸ° å¯Ĩçłģ ä¸įèĥ½ ä¸İ æĹ§ å¯Ĩçłģ çĽ¸åĲĮ ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdo Change Password Request ( old Password , Ġnew Password ) ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġprivate Ġval Ġrepository : ĠUser Repository Ġby Ġinject () ĊĠĠĠ Ġprivate Ġfun Ġdo Change Password Request ( ĊĠĠĠĠĠĠĠ Ġold Password : ĠString , ĊĠĠĠĠĠĠĠ Ġnew Password : ĠString , ĊĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjob Ġ= Ġasync ( Dispatch ers . IO ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . modify Password ( old Password , Ġnew Password ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġjob . await () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġresult . check Result ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" ä¿®æĶ¹ å¯Ĩçłģ æĪĲåĬŁ ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. on Back Pressed () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( it , Ġfalse ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }