gitextract_xodvr_qd/ ├── .coderabbit.yaml ├── .editorconfig ├── .github/ │ ├── CODEOWNERS │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── Bug_report.md │ │ └── Feature_request.md │ ├── pull_request_template.md │ └── workflows/ │ └── android.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── app/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ ├── androidTest/ │ │ └── kotlin/ │ │ └── com/ │ │ └── skydoves/ │ │ └── pokedex/ │ │ ├── AppTestRunner.kt │ │ ├── DetailActivityInjectionTest.kt │ │ └── MainActivityInjectionTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── baseline-prof.txt │ │ ├── kotlin/ │ │ │ └── com/ │ │ │ └── skydoves/ │ │ │ └── pokedex/ │ │ │ ├── PokedexApp.kt │ │ │ ├── binding/ │ │ │ │ ├── RecyclerViewBinding.kt │ │ │ │ └── ViewBinding.kt │ │ │ ├── initializer/ │ │ │ │ └── TimberInitializer.kt │ │ │ ├── ui/ │ │ │ │ ├── details/ │ │ │ │ │ ├── DetailActivity.kt │ │ │ │ │ └── DetailViewModel.kt │ │ │ │ └── main/ │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MainViewModel.kt │ │ │ │ └── PokemonAdapter.kt │ │ │ └── utils/ │ │ │ ├── PokemonTypeUtils.kt │ │ │ └── SpacesItemDecoration.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_arrow.xml │ │ │ ├── ic_launcher_background.xml │ │ │ └── scrollbar.xml │ │ ├── drawable-v24/ │ │ │ └── ic_launcher_foreground.xml │ │ ├── layout/ │ │ │ ├── activity_detail.xml │ │ │ ├── activity_main.xml │ │ │ ├── item_pokemon.xml │ │ │ └── toolbar_home.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ └── ic_launcher.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-es/ │ │ │ └── strings.xml │ │ ├── values-it/ │ │ │ └── strings.xml │ │ ├── values-pt-rBR/ │ │ │ └── strings.xml │ │ └── values-v31/ │ │ └── styles.xml │ └── test/ │ └── kotlin/ │ └── com/ │ └── skydoves/ │ └── pokedex/ │ ├── DetailViewModelTest.kt │ └── MainViewModelTest.kt ├── benchmark/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── kotlin/ │ └── com/ │ └── github/ │ └── skydoves/ │ └── benchmark/ │ ├── BaselineProfileGenerator.kt │ ├── Constant.kt │ └── StartupBenchmark.kt ├── build.gradle.kts ├── buildSrc/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ └── kotlin/ │ └── com/ │ └── skydoves/ │ └── pokedex/ │ └── Configuration.kt ├── core-data/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── kotlin/ │ │ └── com/ │ │ └── skydoves/ │ │ └── pokedex/ │ │ └── core/ │ │ ├── di/ │ │ │ └── DataModule.kt │ │ └── repository/ │ │ ├── DetailRepository.kt │ │ ├── DetailRepositoryImpl.kt │ │ ├── MainRepository.kt │ │ └── MainRepositoryImpl.kt │ └── test/ │ └── kotlin/ │ └── com/ │ └── skydoves/ │ └── pokedex/ │ └── core/ │ └── data/ │ ├── DetailRepositoryTest.kt │ └── MainRepositoryImplTest.kt ├── core-database/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── schemas/ │ │ └── com.skydoves.pokedex.core.database.PokedexDatabase/ │ │ ├── 1.json │ │ └── 2.json │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── kotlin/ │ │ └── com/ │ │ └── skydoves/ │ │ └── pokedex/ │ │ └── core/ │ │ └── database/ │ │ ├── PokedexDatabase.kt │ │ ├── PokemonDao.kt │ │ ├── PokemonInfoDao.kt │ │ ├── TypeResponseConverter.kt │ │ ├── di/ │ │ │ └── DatabaseModule.kt │ │ └── entity/ │ │ ├── PokemonEntity.kt │ │ ├── PokemonInfoEntity.kt │ │ └── mapper/ │ │ ├── EntityMapper.kt │ │ ├── PokemonEntityMapper.kt │ │ └── PokemonInfoEntityMapper.kt │ └── test/ │ └── kotlin/ │ └── com/ │ └── skydoves/ │ └── pokedex/ │ └── core/ │ └── database/ │ ├── LocalDatabase.kt │ └── PokemonDaoTest.kt ├── core-model/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── kotlin/ │ └── com/ │ └── skydoves/ │ └── pokedex/ │ └── core/ │ └── model/ │ ├── Pokemon.kt │ └── PokemonInfo.kt ├── core-network/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── kotlin/ │ │ └── com/ │ │ └── skydoves/ │ │ └── pokedex/ │ │ └── core/ │ │ └── network/ │ │ ├── PokedexAppDispatchers.kt │ │ ├── di/ │ │ │ ├── DispatchersModule.kt │ │ │ └── NetworkModule.kt │ │ ├── interceptor/ │ │ │ └── HttpRequestInterceptor.kt │ │ ├── model/ │ │ │ ├── PokemonErrorResponse.kt │ │ │ ├── PokemonResponse.kt │ │ │ └── mapper/ │ │ │ └── ErrorResponseMapper.kt │ │ └── service/ │ │ ├── PokedexClient.kt │ │ └── PokedexService.kt │ └── test/ │ ├── kotlin/ │ │ └── com/ │ │ └── skydoves/ │ │ └── pokedex/ │ │ └── core/ │ │ └── network/ │ │ ├── ApiAbstract.kt │ │ ├── ApiResponseTest.kt │ │ └── PokedexServiceTest.kt │ └── resources/ │ └── api-response/ │ ├── Bulbasaur.json │ └── PokemonResponse.json ├── core-test/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── kotlin/ │ └── com/ │ └── skydoves/ │ └── pokedex/ │ └── core/ │ └── test/ │ ├── MainCoroutinesRule.kt │ └── MockUtil.kt ├── gradle/ │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── renovate.json ├── settings.gradle.kts └── spotless/ ├── spotless.license.kt └── spotless.license.xml