package Ġcom . hav ri i ash . d mit ri y . github browser . data . repositories Ċ Ċ import Ġcom . hav ri i ash . d mit ri y . github browser . data . local . Github Browser Preferences Ċ import Ġcom . hav ri i ash . d mit ri y . github browser . data . remote . entity . User Ċ import Ġcom . hav ri i ash . d mit ri y . github browser . main . exceptions . Invalid Token Exception Ċ import Ġcom . hav ri i ash . d mit ri y . github browser . main . exceptions . Unauthorized Exception Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ abstract Ġclass ĠRepository ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpreferences : ĠGithub Browser Preferences Ċ ) Ġ: ĠI Repository Ġ{ ĊĠĠĠ Ġ@ Throws ( Invalid Token Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġcheck Token (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġpreferences . accessToken ĊĠĠĠĠĠĠĠ Ġreturn Ġtoken Ġ?: Ġthrow ĠInvalid Token Exception () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Unauthorized Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġcheck User (): ĠUser Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġpreferences . logged User ĊĠĠĠĠĠĠĠ Ġreturn Ġuser Ġ?: Ġthrow ĠUnauthorized Exception () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġset Schedulers ( observable : ĠSingle < T >): ĠSingle < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobservable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ} Ċ }