package Ġio . github . al x iw . p unk paging . di . module Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroidx . room . Room Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġio . github . al x iw . p unk paging . data . db . P unk Database Ċ import Ġio . github . al x iw . p unk paging . di . annotations . ApplicationContext Ċ import Ġjavax . inject . Named Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ class ĠDatabase Module Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDB _ NAME Ġ= Ġ" p unk _ paging . db " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠP REF S _ NAME Ġ= Ġ" p unk _ paging _ prefs " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Named ( DB _ NAME ) ĊĠĠĠ Ġfun Ġprovide Database Name () Ġ= ĠDB _ NAME ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovides P unk Database (@ Named ( DB _ NAME ) Ġdb Name : ĠString , Ġ@ ApplicationContext Ġapp : ĠContext ): ĠP unk Database Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRoom . database Builder ( app , ĠP unk Database :: class . java , Ġdb Name ). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Shared Preference (@ ApplicationContext Ġcontext : ĠContext ): ĠSharedPreferences Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . get SharedPreferences ( PRE FS _ NAME , ĠContext . MODE _ PRIVATE ) ĊĠĠĠ Ġ} Ċ } Ċ