package Ġsu . kat so . syn onym . auth Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġorg . k oin . core . parameter . parameters Of Ċ import Ġorg . k oin . core . scope . Scope Ċ import Ġorg . k oin . error . No Scope Found Exception Ċ import Ġorg . k oin . standalone . get Ċ import Ġsu . kat so . syn onym . common . arch . Base Controller Ċ import Ġsu . kat so . syn onym . common . arch . Command Ċ import Ġsu . kat so . syn onym . common . arch . Hide Keyboard Command Ċ import Ġsu . kat so . syn onym . common . arch . Toast Command Ċ import Ġsu . kat so . syn onym . common . inject . SESSION _ SCOPE Ċ import Ġsu . kat so . syn onym . common . use cases . Get Login Params UseCase Ċ import Ġsu . kat so . syn onym . common . use cases . Login UseCase Ċ import Ġsu . kat so . syn onym . common . utils . getError Ċ Ċ class ĠAuth Controller ( ĊĠĠĠ Ġview : ĠAuth View , Ġprivate Ġval Ġarguments : ĠBundle Ġ= ĠBundle . EMPTY Ċ ) Ġ: ĠBaseController < Auth View , ĠAuth Model >( view , ĠAuth Model ()) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġsession : ĠScope ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlogin UseCase : ĠLogin UseCase ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon First Bind ( view : ĠAuth View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget < Get Login Params UseCase >(). interact Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodify State Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Text Ġ= Ġit . address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Text Ġ= Ġit . account ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Text Ġ= Ġit . password ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ( view : ĠAuth View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbind To ( view . edit Text Address Text Changes ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodify State ( false ) Ġ{ Ġaddress Text Ġ= Ġit . toString () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbind To ( view . edit Text Account Text Changes ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodify State ( false ) Ġ{ Ġaccount Text Ġ= Ġit . toString () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbind To ( view . edit Text Password Text Changes ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodify State ( false ) Ġ{ Ġpassword Text Ġ= Ġit . toString () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbind To ( view . button Login Click s ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogin UseCase ?. dispose () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view State . is Input Valid ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre Create Scope () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Command ( Hide Keyboard Command ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠLogin Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview State . address Text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview State . account Text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview State . password Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin UseCase Ġ= Ġget Ġ{ Ġparameters Of ( params ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin UseCase ?. interact Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonComplete Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Command ( Open Tasks Command ( arguments )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerror Ġ= Ġit . getError () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror ?. let Ġ{ Ġsend Command ( Toast Command ( it . toString ())) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġrun Ġ{ Ġsend Command ( Toast Command ( it . message . or Empty ())) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodify State Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Address Error Ġ= Ġview State . address Text . isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Account Error Ġ= Ġview State . account Text . isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Password Error Ġ= Ġview State . password Text . isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġre Create Scope () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget K oin (). get Scope ( SESSION _ SCOPE ). close () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNo Scope Found Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsession Ġ= Ġget K oin (). create Scope ( SESSION _ SCOPE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP REF _ SID Ġ= Ġ" pref _ sid " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠOpen Tasks Command ( val Ġarguments : ĠBundle ) Ġ: ĠCommand ĊĠĠĠ Ġclass ĠFill Inputs Command ( val Ġlogin Params : ĠLogin Params ) Ġ: ĠCommand ĊĊĠĠĠ Ġclass ĠLogin Params ( ĊĠĠĠĠĠĠĠ Ġval Ġaddress : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġaccount : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġpassword : ĠString ĊĠĠĠ Ġ) Ċ }