package Ġcom . aw ave . wrk out . on boarding . login Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġcom . aw ave . wrk out . R Ċ import Ġcom . aw ave . wrk out . dashboard . Dashboard Fragment Ċ import Ġcom . aw ave . wrk out . db . Db Injection Ċ import Ġcom . aw ave . wrk out . db . dao . User Dao Ċ import Ġcom . aw ave . wrk out . util . Constants Ċ import Ġcom . aw ave . wrk out . util . Crypto Utils Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ class ĠLogin Presenter ( val Ġview : ĠLogin Contract . View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġfm : ĠFragment Manager ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġuser Dao : ĠUser Dao ): ĠLogin Contract . Presenter Ġ{ ĊĠ Ġ@ Suppress Lint (" Check Result ") ĊĠ Ġoverride Ġfun Ġlogin User ( username : ĠString , Ġpassword : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġpass Hash Ġ= ĠCrypto Utils . SHA 2 5 6 Hash ( password ) ĊĊĠĠĠ Ġuser Dao . getBy Username ( username , Ġpass Hash ) ĊĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġcontext ?. get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . preference _ file _ key ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠ Ġshared Pref ?. edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . put Boolean ( Constants . USER _ LOG GED _ IN , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . put Int ( Constants . CURRENT _ USER _ ID , Ġit . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . apply () ĊĊĠĠĠĠĠĠĠĠĠ Ġfm ?. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . replace ( R . id . container , ĠDashboard Fragment . instance ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġlogin Trainer ( username : ĠString , Ġpassword : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġpass Hash Ġ= ĠCrypto Utils . SHA 2 5 6 Hash ( password ) ĊĊĠĠĠ Ġcontext ?. let Ġ{ Ġctx Ġ-> ĊĠĠĠĠĠ ĠDb Injection . provide Trainer Dao ( ctx ) ĊĠĠĠĠĠĠĠĠĠ Ġ. get Trainer ( username , Ġpass Hash ) ĊĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġctx . get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . preference _ file _ key ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Pref ?. edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . put Boolean ( Constants . USER _ LOG GED _ IN , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . put Boolean ( Constants . IS _ TRAIN ER , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . put Int ( Constants . CURRENT _ USER _ ID , Ġit . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . apply () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfm ?. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . replace ( R . id . container , ĠDashboard Fragment . instance ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . commit () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġstart () Ġ{ ĊĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠ Ġ} Ċ } Ċ