package Ġorg . step ic . d roid . di Ċ Ċ import Ġandroid . app . Alarm Manager Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . arch . lifecycle . ViewModel Provider Ċ import Ġandroid . content . Content Resolver Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġcom . google . firebase . remote config . Firebase Remote Config Ċ import Ġcom . google . firebase . remote config . Firebase Remote Config Settings Ċ import Ġdagger . Bind s Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġio . reactivex . Scheduler Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġorg . step ic . d roid . Build Config Ċ import Ġorg . step ic . d roid . R Ċ import Ġorg . step ic . d roid . an alytic . An alytic Ċ import Ġorg . step ic . d roid . base . Client Ċ import Ġorg . step ic . d roid . base . Client Impl Ċ import Ġorg . step ic . d roid . base . Listener Container Ċ import Ġorg . step ic . d roid . base . Listener Container Impl Ċ import Ġorg . step ic . d roid . concurrency . Main Handler Ċ import Ġorg . step ic . d roid . concurrency . Main Handler Impl Ċ import Ġorg . step ic . d roid . configuration . Config Ċ import Ġorg . step ic . d roid . configuration . Config Impl Ċ import Ġorg . step ic . d roid . core .* Ċ import Ġorg . step ic . d roid . core . internet state . Internet Enabled Post er Impl Ċ import Ġorg . step ic . d roid . core . internet state . contract . Internet Enabled Listener Ċ import Ġorg . step ic . d roid . core . internet state . contract . Internet Enabled Post er Ċ import Ġorg . step ic . d roid . di . qual ifiers . Background Scheduler Ċ import Ġorg . step ic . d roid . di . qual ifiers . Main Scheduler Ċ import Ġorg . step ic . d roid . fonts . Fonts Provider Ċ import Ġorg . step ic . d roid . fonts . Fonts Provider Impl Ċ import Ġorg . step ic . d roid . notifications .* Ċ import Ġorg . step ic . d roid . preferences . Shared Preference Helper Ċ import Ġorg . step ic . d roid . preferences . User Preferences Ċ import Ġorg . step ic . d roid . social . Social Manager Ċ import Ġorg . step ic . d roid . util . resolvers . Step Type Resolver Ċ import Ġorg . step ic . d roid . util . resolvers . Step Type Resolver Impl Ċ import Ġorg . step ic . d roid . util . resolvers . text . Text Resolver Ċ import Ġorg . step ic . d roid . util . resolvers . text . Text Resolver Impl Ċ import Ġorg . step ic . d roid . web . Api Ċ import Ġorg . step ic . d roid . web . Api Impl Ċ import Ġorg . step ic . d roid . web . UserAgent Provider Ċ import Ġorg . step ic . d roid . web . UserAgent Provider Impl Ċ import Ġorg . step ik . android . presentation . base . injection . D agger ViewModel Factory Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util . concurrent . Executors Ċ import Ġjava . util . concurrent . ThreadPoolExecutor Ċ import Ġjavax . inject . Named ĊĊ Ċ @ Module Ċ abstract Ġclass ĠApp Core Module Ġ{ ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġabstract Ġfun Ġbind Step ik Device Post er ( step ik Device Post er Impl : ĠSte pi k Device Post er Impl ): ĠSte pi k Device Post er ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġabstract Ġfun Ġprovide Internet Enabled Post er ( internet Enabled Post er : ĠInternet Enabled Post er Impl ): ĠInternet Enabled Post er ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġabstract Ġfun Ġprovide Internet Enabled Listener Container ( container : ĠListener Container Impl < Internet Enabled Listener >): ĠListener Container < Internet Enabled Listener > ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġabstract Ġfun Ġprovide Internet Enabled Client ( container : ĠClient Impl < Internet Enabled Listener >): ĠClient < Internet Enabled Listener > ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġprovide Screen Manager ( screen Manager : ĠScreen ManagerImpl ): ĠScreen Manager ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġprovide I Api ( api : ĠApi Impl ): ĠApi ĊĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġprovide Lesson Session Manager ( local Lesson Session Manager : ĠLocal Lesson Session ManagerImpl ): ĠLess on Session Manager ĊĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġprovide Handler For UIT hread ( main Handler : ĠMain Handler Impl ): ĠMain Handler ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġprovide Share Helper ( share Helper : ĠShare Helper Impl ): ĠShare Helper ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġprovide Default Filter ( default Filter : ĠDefault Filter Impl ): ĠDefault Filter ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġprovide Filter Applic ator ( filter Applic ator : ĠFilter Applic ator Impl ): ĠFilter Applic ator ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġprovide Text Resolver ( text Resolver : ĠText Resolver Impl ): ĠText Resolver ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġprovide UserAgent ( userAgent Provider : ĠUser Agent Provider Impl ): ĠUser Agent Provider ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġprovide Font Provider ( fonts Provider : ĠFonts Provider Impl ): ĠFonts Provider ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ App Singleton ĊĠĠĠ Ġabstract Ġfun Ġbind Step Type Resolver ( step Type Resolver : ĠStep Type Resolver Impl ): ĠStep Type Resolver ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġbind ViewModel Factory ( d agger ViewModel Factory : ĠD agger ViewModel Factory ): ĠViewModel Provider . Factory ĊĊĠĠĠ Ġ@ Module ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Main Scheduler ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide Android Scheduler (): ĠScheduler Ġ= ĠAndroid Schedulers . main Thread () ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Background Scheduler ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide Background Scheduler (): ĠScheduler Ġ= ĠS chedulers . io () ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ App Singleton ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide SharedPreferences Helper ( an alytic : ĠAn alytic , Ġdefault Filter : ĠDefault Filter , Ġcontext : ĠContext ): ĠShared Preference Helper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠShared Preference Helper ( an alytic , Ġdefault Filter , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ App Singleton ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide User Prefs ( helper : ĠShared Preference Helper , Ġan alytic : ĠAn alytic ): ĠUser Preferences Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠUser Preferences ( helper , Ġan alytic ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide System Alarm Manager ( context : ĠContext ): ĠAlarm Manager Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext . getSystem Service ( Context . ALARM _ SERVICE ) Ġas ĠAlarm Manager ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ App Singleton ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide Social Manager (): ĠSocial Manager Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSocial Manager () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// it Ġis Ġgood Ġfor Ġmany Ġshort Ġli ved , Ġwhich Ġshould Ġdo Ġasync ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ App Singleton ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide ThreadPool (): ĠThreadPool Executor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠExec utors . new Cached ThreadPool () Ġas ĠThreadPool Executor ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġthis Ġretrofit Ġis Ġonly Ġfor Ġparsing Ġerror Ġbody ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ App Singleton ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġprovide Ret rofit ( config : ĠConfig ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( config . baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( Ok HttpClient ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ App Singleton ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide Firebase Remote Config (): ĠFirebase Remote Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirebase Remote Config Ġ= ĠFirebase Remote Config . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Settings Ġ= ĠFirebase Remote Config Settings . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Developer Mode Enabled ( Build Config . DEBUG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Remote Config . set Config Settings ( config Settings ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Remote Config . set Defaults ( R . xml . remote _ config _ defaults ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfirebase Remote Config ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide System Notification Manager ( context : ĠContext ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide Res chedule Checker ( block Notification Interval Provider : ĠBlock Notification Interval Provider ): ĠNotification Time Checker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNotification Time Checker Impl ( block Notification Interval Provider . start , Ġblock Notification Interval Provider . end ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ App Singleton ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide Block Notification Interval Provider () Ġ= ĠBlock Notification Interval Provider () ĊĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide Connectivity Manager ( context : ĠContext ): ĠConnect ivity Manager Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext . getSystem Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ App Singleton ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide Config ( config Factory : ĠConfig Impl . Config Factory ): ĠConfig Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconfig Factory . create () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ App Singleton ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide Content Resolver ( context : ĠContext ): ĠContent Resolver Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . content Resolver ĊĠĠĠ Ġ} Ċ Ċ } Ċ