package Ġcom . mat t . auth interceptor . sample . with d agger . di Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . preference . Preference Manager Ċ import Ġcom . mat t . auth interceptor . Token Store Ċ import Ġcom . mat t . auth interceptor . sample . data . Token Repository Ċ import Ġdagger . Bind s Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠModule Ġthat Ġprovides Ġthe Ġapplication Ġcontext Ġand Ġother Ġglobally Ġmanaged Ġdependencies . Ċ Ġ*/ Ċ @ Module Ċ abstract Ġclass ĠApp Module Ġ{ ĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġabstract Ġfun Ġbind Context ( app : ĠAuth App ): ĠContext ĊĊĠĠĠ Ġ@ Module ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġfun Ġprovide SharedPreferences ( app : ĠContext ): ĠSharedPreferences Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPreference Manager . getDefault SharedPreferences ( app ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġfun Ġprovide Token Repository ( preferences : ĠSharedPreferences ): ĠToken Store Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠToken Repository ( preferences ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ