package Ġcom . blank . github user . data . repository Ċ Ċ import Ġcom . blank . github user . data . local . db . Db Helper Ċ import Ġcom . blank . github user . data . model . Search Users Response Ċ import Ġcom . blank . github user . data . model . User Ċ import Ġcom . blank . github user . data . remote . Api Helper Ċ import Ġcom . blank . github user . utils . Result State Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Single Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠGithub Repository Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġapi Helper : ĠApi Helper , ĊĠĠĠ Ġprivate Ġval Ġdb Helper : ĠDb Helper Ċ ) Ġ: ĠApi Helper , ĠDb Helper Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Users ( page : ĠInt , Ġper _ page : ĠInt ): ĠSingle < List < User >> Ġ= ĊĠĠĠĠĠĠĠ Ġapi Helper . get Users ( page , Ġper _ page ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetUser By Username ( username : ĠString ): ĠSingle < Result State > Ġ= ĊĠĠĠĠĠĠĠ Ġapi Helper . getUser By Username ( username ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Search Users ( ĊĠĠĠĠĠĠĠ Ġq : ĠString , ĊĠĠĠĠĠĠĠ Ġpage : ĠInt , ĊĠĠĠĠĠĠĠ Ġper _ page : ĠInt ĊĠĠĠ Ġ): ĠObservable < Search Users Response > Ġ= ĊĠĠĠĠĠĠĠ Ġapi Helper . get Search Users ( q , Ġpage , Ġper _ page ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Users Following ( ĊĠĠĠĠĠĠĠ Ġusername : ĠString , ĊĠĠĠĠĠĠĠ Ġpage : ĠInt , ĊĠĠĠĠĠĠĠ Ġper _ page : ĠInt ĊĠĠĠ Ġ): ĠSingle < List < User >> Ġ= ĊĠĠĠĠĠĠĠ Ġapi Helper . get Users Following ( username , Ġpage , Ġper _ page ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Users Follow ers ( ĊĠĠĠĠĠĠĠ Ġusername : ĠString , ĊĠĠĠĠĠĠĠ Ġpage : ĠInt , ĊĠĠĠĠĠĠĠ Ġper _ page : ĠInt ĊĠĠĠ Ġ): ĠSingle < List < User >> Ġ= ĊĠĠĠĠĠĠĠ Ġapi Helper . get Users Follow ers ( username , Ġpage , Ġper _ page ) ĊĊĠĠĠ Ġoverride Ġfun Ġfetch User By Username ( username : ĠString ): ĠSingle < User > Ġ= ĊĠĠĠĠĠĠĠ Ġapi Helper . fetch User By Username ( username ) ĊĊĠĠĠ Ġoverride Ġfun Ġinsert Db ( user : ĠUser ): ĠObservable < Boolean > Ġ= ĊĠĠĠĠĠĠĠ Ġdb Helper . insert Db ( user ) ĊĊĠĠĠ Ġoverride Ġfun Ġload All (): ĠObservable < Mutable List < User >> Ġ= ĊĠĠĠĠĠĠĠ Ġdb Helper . load All () ĊĊĠĠĠ Ġoverride Ġfun Ġfind ById ( id : ĠInt ): ĠObservable < User > Ġ= ĊĠĠĠĠĠĠĠ Ġdb Helper . findById ( id ) ĊĊĠĠĠ Ġoverride Ġfun Ġdelete ( user : ĠUser ): ĠObservable < Boolean > Ġ= ĊĠĠĠĠĠĠĠ Ġdb Helper . delete ( user ) Ċ }