package Ġcom . js ongo . my base frm . ui . login Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . method . Hide Returns Transformation Method Ċ import Ġandroid . text . method . Password Transformation Method Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . js ongo . annotation . anno . Page Ċ import Ġcom . js ongo . annotation . anno . permission . Permission Need Ċ import Ġcom . js ongo . core . arch . Base Activity Wrapper Ċ import Ġcom . js ongo . core . arch . mv vm . IM v vm View Ċ import Ġcom . js ongo . core . plugin . App Plugin Ċ import Ġcom . js ongo . core . plugin . Mobile IM Ċ import Ġcom . js ongo . core . ui . splash . Splash Activity Ċ import Ġcom . js ongo . core _ mini . common . Activity Collector Ċ import Ġcom . js ongo . my base frm . App Application Ċ import Ġcom . js ongo . my base frm . R Ċ import Ġcom . js ongo . my base frm . databinding . Activity Login Binding Ċ import Ġcom . js ongo . my base frm . ui . main . MainActivity Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ ï¼ļ Ġjs ongo Ċ Ġ* Ġ@ date Ġ ï¼ļ Ġ 2 0 1 9 / 1 1 / 2 4 Ġ 1 2 : 3 8 Ċ Ġ* Ġ@ desc Ġ: Ġ çĻ»å½ķ é¡µ Ċ Ġ*/ Ċ @ Page ( R . layout . activity _ login , Ġ 0 ) Ċ class ĠLogin Activity Ġ: ĠBase Activity Wrapper (), ĠIM v vm View Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠLogin ViewModel ĊĊĠĠĠ Ġlateinit Ġvar Ġactivity Login Binding : ĠActivity Login Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġinit ViewModel () ĊĊĠĠĠĠĠĠĠ Ġinit Permission () ĊĊĠĠĠĠĠĠĠ Ġinit View () ĊĊĠĠĠĠĠĠĠ Ġbind Data () ĊĊĠĠĠĠĠĠĠ Ġobserve LiveData () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this )[ Login ViewModel :: class . java ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Permission Need ( Manifest . permission . READ _ PHONE _ STATE ) ĊĠĠĠ Ġfun Ġinit Permission () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Login Binding Ġ= ĠActivity Login Binding . bind ( main View ) ĊĊĠĠĠĠĠĠĠ Ġset Swipe Back Enable ( false ) ĊĊĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ åĲ¯çĶ¨ Mobile IM ï¼Į åĪĿå§ĭåĮĸ Mobile IM ĊĠĠĠĠĠĠĠ Ġif Ġ( App Plugin . isEnabled ( Mobile IM )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Plugin . invoke ( Mobile IM , Ġ" init ", Ġhash Map Of ( Pair (" context ", Ġthis ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ç»ĵæĿŁ åĲ¯åĬ¨ é¡µ ĊĠĠĠĠĠĠĠ ĠActivity Collector . finish ( Splash Activity :: class . java ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// data Binding Ċ // ĠĠĠĠĠĠĠ Ġactivity Login Binding . set Variable ( BR . vm , ĠviewModel ) Ċ // ĠĠĠĠĠĠĠ Ġactivity Login Binding . set Variable ( BR . event Proxy , ĠEvent Proxy ( this )) ĊĠĠĠĠĠĠĠ Ġactivity Login Binding . vm Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġactivity Login Binding . event Proxy Ġ= ĠEvent Proxy ( this ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġobserve LiveData () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . show Password . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ éĢī ä¸Ń ï¼Į æĺ¾ç¤º å¯Ĩçłģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Login Binding . et User Pwd . transformation Method Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHide Returns Transformation Method . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Login Binding . iv Show pwd . image Tint List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor State List . valueOf ( resources . getColor ( R . color . dark er _ gray )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĲ¦åĪĻ éļĲèĹı å¯Ĩçłģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Login Binding . et User Pwd . transformation Method Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPassword Transformation Method . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Login Binding . iv Show pwd . image Tint List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor State List . valueOf ( resources . getColor ( R . color . light er _ gray )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® åħī æłĩ ä½įç½® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Login Binding . et User Pwd . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Selection ( text . toString (). length ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . loading . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . login Result . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ Login Activity , ĠMainActivity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . loading . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġï¼Ī çĤ¹åĩ» ï¼ī äºĭä»¶ ä»£çĲĨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠEvent Proxy ( private Ġval Ġlogin Activity : ĠLogin Activity ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠviewModel : ĠLogin ViewModel Ġ= Ġlogin Activity . viewModel ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠActivity Login Binding Ġ= Ġlogin Activity . activity Login Binding ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ çĤ¹åĩ» æĺ¾ç¤º å¯Ĩçłģ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġclick Show Pwd () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= ĠviewModel . show Password . value ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . show Password . value Ġ= Ġvalue ?. not () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ çĤ¹åĩ» çĻ»å½ķ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġclick Login () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . login ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . et User Account . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . et User Pwd . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġgo ( context : ĠContext Ġ= ĠApp Application . context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( App Application . context , ĠLogin Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }