package Ġcom . example . se con dex periment . ui Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġcom . example . my wechat . ui . MainActivity Ċ import Ġcom . example . se con dex periment . R Ċ import Ġcom . example . se con dex periment . model . MSG Data Base Helper Ċ import Ġcom . example . se con dex periment . model . Rem Ac cont Data Base Helper Ċ import Ġkotlinx . android . synt hetic . main . activity _ login .* Ċ Ċ class ĠLogin Activity Ġ: ĠBase Activity () Ġ, ĠView . OnClickListener { Ċ // ĠĠĠ Ġval Ġpref : ĠSharedPreferences Ġ= Ġget Preferences ( Context . MODE _ PRIVATE ) Ċ // ĠĠĠ Ġval Ġeditor : ĠSharedPreferences . Editor Ġ= Ġpref . edit () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġaction Start ( context : ĠContext , ĠuserName : ĠString , Ġuser Password : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠLogin Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" userName ", ĠuserName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" user Password ", Ġuser Password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () Ċ // ĠĠĠĠĠĠĠ ĠLog . d (" bbb ", Ġis Log ined . toString ()) Ċ // ĠĠĠĠĠĠĠ Ġsave Login Status ( login Status ) ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġget SharedPreferences (" login Status ", ĠMODE _ PRIVATE ). edit () ĊĠĠĠĠĠĠĠ Ġeditor . put Boolean (" login Status ", Ġlogin Status ) ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ login ) ĊĠĠĠĠĠĠĠ Ġbtn _ login _ register . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn _ login _ login . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn _ login _ for getP wd . setOnClickListener ( this ) Ċ Ċ // ĠĠĠĠĠĠĠ Ġ æķ°æį®åºĵ ĊĠĠĠĠĠĠĠ Ġval Ġdb Helper Ġ= ĠRem Ac cont Data Base Helper ( this , Ġ" account List ", Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġdb Helper . writable Database Ċ Ċ // ĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġget Login Status (). toString (), ĠToast . LENGTH _ SHORT ). show () Ċ Ċ // ĠĠĠĠĠĠĠ Ġèİ·åıĸ çĻ»å½ķ çĬ¶æĢģ Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( get Login Status (). toString () Ġ== Ġ" 1 ") Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠFriend List :: class . java ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( get Login Status () Ġ== Ġtrue ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠFriend List :: class . java ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġboolean Ġstatus Ġ= Ġ; ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠåĪ¤æĸŃ çĻ» éĻĨ çĬ¶æĢģ ĊĠĠĠĠĠĠĠ Ġval Ġpref _ login Status Ġ= Ġget SharedPreferences (" login Status ", ĠMODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġif Ġ( pref _ login Status . getBoolean (" login Status ", Ġfalse ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . set Class ( application Context , ĠFriend List :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠuserName Ġ= Ġintent . getString Extra (" userName ") ĊĠĠĠĠĠĠĠ Ġedit _ login _ userName . setText ( userName ) ĊĠĠĠĠĠĠĠ Ġedit _ login _ pass Word . setText ( intent . getString Extra (" user Password ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġpref Ġ= Ġget Preferences ( Context . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġis Remember Ġ= Ġpref . getBoolean (" remember _ password ", Ġfalse ) Ċ // ĊĠĠĠĠĠĠĠ Ġif Ġ( is Remember ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= Ġpref . getString (" account ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġpref . getString (" password ", Ġ"") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ login _ userName . setText ( account ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ login _ pass Word . setText ( password ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox _ is Remember . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Helper Ġ= ĠRem Ac cont Data Base Helper ( this , Ġ" account List ", Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġdb Helper . readable Database ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v ?. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ login _ register Ġ-> Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" 2 2 2 ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠRegister Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ login _ login Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpref Ġ= Ġget Preferences ( Context . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġpref . edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= Ġedit _ login _ userName . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġedit _ login _ pass Word . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( checkBox _ is Remember . isChecked ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" account ", Ġaccount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" password ", Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . put Boolean (" remember _ password ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Status Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Log ined Ġ= Ġ 1 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" aaa ", Ġis Log ined . toString ()) Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġæķ°æį® æĮģ ä¹ħ åĮĸ Ġ çĻ» éĻĨ è¿ĩ çļĦ ä¿ĿåŃĺ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . exec SQL ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" insert Ġinto Ġaccount Ġ( account , Ġpassword ) Ġvalues ( ?, Ġ? )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( account , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġdb . raw Query (" select Ġ* Ġfrom Ġaccount ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( cursor . moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" aaa ", Ġcursor . getString ( cursor . getColumnIndex (" account "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ login _ for getP wd Ġ-> Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" åĬŁèĥ½ æľī å¾ħ å®Į åĸĦ ", ĠToast . LENGTH _ SHORT ). show () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġis Log ined . toString (), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchat Helper Ġ= ĠMSG Data Base Helper ( this , Ġ" chat Database ", Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġ Ġchat Helper . readable Database ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġdb . raw Query (" select Ġ* Ġfrom Ġmessage ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= Ġcursor . getString ( cursor . getColumnIndex (" content ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġcursor . getString ( cursor . getColumnIndex (" sender ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Login Activity ", Ġ" account Ġis Ġ$ account ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Login Activity ", Ġ" password Ġis Ġ$ password ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( cursor . moveTo Next ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġprivate Ġfun Ġget Login Status (): ĠInt Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġvar Ġret Ġ= Ġ 0 ; Ċ // ĠĠĠĠĠĠĠ Ġtry Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġopen File Input (" login Status ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠBufferedReader ( InputStream Reader ( input )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreader . use Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret Ġ= Ġreader . read () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġret ; Ċ // ĠĠĠ Ġ} ĊĊ Ċ // ĠĠĠ Ġprivate Ġfun Ġsave Login Status ( login Status : ĠInt ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġtry Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġopen File Output (" login Status ", ĠContext . MODE _ PRIVATE ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= ĠBuffered Writer ( OutputStream Writer ( output )) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . use Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . write ( login Status ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} ĊĊĊĊĊ Ċ }