package Ġcom . m use . w pr k . di Ċ Ċ import Ġandroid . app . Application Ċ import Ġcom . m use . w pr k . core . utilities . Cache Repository Impl Ċ import Ġcom . m use . w pr k . main . model . Episode Ċ import Ġcom . m use . w pr k . main . model . Pod cast Ċ import Ġcom . m use . w pr k . main . model . Show Ċ import Ġcom . m use . w pr k . main . repository . Cache Repository Ċ import Ġcom . tod d way . shelf . File Storage Ċ import Ġcom . tod d way . shelf . Gson Serializer Ċ import Ġcom . tod d way . shelf . Kotlin x Serializer Ċ import Ġcom . tod d way . shelf . She lf Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . h ilt . Install In Ċ import Ġdagger . h ilt . components . Singleton Component Ċ import Ġkotlinx . serialization . Internal Serialization Api Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ @ Install In ( Singleton Component :: class ) Ċ object ĠSingleton Module Ġ{ ĊĊĠĠĠ Ġ@ Opt In ( Internal Serialization Api :: class ) ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide She lf ( ĊĠĠĠĠĠĠĠ Ġapp : ĠApplication ĊĠĠĠ Ġ) Ġ= ĠShe lf ( File Storage ( app . cacheDir ), ĠGson Serializer ()). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġserializer Ġ= ĠKotlin x Serializer (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister ( Show . serializer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister ( Pod cast . serializer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister ( Episode . serializer ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide SC ache ( ĊĠĠĠĠĠĠĠ Ġshe lf : ĠShe lf ĊĠĠĠ Ġ): ĠCache Repository Ġ= ĠCache Repository Impl ( shelf ) Ċ Ċ }