/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 . ĠZ ac ĠS we ers Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġio . s we ers . catch up . app Ċ Ċ import Ġandroid . app . Activity Manager Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context Wrapper Ċ import Ġandroidx . core . app . Activity Manager Compat Ċ import Ġandroidx . core . content . getSystem Service Ċ import Ġco il . Co il Ċ import Ġco il . Image Loader Ċ import Ġco il . decode . Gif Decoder Ċ import Ġco il . util . Co il Logger Ċ import Ġco il . util . Co il Utils . create Default Cache Ċ import Ġcom . gab riel itt ner . th reet en bp . Lazy Three Ten Ċ import Ġdagger . Bind s Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . mult ib ind ings . Into Set Ċ import Ġdagger . mult ib ind ings . Mult ib inds Ċ import Ġio . not ies . mark won . Mark won Ċ import Ġio . not ies . mark won . ext . strikethrough . Stri ke through Plugin Ċ import Ġio . not ies . mark won . ext . tables . Table Plugin Ċ import Ġio . not ies . mark won . ext . task list . TaskList Plugin Ċ import Ġio . not ies . mark won . image . Images Plugin Ċ import Ġio . not ies . mark won . link ify . Link ify Plugin Ċ import Ġio . not ies . mark won . movement . Movement Method Plugin Ċ import Ġio . s we ers . catch up . Build Config Ċ import Ġio . s we ers . catch up . Catch Up Preferences Ċ import Ġio . s we ers . catch up . base . ui . Ui Preferences Ċ import Ġio . s we ers . catch up . base . ui . VersionInfo Ċ import Ġio . s we ers . catch up . base . ui . version Info Ċ import Ġio . s we ers . catch up . util . Link Touch Movement Method Ċ import Ġio . s we ers . catch up . util . Pre computed Text Setter Compat Ċ import Ġio . s we ers . catch up . util . injection . qual ifiers . ApplicationContext Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġokhttp 3 . Cache Ċ import Ġokhttp 3 . Call Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Qualifier Ċ import Ġjavax . inject . Singleton Ċ import Ġkotlin . annotation . Annotation Retention . BINARY Ċ Ċ @ Module Ċ abstract Ġclass ĠApplication Module Ġ{ ĊĊĠ Ġ@ Qualifier ĊĠ Ġ@ Retention ( BINARY ) ĊĠ Ġannotation Ġclass ĠInitial izers ĊĊĠ Ġ@ Qualifier ĊĠ Ġ@ Retention ( BINARY ) ĊĠ Ġannotation Ġclass ĠAsync Initial izers ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠProvides Ġinitial izers Ġfor Ġapp Ġstartup . ĊĠĠ Ġ*/ ĊĠ Ġ@ Initial izers ĊĠ Ġ@ Mult ib inds ĊĠ Ġabstract Ġfun Ġinitial izers (): ĠSet < () Ġ-> ĠUnit > ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠProvides Ġinitial izers Ġfor Ġapp Ġstartup Ġthat Ġcan Ġbe Ġinitialized Ġasync . ĊĠĠ Ġ*/ ĊĠ Ġ@ Async Initial izers ĊĠ Ġ@ Mult ib inds ĊĠ Ġabstract Ġfun Ġasync Initial izers (): ĠSet < () Ġ-> ĠUnit > ĊĊĠ Ġ@ Mult ib inds ĊĠ Ġabstract Ġfun Ġtim ber Trees (): ĠSet < Tim ber . Tree > ĊĊĠ Ġ@ Bind s ĊĠ Ġ@ ApplicationContext ĊĠ Ġ@ Singleton ĊĠ Ġabstract Ġfun Ġprovide ApplicationContext ( application : ĠApplication ): ĠContext ĊĊĠ Ġ@ Bind s ĊĠ Ġ@ Singleton ĊĠ Ġabstract Ġfun Ġprovide Ui Preferences ( catch up Preferences : ĠCatch Up Preferences ): ĠUi Preferences ĊĊĠ Ġ@ Module ĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis ĠContext Ġis Ġonly Ġavailable Ġfor Ġthings Ġthat Ġdon 't Ġcare Ġwhat Ġtype Ġof ĠContext Ġthey Ġneed . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠWr apped Ġso Ġno Ġone Ġcan Ġtry Ġto Ġcast Ġit Ġas Ġan ĠApplication . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġfun Ġprovide General Use Context (@ ApplicationContext Ġapp Context : ĠContext ): ĠContext Ġ= ĠContext Wrapper ( app Context ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġfun Ġversion Info (@ ApplicationContext Ġapp Context : ĠContext ): ĠVersion Info Ġ= Ġapp Context . version Info ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġfun Ġmark won ( Ċ // ĠĠĠĠĠ Ġimage Loader : ĠImage Loader , Ġ// ĠTODO Ġtry Ġto Ġmake Ġthis Ġlazy ĊĠĠĠĠĠ Ġ@ ApplicationContext Ġcontext : ĠContext Ġ// ĠTODO Ġshould Ġuse Ġthe med Ġone Ġfrom Ġactivity ? ĊĠĠĠ Ġ): ĠMark won Ġ{ ĊĠĠĠĠĠ Ġreturn ĠMark won . builder ( context ) ĊĠĠĠĠĠĠĠĠĠ Ġ. text Setter ( Pre computed Text Setter Compat . create ()) ĊĠĠĠĠĠĠĠĠĠ Ġ. use Plugins ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMovement Method Plugin . create ( Link Touch Movement Method ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImages Plugin . create (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStri ke through Plugin . create (), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCo il Images Plugin . create ( context , Ġimage Loader ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTable Plugin . create ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLink ify Plugin . create (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTask List Plugin . create ( context ) ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ ĠSyntax Highlight Plugin . create ( Prism 4 j (), ĠPrism 4 j Theme Dark ula ( Color . BLACK )) ĊĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Async Initial izers ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Into Set ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġthree Ten Init ( application : ĠApplication ): Ġ() Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠ ĠLazy Three Ten . init ( application ) ĊĠĠĠĠĠ ĠLazy Three Ten . cache Zones () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Async Initial izers ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Into Set ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġmain Dispatcher Init (): Ġ() Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠ Ġ// ĠThis Ġmakes Ġa Ġcall Ġto Ġdisk , Ġso Ġinitialize Ġit Ġoff Ġthe Ġmain Ġthread Ġfirst ... Ġir on ically ĊĠĠĠĠĠ ĠDispatch ers . Main ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Initial izers ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Into Set ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġco il Init ( image Loader : ĠImage Loader ): Ġ() Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠ ĠCo il . setDefault Image Loader ( image Loader ) ĊĠĠĠĠĠ ĠCo il Logger . setEnabled ( Build Config . DEBUG ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Qualifier ĊĠĠĠ Ġ@ Retention ( BINARY ) ĊĠĠĠ Ġprivate Ġannotation Ġclass ĠCo il Ok Http Stack ĊĊĠĠĠ Ġ@ Qualifier ĊĠĠĠ Ġ@ Retention ( BINARY ) ĊĠĠĠ Ġannotation Ġclass ĠIs Low Ram Device ĊĊĠĠĠ Ġ@ Is Low Ram Device ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġis Low Ram (@ ApplicationContext Ġcontext : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġ// ĠP refer Ġhigher Ġquality Ġimages Ġunless Ġwe 're Ġon Ġa Ġlow ĠRAM Ġdevice ĊĠĠĠĠĠ Ġreturn Ġcontext . getSystem Service < Activity Manager >() ?. let Ġ{ ĊĠĠĠĠĠĠĠ ĠActivity Manager Compat . is Low Ram Device ( it ) ĊĠĠĠĠĠ Ġ} Ġ?: Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Co il Ok Http Stack ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġco il Cache (@ ApplicationContext Ġcontext : ĠContext ): ĠCache Ġ= Ġcreate Default Cache ( context ) ĊĊĠĠĠ Ġ@ Co il Ok Http Stack ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġco il HttpClient ( ĊĠĠĠĠĠ Ġok HttpClient : ĠOk HttpClient , ĊĠĠĠĠĠ Ġ@ Co il Ok Http Stack Ġcache : ĠCache ĊĠĠĠ Ġ): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠ Ġreturn Ġok HttpClient . newBuilder () ĊĠĠĠĠĠĠĠĠĠ Ġ. cache ( cache ) ĊĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġimage Loader ( ĊĠĠĠĠĠ Ġ@ ApplicationContext Ġcontext : ĠContext , ĊĠĠĠĠĠ Ġ@ Is Low Ram Device Ġis Low Ram Device : ĠBoolean , ĊĠĠĠĠĠ Ġ@ Co il Ok Http Stack Ġok HttpClient : Ġdagger . Lazy < Ok HttpClient > ĊĠĠĠ Ġ): ĠImage Loader Ġ{ ĊĠĠĠĠĠ Ġreturn ĠImage Loader ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCo il Ġwill Ġdo Ġlazy Ġdeleg ation Ġon Ġits Ġown Ġunder Ġthe Ġh ood , Ġbut Ġwe ĊĠĠĠĠĠĠĠ Ġ// Ġdon 't Ġneed Ġthat Ġhere Ġbecause Ġwe 've Ġalready Ġmade Ġit Ġlazy . ĠW ish Ġthis ĊĠĠĠĠĠĠĠ Ġ// Ġwasn 't Ġthe Ġdefault . ĊĠĠĠĠĠĠĠ Ġcall Factory ( object Ġ: ĠCall . Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġnew Call ( request : ĠRequest ): ĠCall Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġok HttpClient . get (). new Call ( request ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠHardware Ġbit maps Ġdon 't Ġwork Ġwith Ġthe Ġsat uration Ġeffect ĊĠĠĠĠĠĠĠ Ġallow Hardware ( false ) ĊĠĠĠĠĠĠĠ Ġallow Rgb 5 6 5 ( is Low Ram Device ) ĊĠĠĠĠĠĠĠ Ġcross fade ( 3 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġcomponent Registry Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġre - enable Ġnative Ġdecoder Ġonce Ġhttps :// github . com / co il - kt / co il / issues / 1 0 1 Ġis Ġfixed Ċ // ĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 8 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Image Decoder Decoder ()) Ċ // ĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Gif Decoder ()) Ċ // ĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġadd ( Gif Decoder ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ