package Ġcom . bird . over layer . di . modules Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġcom . bird . over layer . data . Data Repository Ċ import Ġcom . bird . over layer . data . local . Local DataSource Ċ import Ġcom . bird . over layer . data . remote . Remote DataSource Ċ import Ġcom . bird . over layer . di . scope . Application Scope Ċ import Ġcom . bird . over layer . models . App Info Ċ import Ġcom . bird . over layer . utils . Pref Manager Ċ import Ġcom . bird . over layer . utils . Rx Bus Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġio . reactivex . subjects . Publish Subject Ċ Ċ @ Module Ċ class ĠApplication Module ( private Ġval Ġapplication : ĠApplication ) Ġ{ ĊĊĠĠĠ Ġ@ Application Scope ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovides ApplicationContext (): ĠContext Ġ= Ġapplication . application Context ĊĊĠĠĠ Ġ@ Application Scope ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovides Shared preferences (): ĠSharedPreferences Ġ= ĊĠĠĠĠĠĠĠ Ġandroidx . preference . Preference Manager . getDefault SharedPreferences ( application ) ĊĊĠĠĠ Ġ@ Application Scope ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovider Rx Bus ( publisher : ĠPublish Subject < Any >) Ġ= ĠRx Bus ( publisher ) ĊĊĠĠĠ Ġ@ Application Scope ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovider Display Metrics () Ġ= Ġapplication . resources . display Metrics ĊĊĠĠĠ Ġ@ Application Scope ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovider Publish Subject (): ĠPublish Subject < Any > Ġ= ĠPublish Subject . create < Any >() ĊĊĠĠĠ Ġ@ Application Scope ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovides Data Repository ( ĊĠĠĠĠĠĠĠ Ġlocal DataSource : ĠLocal DataSource , ĊĠĠĠĠĠĠĠ Ġremote DataSource : ĠRemote DataSource , ĊĠĠĠĠĠĠĠ Ġpref Manager : ĠPref Manager ĊĠĠĠ Ġ) Ġ= ĠData Repository ( ĊĠĠĠĠĠĠĠ Ġlocal DataSource , ĊĠĠĠĠĠĠĠ Ġremote DataSource , ĊĠĠĠĠĠĠĠ Ġpref Manager ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Application Scope ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovides App Info () Ġ= ĠApp Info () Ċ } Ċ