package Ġchat . rocket . android . authentication . presentation Ċ Ċ import Ġchat . rocket . android . infrastructure . Local Repository Ċ import Ġchat . rocket . android . server . domain . Get Account Interactor Ċ import Ġchat . rocket . android . server . domain . Get Connecting Server Interactor Ċ import Ġchat . rocket . android . server . domain . GetCurrent Server Interactor Ċ import Ġchat . rocket . android . server . domain . Settings Repository Ċ import Ġchat . rocket . android . server . domain . Token Repository Ċ import Ġchat . rocket . android . util . extension . launch UI Ċ import Ġchat . rocket . android . util . extensions . privacy Policy Url Ċ import Ġchat . rocket . android . util . extensions . terms Of Service Url Ċ import Ġchat . rocket . core . lifecycle . Cancel Strategy Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠAuthentication Presenter Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġstrategy : ĠCancel Strategy , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġnavigator : ĠAuthentication Navigator , ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠgetCurrent Server Interactor : ĠGetCurrent Server Interactor , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġget Account Interactor : ĠGet Account Interactor , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsettings Repository : ĠSettings Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlocal Repository : ĠLocal Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtoken Repository : ĠToken Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġserver Interactor : ĠGet Connecting Server Interactor Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġload Credentials ( new Server : ĠBoolean , Ġcallback : Ġ( is Authenticated : ĠBoolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch UI ( strategy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Server Ġ= ĠgetCurrent Server Interactor . get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserver Token Ġ= Ġcurrent Server ?. let Ġ{ Ġtoken Repository . get ( current Server ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= Ġcurrent Server ?. let Ġ{ Ġsettings Repository . get ( current Server ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= Ġcurrent Server ?. let Ġ{ Ġget Account Interactor . get ( current Server ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Repository . save ( Local Repository . CURRENT _ USERNAME _ KEY , Ġaccount . userName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Server Ġ|| Ġcurrent Server Ġ== Ġnull Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Token Ġ== Ġnull Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Ġ== Ġnull Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount ?. userName Ġ== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġterms Of Service ( toolbar Title : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġserver Interactor . get ()?. let Ġ{ Ġnavigator . to Web Page ( it . terms Of Service Url (), Ġtoolbar Title ) Ġ} ĊĊĠĠĠ Ġfun Ġprivacy Policy ( toolbar Title : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġserver Interactor . get ()?. let Ġ{ Ġnavigator . to Web Page ( it . privacy Policy Url (), Ġtoolbar Title ) Ġ} ĊĊĠĠĠ Ġfun Ġto Chat List () Ġ= Ġnavigator . to Chat List () Ċ }