package Ġeu . kan ade . t ach iy omi . ui . sync . account Ċ Ċ import Ġandroid . accounts . Account Ċ import Ġandroid . accounts . Account Manager Ċ import Ġeu . kan ade . t ach iy omi . data . database . Database Helper Ċ import Ġeu . kan ade . t ach iy omi . data . sync . Library Sync Manager Ċ import Ġeu . kan ade . t ach iy omi . data . sync . account . Sync Account Authenticator Ċ import Ġeu . kan ade . t ach iy omi . data . sync . api . TW Api Ċ import Ġeu . kan ade . t ach iy omi . data . sync . api . models . Auth Response Ċ import Ġeu . kan ade . t ach iy omi . network . Network Helper Ċ import Ġeu . kan ade . t ach iy omi . ui . base . presenter . Base Presenter Ċ import Ġrx . Observable Ċ import Ġu y . ko hes ive . in jekt . inject Lazy Ċ Ċ /** Ċ Ġ* ĠPres enter Ġof Ġ[ Sync Account Authenticator Activity ]. Ċ Ġ*/ Ċ class ĠSync Account Authenticator Presenter Ġ: ĠBase Presenter < Sync Account Authenticator Activity >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdb : ĠDatabase Helper Ġby Ġinject Lazy () ĊĠĠĠ Ġprivate Ġval Ġsync Manager : ĠLibrary Sync Manager Ġby Ġinject Lazy () ĊĠĠĠ Ġprivate Ġval Ġnetwork : ĠNetwork Helper Ġby Ġinject Lazy () ĊĠĠĠĠĊĠĠĠ Ġfun Ġcheck Login ( server : ĠString , Ġpassword : ĠString ): ĠObservable < Auth Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠT W Api . create ( network . client , Ġserver ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. check Auth ( password ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġfun Ġcomplete Login ( account Manager : ĠAccount Manager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate New Account : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĠAccount ( url , ĠLibrary Sync Manager . ACCOUNT _ TYPE ) ĊĠĠĠĠĠĠĠ Ġif Ġ( createNew Account ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Add Ġaccount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Manager . add Account Explicit ly ( account , Ġpassword , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Manager . set AuthToken ( account , ĠSync Account Authenticator . AUTH _ TOKEN _ TYPE , Ġtoken ) ĊĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Clear Ġsnapshots ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . in Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . delete M ang aC ategories Snapshot ( Library Sync Manager . TARGET _ DEVICE _ ID ). execute As Blocking () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . take Empty M ang aC ategories Snapshot ( Library Sync Manager . TARGET _ DEVICE _ ID ). execute As Blocking () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsync Manager . snapshots . delete Snapshots ( Library Sync Manager . TARGET _ DEVICE _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Re gen Ġdevice ĠID Ġand Ġstart Ġsync Ġfrom Ġbeginning ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsync Manager . reg en DeviceId () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsync Manager . last Sync DateTime Ġ= Ġ 0 ĊĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Begin Ġsync ing Ġautomatically ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsync Manager . update Periodic Sync () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Manager . set Password ( account , Ġpassword ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }