package Ġcom . mj . mv v mp attern frame . di Ċ Ċ import Ġcom . mj . mv v mp attern frame . data . database . provide Dao Ċ import Ġcom . mj . mv v mp attern frame . data . database . provide Db Ċ import Ġcom . mj . mv v mp attern frame . data . network . provide Gson Converter Factory Ċ import Ġcom . mj . mv v mp attern frame . data . network . provide Ok HttpClient Ċ import Ġcom . mj . mv v mp attern frame . data . network . provide Pokemon ApiService Ċ import Ġcom . mj . mv v mp attern frame . data . network . provide Pokemon Ret rofit Ċ import Ġcom . mj . mv v mp attern frame . data . repository . Default Pokemon Repository Ċ import Ġcom . mj . mv v mp attern frame . data . repository . Pokemon Repository Ċ import Ġcom . mj . mv v mp attern frame . domain .* Ċ import Ġcom . mj . mv v mp attern frame . presentation . favorite . Favorite ViewModel Ċ import Ġcom . mj . mv v mp attern frame . presentation . list . List ViewModel Ċ import Ġcom . mj . mv v mp attern frame . presentation . main . Main ViewModel Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġorg . k oin . android . ext . k oin . android Context Ċ import Ġorg . k oin . android x . view model . dsl . viewModel Ċ import Ġorg . k oin . dsl . module Ċ Ċ val Ġapp Module Ġ= Ġmodule Ġ{ ĊĊĠĠĠ Ġ// di ĠviewModel ĊĠĠĠ ĠviewModel Ġ{ ĠMain ViewModel () Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠList ViewModel ( get (), Ġget (), Ġget ()) Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠF avorite ViewModel ( get (), Ġget ()) Ġ} ĊĊĠĠĠ Ġ// Coroutine ĠDispatcher ĊĠĠĠ Ġsingle Ġ{ ĠDispatch ers . IO Ġ} ĊĠĠĠ Ġsingle Ġ{ ĠDispatch ers . Main Ġ} ĊĊĠĠĠ Ġ// repositories ĊĠĠĠ Ġsingle < Pokemon Repository > Ġ{ ĠDefault Pokemon Repository ( get (), Ġget (), Ġget ()) } ĊĊĠĠĠ Ġ// ret rofit ĊĠĠĠ Ġsingle Ġ{ Ġprovide Gson Converter Factory () Ġ} ĊĠĠĠ Ġsingle Ġ{ Ġprovide Ok HttpClient () Ġ} ĊĠĠĠ Ġsingle Ġ{ Ġprovide Pokemon ApiService ( get ()) Ġ} ĊĠĠĠ Ġsingle Ġ{ Ġprovide Pokemon Ret rofit ( get (), Ġget ()) } ĊĊĠĠĠ Ġ// database ĊĠĠĠ Ġsingle Ġ{ Ġprovide Db ( android Context ()) Ġ} ĊĠĠĠ Ġsingle Ġ{ Ġprovide Dao ( get ()) Ġ} ĊĊĠĠĠ Ġ// use Cases ĊĠĠĠ Ġfactory Ġ{ ĠGet Pokemon List UseCase ( get ()) Ġ} ĊĠĠĠ Ġfactory Ġ{ ĠGet Local Pokemon List UseCase ( get ()) Ġ} ĊĠĠĠ Ġfactory Ġ{ ĠSet Local Pokemon List UseCase ( get ()) Ġ} ĊĠĠĠ Ġfactory Ġ{ ĠSet Local Pokemon UseCase ( get ()) Ġ} ĊĠĠĠ Ġfactory Ġ{ ĠDelete Local Pokemon UseCase ( get ()) Ġ} Ċ }