package Ġpayment . sdk . android . demo . dependency Ċ Ċ import Ġpayment . sdk . android . demo . dependency . repository . Product Dao Ċ import Ġpayment . sdk . android . demo . dependency . repository . Product Database Ċ import Ġpayment . sdk . android . demo . dependency . repository . Product Repository Ċ import Ġandroid . app . Application Ċ import Ġandroid . arch . persistence . room . Room Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ abstract Ġclass ĠRepository Module Ġ{ ĊĊĠĠĠ Ġ@ Module ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġfun Ġprovide Product Database ( app : ĠApplication ): ĠProduct Database Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp . application Context , ĠProduct Database :: class . java , Ġ" product _ db " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). fallback To Dest ruct ive Migration (). build () ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġfun Ġprovide Product Dao ( database : ĠProduct Database ): ĠProduct Dao Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . product Dao () ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġfun Ġprovide Product Repository ( repository : ĠProduct Repository ): ĠProduct Repository Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrepository ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ