package Ġde . aar ono e . cin ematic . ui . login Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġde . aar ono e . cin ematic . Build Config Ċ import Ġde . aar ono e . cin ematic . C in ematic App Ċ import Ġde . aar ono e . cin ematic . model . remote . Api Interface Ċ import Ġde . aar ono e . cin ematic . model . old Auth . Request Token Old Ċ import Ġde . aar ono e . cin ematic . model . old Auth . SessionId Ċ import Ġde . aar ono e . cin ematic . model . user . User Ċ import Ġorg . jetbrains . ank o . in determinate Progress Dialog Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġprivate Ġon Ġ 7 / 9 / 1 7 . Ċ Ġ* Ċ Ġ*/ Ċ class ĠLogin Presenter ( val Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ: ĠLogin Contract . View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapi Service Ġ: ĠApi Interface ) Ġ: ĠLogin Contract . Presenter Ġ{ ĊĊĠĠĠ Ġval Ġapi _ key Ġ= ĠBuild Config . MOV IE _ DB _ API _ KEY ĊĠĠĠ Ġvar Ġrequest Token Ġ: ĠRequest Token Old ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget Request Token () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= Ġcontext . in determinate Progress Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Logging Ġyou Ġin ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Please Ġwait ") ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= Ġapi Service . getRequest Token ( C in ematic App . TM DB _ API _ KEY ) ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < Request Token Old > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( p 0 : ĠCall < Request Token Old > ?, Ġresponse : ĠResponse < Request Token Old > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . cancel () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Token Ġ= Ġresponse ?. body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Ġ== Ġnull Ġ|| Ġrequest Token Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . showMessage (" We Ġcould Ġnot Ġlog Ġyou Ġin ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠUri . parse (" https :// www . the mov ied b . org / authenticate /${ ( request Token Ġas ĠRequest Token Old ). request Token }? redirect _ to =${ C in ematic App . TM DB _ RE DIRECT _ URI }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( Intent ( Intent . ACTION _ VIEW , Ġuri )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( p 0 : ĠCall < Request Token Old > ?, Ġp 1 : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . showMessage (" We Ġcould Ġnot Ġlog Ġyou Ġin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget AccessToken () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( request Token Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . showMessage (" We Ġcould Ġnot Ġlog Ġyou Ġin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= Ġcontext . in determinate Progress Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Getting Ġyour Ġprofile ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Please Ġwait ") ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= Ġapi Service . getSession Id ( C in ematic App . TM DB _ API _ KEY , Ġ( request Token Ġas ĠRequest Token Old ). request Token ) ĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < SessionId > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( p 0 : ĠCall < SessionId > ?, Ġresponse : ĠResponse < SessionId > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Ġ== Ġnull Ġ|| Ġresponse . body () Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . showMessage (" Could Ġnot Ġget Ġyour Ġprofile ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠsessionId Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Login Ġ- ĠAccess ĠToken : Ġ", ĠsessionId . sessionId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetUser Info ( sessionId . sessionId ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( p 0 : ĠCall < SessionId > ?, Ġp 1 : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . showMessage (" Could Ġnot Ġget Ġyour Ġprofile ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetUser Info ( sessionId : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġapi Service . getUser Info ( C in ematic App . TM DB _ API _ KEY , ĠsessionId ). enqueue ( object Ġ: ĠCallback < User > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < User > ?, Ġresponse : ĠResponse < User > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Ġ== Ġnull Ġ|| Ġresponse . body () Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . showMessage (" Could Ġnot Ġget Ġyour Ġprofile ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC in ematic App . getInstance (). m Auth Manager . login ( sessionId , Ġresponse . body ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( C in ematic App . getInstance (), Ġ" Welcome Ġ${ response . body (). username }", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . finish Login () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < User > ?, Ġthrowable : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ Ċ }