package Ġcom . jak el aur ie . s quad sp ook . di . module Ċ Ċ import Ġandroid . arch . persistence . db . Support SQLite Database Ċ import Ġandroid . arch . persistence . room . On Conflict Strategy Ċ import Ġandroid . arch . persistence . room . Room Ċ import Ġandroid . arch . persistence . room . Room Database Ċ import Ġandroid . content . Content Values Ċ import Ġcom . jak el aur ie . s quad sp ook . S quad Application Ċ import Ġcom . jak el aur ie . s quad sp ook . annotations . Open ForTesting Ċ import Ġcom . jak el aur ie . s quad sp ook . data . database . Database Ċ import Ġcom . jak el aur ie . s quad sp ook . data . database . Players Dao Ċ import Ġcom . jak el aur ie . s quad sp ook . data . database . Servers Dao Ċ import Ġcom . jak el aur ie . s quad sp ook . data . preferences . Preferences Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Open ForTesting Ċ @ Module Ċ class ĠApp Module Ġ{ ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġapplication : ĠS quad Application ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Database ( app : ĠS quad Application ): ĠDatabase ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠRoom . database Builder ( app , ĠDatabase :: class . java , Ġ" db ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fallback To Dest ruct ive Migration () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Callback ( object : ĠRoom Database . Callback () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ( db : ĠSupport SQLite Database ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . onCreate ( db ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Values Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Values . put (" id ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Values . put (" filter Empty Servers ", Ġtrue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp letable . from Callable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . insert (" servers Filter ", ĠOn Conflict Strategy . ABORT , Ġcontent Values ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . new Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). build () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Servers Dao ( database : ĠDatabase ): ĠServer s Dao Ġ= Ġdatabase . servers Dao () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton Ġfun Ġprovide Player Dao ( database : ĠDatabase ): ĠP layers Dao ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġdatabase . players Dao () ĊĊĠĠĠ Ġ@ Provides Ġfun Ġprovide SharedPreferences ( app : ĠS quad Application ): ĠPreferences ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠPreferences ( app , Ġ" S quad Sp ook Prefs ") Ċ } ĊĊ