From db461dd2b657d577958be9256892b1d07f5bfacc Mon Sep 17 00:00:00 2001 From: ykv17 Date: Sun, 13 Aug 2023 00:01:40 +0530 Subject: [PATCH] Created Home module and setting base architecture --- .idea/compiler.xml | 2 +- .idea/gradle.xml | 6 ++ .idea/misc.xml | 2 +- .../noble/common_utils/base/BaseActivity.kt | 3 +- .../noble/common_utils/base/BaseFragment.kt | 72 ++++++++++++++++++ app/build.gradle.kts | 3 + app/src/main/AndroidManifest.xml | 12 ++- app/src/main/java/App.kt | 4 + .../rickandmorty/ui/main/MainActivity.kt | 12 +++ .../{ => ui/splash}/SplashActivity.kt | 2 +- app/src/main/res/layout/activity_main.xml | 2 +- app/src/main/res/layout/activity_main2.xml | 9 +++ app/src/main/res/values/themes.xml | 2 +- build.gradle.kts | 2 + .../kotlin/main/Dependencies$CoreDep.class | Bin 2158 -> 1178 bytes .../kotlin/main/Dependencies$Coroutines.class | Bin 0 -> 1018 bytes .../kotlin/main/Dependencies$HiltDep.class | Bin 0 -> 1183 bytes .../kotlin/main/Dependencies$Retrofit.class | Bin 0 -> 1091 bytes .../kotlin/main/Dependencies$SplashDep.class | Bin 1377 -> 862 bytes .../kotlin/main/Dependencies$TestDep.class | Bin 2470 -> 1050 bytes .../classes/kotlin/main/Dependencies.class | Bin 805 -> 957 bytes .../kotlin/main/Modules$AndroidCommon.class | Bin 0 -> 979 bytes ...Modules$Splash.class => Modules$App.class} | Bin 958 -> 908 bytes .../classes/kotlin/main/Modules$Common.class | Bin 0 -> 951 bytes .../classes/kotlin/main/Modules$Home.class | Bin 0 -> 1344 bytes .../build/classes/kotlin/main/Modules.class | Bin 683 -> 810 bytes .../build/classes/kotlin/main/Versions.class | Bin 2234 -> 1590 bytes buildSrc/build/kotlin/buildSrcjar-classes.txt | 2 +- .../caches-jvm/inputs/source-to-output.tab | Bin 4096 -> 4096 bytes .../inputs/source-to-output.tab.values.at | Bin 1230 -> 5978 bytes .../jvm/kotlin/class-attributes.tab | Bin 4096 -> 4096 bytes .../jvm/kotlin/class-attributes.tab.keystream | Bin 4096 -> 4096 bytes .../kotlin/class-attributes.tab.keystream.len | Bin 8 -> 8 bytes .../jvm/kotlin/class-attributes.tab.len | Bin 8 -> 8 bytes .../jvm/kotlin/class-attributes.tab.values.at | Bin 85 -> 259 bytes .../jvm/kotlin/class-attributes.tab_i | Bin 32768 -> 32768 bytes .../jvm/kotlin/class-fq-name-to-source.tab | Bin 4096 -> 4096 bytes .../class-fq-name-to-source.tab.keystream | Bin 4096 -> 4096 bytes .../class-fq-name-to-source.tab.keystream.len | Bin 8 -> 8 bytes .../kotlin/class-fq-name-to-source.tab.len | Bin 8 -> 8 bytes .../class-fq-name-to-source.tab.values.at | Bin 579 -> 3146 bytes .../jvm/kotlin/class-fq-name-to-source.tab_i | Bin 32768 -> 32768 bytes .../caches-jvm/jvm/kotlin/constants.tab | Bin 0 -> 4096 bytes .../jvm/kotlin/constants.tab.keystream | Bin 0 -> 4096 bytes .../jvm/kotlin/constants.tab.keystream.len | Bin 0 -> 8 bytes .../caches-jvm/jvm/kotlin/constants.tab.len | Bin 0 -> 8 bytes .../jvm/kotlin/constants.tab.values.at | Bin 0 -> 2450 bytes .../caches-jvm/jvm/kotlin/constants.tab_i | Bin 0 -> 32768 bytes .../caches-jvm/jvm/kotlin/constants.tab_i.len | Bin 0 -> 8 bytes .../jvm/kotlin/internal-name-to-source.tab | Bin 4096 -> 4096 bytes .../internal-name-to-source.tab.keystream | Bin 4096 -> 4096 bytes .../internal-name-to-source.tab.keystream.len | Bin 8 -> 8 bytes .../kotlin/internal-name-to-source.tab.len | Bin 8 -> 8 bytes .../internal-name-to-source.tab.values.at | Bin 579 -> 3146 bytes .../jvm/kotlin/internal-name-to-source.tab_i | Bin 32768 -> 32768 bytes .../cacheable/caches-jvm/jvm/kotlin/proto.tab | Bin 4096 -> 4096 bytes .../caches-jvm/jvm/kotlin/proto.tab.keystream | Bin 4096 -> 4096 bytes .../jvm/kotlin/proto.tab.keystream.len | Bin 8 -> 8 bytes .../caches-jvm/jvm/kotlin/proto.tab.len | Bin 8 -> 8 bytes .../caches-jvm/jvm/kotlin/proto.tab.values.at | Bin 3312 -> 17497 bytes .../caches-jvm/jvm/kotlin/proto.tab_i | Bin 32768 -> 32768 bytes .../jvm/kotlin/source-to-classes.tab | Bin 4096 -> 4096 bytes .../kotlin/source-to-classes.tab.values.at | Bin 334 -> 1606 bytes .../cacheable/caches-jvm/lookups/counters.tab | 2 +- .../caches-jvm/lookups/file-to-id.tab | Bin 4096 -> 4096 bytes .../lookups/file-to-id.tab.values.at | Bin 85 -> 169 bytes .../caches-jvm/lookups/id-to-file.tab | Bin 4096 -> 4096 bytes .../lookups/id-to-file.tab.keystream | Bin 4096 -> 4096 bytes .../lookups/id-to-file.tab.keystream.len | Bin 8 -> 8 bytes .../caches-jvm/lookups/id-to-file.tab.len | Bin 8 -> 8 bytes .../lookups/id-to-file.tab.values.at | Bin 308 -> 916 bytes .../caches-jvm/lookups/id-to-file.tab_i | Bin 32768 -> 32768 bytes .../cacheable/caches-jvm/lookups/lookups.tab | Bin 4096 -> 4096 bytes .../caches-jvm/lookups/lookups.tab.keystream | Bin 4096 -> 4096 bytes .../lookups/lookups.tab.keystream.len | Bin 8 -> 8 bytes .../caches-jvm/lookups/lookups.tab.len | Bin 8 -> 8 bytes .../caches-jvm/lookups/lookups.tab.values.at | Bin 374 -> 1993 bytes .../caches-jvm/lookups/lookups.tab_i | Bin 32768 -> 32768 bytes .../compileKotlin/cacheable/last-build.bin | Bin 18 -> 18 bytes .../local-state/build-history.bin | Bin 653 -> 4171 bytes buildSrc/build/libs/buildSrc.jar | Bin 6905 -> 10409 bytes buildSrc/src/main/java/Dependencies.kt | 35 +++++++-- buildSrc/src/main/java/Modules.kt | 15 +++- buildSrc/src/main/java/Versions.kt | 23 +++--- common/common_utils/.gitignore | 1 + common/common_utils/build.gradle.kts | 13 ++++ .../com/noble/common_utils/DateTimeHelper.kt | 4 + .../com/noble/common_utils/enums/ErrorType.kt | 6 ++ .../com/noble/common_utils/state/State.kt | 9 +++ home/home_data/.gitignore | 1 + home/home_data/build.gradle.kts | 19 +++++ .../home_data/dto/CharactersResponseDto.kt | 6 ++ .../main/java/com/noble/home_data/dto/Info.kt | 8 ++ .../java/com/noble/home_data/dto/Location.kt | 6 ++ .../java/com/noble/home_data/dto/Origin.kt | 6 ++ .../java/com/noble/home_data/dto/Result.kt | 16 ++++ .../com/noble/home_data/mapper/Mappers.kt | 30 ++++++++ .../home_data/network/CharacterService.kt | 16 ++++ .../repository/CharacterRepositoryImpl.kt | 22 ++++++ home/home_domain/.gitignore | 1 + home/home_domain/build.gradle.kts | 14 ++++ .../com/noble/home_domain/mappers/Mapper.kt | 2 + .../com/noble/home_domain/models/Character.kt | 37 +++++++++ .../home_domain/models/CharacterLocation.kt | 14 ++++ .../repository/CharacterRepository.kt | 8 ++ .../use_cases/GetCharacterListUseCase.kt | 8 ++ .../use_cases/GetCharacterListUseCaseImpl.kt | 14 ++++ home/home_presentation/.gitignore | 1 + home/home_presentation/build.gradle.kts | 56 ++++++++++++++ home/home_presentation/consumer-rules.pro | 0 home/home_presentation/proguard-rules.pro | 21 +++++ .../ExampleInstrumentedTest.kt | 24 ++++++ .../src/main/AndroidManifest.xml | 4 + .../home_presentation/ExampleUnitTest.kt | 17 +++++ settings.gradle.kts | 6 ++ 115 files changed, 569 insertions(+), 31 deletions(-) create mode 100644 androidCommon/common_utils/src/main/java/com/noble/common_utils/base/BaseFragment.kt create mode 100644 app/src/main/java/App.kt create mode 100644 app/src/main/java/com/noble/rickandmorty/ui/main/MainActivity.kt rename app/src/main/java/com/noble/rickandmorty/{ => ui/splash}/SplashActivity.kt (91%) create mode 100644 app/src/main/res/layout/activity_main2.xml create mode 100644 buildSrc/build/classes/kotlin/main/Dependencies$Coroutines.class create mode 100644 buildSrc/build/classes/kotlin/main/Dependencies$HiltDep.class create mode 100644 buildSrc/build/classes/kotlin/main/Dependencies$Retrofit.class create mode 100644 buildSrc/build/classes/kotlin/main/Modules$AndroidCommon.class rename buildSrc/build/classes/kotlin/main/{Modules$Splash.class => Modules$App.class} (58%) create mode 100644 buildSrc/build/classes/kotlin/main/Modules$Common.class create mode 100644 buildSrc/build/classes/kotlin/main/Modules$Home.class create mode 100644 buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab create mode 100644 buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream create mode 100644 buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len create mode 100644 buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len create mode 100644 buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at create mode 100644 buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i create mode 100644 buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len create mode 100644 common/common_utils/.gitignore create mode 100644 common/common_utils/build.gradle.kts create mode 100644 common/common_utils/src/main/java/com/noble/common_utils/DateTimeHelper.kt create mode 100644 common/common_utils/src/main/java/com/noble/common_utils/enums/ErrorType.kt create mode 100644 common/common_utils/src/main/java/com/noble/common_utils/state/State.kt create mode 100644 home/home_data/.gitignore create mode 100644 home/home_data/build.gradle.kts create mode 100644 home/home_data/src/main/java/com/noble/home_data/dto/CharactersResponseDto.kt create mode 100644 home/home_data/src/main/java/com/noble/home_data/dto/Info.kt create mode 100644 home/home_data/src/main/java/com/noble/home_data/dto/Location.kt create mode 100644 home/home_data/src/main/java/com/noble/home_data/dto/Origin.kt create mode 100644 home/home_data/src/main/java/com/noble/home_data/dto/Result.kt create mode 100644 home/home_data/src/main/java/com/noble/home_data/mapper/Mappers.kt create mode 100644 home/home_data/src/main/java/com/noble/home_data/network/CharacterService.kt create mode 100644 home/home_data/src/main/java/com/noble/home_data/repository/CharacterRepositoryImpl.kt create mode 100644 home/home_domain/.gitignore create mode 100644 home/home_domain/build.gradle.kts create mode 100644 home/home_domain/src/main/java/com/noble/home_domain/mappers/Mapper.kt create mode 100644 home/home_domain/src/main/java/com/noble/home_domain/models/Character.kt create mode 100644 home/home_domain/src/main/java/com/noble/home_domain/models/CharacterLocation.kt create mode 100644 home/home_domain/src/main/java/com/noble/home_domain/repository/CharacterRepository.kt create mode 100644 home/home_domain/src/main/java/com/noble/home_domain/use_cases/GetCharacterListUseCase.kt create mode 100644 home/home_domain/src/main/java/com/noble/home_domain/use_cases/GetCharacterListUseCaseImpl.kt create mode 100644 home/home_presentation/.gitignore create mode 100644 home/home_presentation/build.gradle.kts create mode 100644 home/home_presentation/consumer-rules.pro create mode 100644 home/home_presentation/proguard-rules.pro create mode 100644 home/home_presentation/src/androidTest/java/com/noble/home_presentation/ExampleInstrumentedTest.kt create mode 100644 home/home_presentation/src/main/AndroidManifest.xml create mode 100644 home/home_presentation/src/test/java/com/noble/home_presentation/ExampleUnitTest.kt diff --git a/.idea/compiler.xml b/.idea/compiler.xml index b589d56..1c5ab05 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 1e9b8f1..92f0676 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -15,6 +15,12 @@ diff --git a/.idea/misc.xml b/.idea/misc.xml index 8978d23..f61c2d0 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + diff --git a/androidCommon/common_utils/src/main/java/com/noble/common_utils/base/BaseActivity.kt b/androidCommon/common_utils/src/main/java/com/noble/common_utils/base/BaseActivity.kt index 87dcecb..7a93ee4 100644 --- a/androidCommon/common_utils/src/main/java/com/noble/common_utils/base/BaseActivity.kt +++ b/androidCommon/common_utils/src/main/java/com/noble/common_utils/base/BaseActivity.kt @@ -9,7 +9,8 @@ import androidx.viewbinding.ViewBinding abstract class BaseActivity : AppCompatActivity() { - private lateinit var binding: B + protected lateinit var binding: B + protected lateinit var viewModel: VM override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = DataBindingUtil.setContentView(this, getLayout()) diff --git a/androidCommon/common_utils/src/main/java/com/noble/common_utils/base/BaseFragment.kt b/androidCommon/common_utils/src/main/java/com/noble/common_utils/base/BaseFragment.kt new file mode 100644 index 0000000..d92e46a --- /dev/null +++ b/androidCommon/common_utils/src/main/java/com/noble/common_utils/base/BaseFragment.kt @@ -0,0 +1,72 @@ +package com.noble.common_utils.base + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.annotation.LayoutRes +import androidx.databinding.DataBindingUtil +import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModel +import androidx.viewbinding.ViewBinding + +abstract class BaseFragment: Fragment() { + + protected lateinit var binding: B + protected lateinit var viewModel: VM + + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + super.onCreateView(inflater, container, savedInstanceState) + binding = DataBindingUtil.inflate(inflater, getLayout(), container, false) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + setObservers() + } + + override fun onStart() { + super.onStart() + setListeners() + } + + override fun onResume() { + super.onResume() + } + + override fun onPause() { + super.onPause() + } + + override fun onStop() { + super.onStop() + removeListeners() + } + + override fun onDestroyView() { + super.onDestroyView() + removeObservers() + } + + override fun onDestroy() { + super.onDestroy() + } + + abstract fun setListeners() + abstract fun removeListeners() + abstract fun setObservers() + abstract fun removeObservers() + + @LayoutRes + abstract fun getLayout(): Int +} \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fc80141..42fb5e4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -46,6 +46,9 @@ dependencies { implementation(Dependencies.CoreDep.material) implementation(Dependencies.CoreDep.constraint) implementation(Dependencies.SplashDep.splash) + implementation("androidx.appcompat:appcompat:1.6.1") + implementation("com.google.android.material:material:1.9.0") + implementation("androidx.constraintlayout:constraintlayout:2.1.4") testImplementation(Dependencies.TestDep.junit) androidTestImplementation(Dependencies.TestDep.testJunitExt) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 15df7a7..2c9d78a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,9 @@ + xmlns:tools="http://schemas.android.com/tools" > + tools:targetApi="31" > + android:name=".ui.main.MainActivity" + android:exported="false" /> + diff --git a/app/src/main/java/App.kt b/app/src/main/java/App.kt new file mode 100644 index 0000000..9ba4074 --- /dev/null +++ b/app/src/main/java/App.kt @@ -0,0 +1,4 @@ +import android.app.Application + +class App: Application() { +} \ No newline at end of file diff --git a/app/src/main/java/com/noble/rickandmorty/ui/main/MainActivity.kt b/app/src/main/java/com/noble/rickandmorty/ui/main/MainActivity.kt new file mode 100644 index 0000000..cff0957 --- /dev/null +++ b/app/src/main/java/com/noble/rickandmorty/ui/main/MainActivity.kt @@ -0,0 +1,12 @@ +package com.noble.rickandmorty.ui.main + +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import com.noble.rickandmorty.R + +class MainActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/noble/rickandmorty/SplashActivity.kt b/app/src/main/java/com/noble/rickandmorty/ui/splash/SplashActivity.kt similarity index 91% rename from app/src/main/java/com/noble/rickandmorty/SplashActivity.kt rename to app/src/main/java/com/noble/rickandmorty/ui/splash/SplashActivity.kt index f4603bd..27c4407 100644 --- a/app/src/main/java/com/noble/rickandmorty/SplashActivity.kt +++ b/app/src/main/java/com/noble/rickandmorty/ui/splash/SplashActivity.kt @@ -1,4 +1,4 @@ -package com.noble.rickandmorty +package com.noble.rickandmorty.ui.splash import androidx.appcompat.app.AppCompatActivity import android.os.Bundle diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 15295ce..febf14c 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".SplashActivity"> + tools:context=".ui.splash.SplashActivity"> + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 15bd6b7..a5bbd61 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -10,7 +10,7 @@ diff --git a/build.gradle.kts b/build.gradle.kts index d093cf6..81daecc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,4 +3,6 @@ plugins { id("com.android.application") version "8.1.0" apply false id("org.jetbrains.kotlin.android") version "1.8.0" apply false id("com.android.library") version "8.1.0" apply false + id("org.jetbrains.kotlin.jvm") version "1.8.0" apply false + id("com.google.dagger.hilt.android") version "2.47" apply false } \ No newline at end of file diff --git a/buildSrc/build/classes/kotlin/main/Dependencies$CoreDep.class b/buildSrc/build/classes/kotlin/main/Dependencies$CoreDep.class index a17f2b46bf110d3cb517a1a36f8085cdfe1fc78c..c4913677fe0cdfdc17956445aee1f61f9cc9ccf2 100644 GIT binary patch delta 650 zcmZWlK~EDw7=1Il-OdiBY!TWmwH2tSfUdh0F(zQ54JLcxpoD08+7L(@N@>{jXxbBZ zG6xfnp1c|l8cocm-uxXNjX%NoO*IC~T;7}azHh!a-%sbYEx-Nx^aa2s?w!fQy4cw3 zw7c!(fdogEL4?~+cOGsxw{n<-v`NgLz1lJusw!nAH}C@A3j{7P*io<7JU;403B#hQ z8P#Iot!uAHuN+0m{z*IPFs!HpV~P6id%i%KLGB%QugnhH#hQ=O`SCACc9DR#lEU#4*CdaAtr4vgR=S?=kgmBp6sD)Ia06iCgriyL9L9uuk}x^cp>Qr3E9ze29e* mi>MRD)ey@|xYh!TaUC~Wuw%#=%Q37Nvm;W8QHbHjSosaP#AMe1 literal 2158 zcmah}TT|Oc6#iB=wk$+2hHx=WdI_bFCN`w$4MboJ7E_Xx-qyCp2+NYkS~Kv* zQ~p6``rM~Jw#iI0LuWb+ed~|v^sFRo1$zcP?4IklM`yo1|NeLKH-LL6GmNbpO~bAl zcEvQ@nVi!y$Pfo(Nbd6kp0&7L%RVme8x;{pgdw(K+NSu7Au>0=qhkOu4N=4yqGHc< z8O96!0GAoGnjs|oBXLNl&dnFP@FmeQ?Ha}0C^)TJcHa=?7B_7-%Wc~cT$m2YMMo6d zmPJwV$~jD`7evPu3@4x<$)MAbtIcN4X*9WDNbqx6$EY7P#xO`hn_L(zlUodGBM@~= z_#u-FLtg2&D`Zs!q*bUOU(qq`hrL0$D;3LYjz-5*N7Q_=w7pu)J<#zMG+EQzWZW@Y zuKb}mZV*!8TwRty?$f-O*cC1|cttp^qd0CeOf-1i@Xb$5u}6|CxGm@sf0+w4HbB`l#GX@q zNM~C_l!D{b+s)-rSa69U%WH|-M@^$o_--iPXW4R?839C&TUN;w1~n;*1q~T24##kZ zVK!W7P(e69Fv+yLDWd#`45MLEbh`Vo-`!6bu6Mdibg6jMS?WsE+;XyM^0N12hIr@ z7zlSGg^0u*DbyW7#LUtS@+udco{-Wwh)_G2TvWNxFR?n=4^62pkW^h{`1$mBOj9Nm zO-Y^}YlbSxOGeVlLiFj`^L4VQ+UapRstzP$ z1509NVc4$n6&HBSnW<48f7`BYEW9iw2flBQ8rrJoMPz83r>YwJDg?(>48zt z+qTilS=@CEdOKRlX}2oIhA9)Kf^&BIoRVB~9O2R!Y5Gsg#Uc?QO6?!Ol$;p!gWr-C zqkV|>w47``HX39-Hkw>LHX2hGY%w~G#y44a2|Y_Y^%Mg)UqStY1O?yGD&124o>tut zK!QpGMleVg#Y@fv$9{CO_Y#F6x zoCaga?TCHh1wwCouj)IpVbVx2q*j$y<_SY$cCMB|A5t!oNHZkOI~6nJ%m2W9#Nezp zf|G6++_pG=rMkIRDLv0%5NDUumhej9`l3fW+r4ad#2DVG_17*D;Sxwr}>rQ*rufWTPkQ)qXt9f{PNPc&EV3XcdvqB=zO}cYZ#_BTH2^R>Fa$Jt9l^Udh22sEYa4C z(55DW7QJ7x6gEi>mFdVTt-ZR8HU;(A)rAca)I_AL-wkGbtz}dSL>x=HEVmlAqK15- zY(u^~xAxamEYck%=>ZeS+q0q{oFgwqI!8K>VT@44JlPzh7jk3ga^rvGI91cJ6Usg6 z^hnd&p>O^O&ZiTo`y_1|n8X6f%xMAoi2^Mc182?S1ZBU0ui$Twkok-u3t<@-NLt1m zcW{@udgOD=qDcBF#V3eEehUd7lRl<=T)|Z`am~kd+}Hw(aTB+;kdEQTn2wQ(F??c- H#hCd8k>KW9 literal 0 HcmV?d00001 diff --git a/buildSrc/build/classes/kotlin/main/Dependencies$HiltDep.class b/buildSrc/build/classes/kotlin/main/Dependencies$HiltDep.class new file mode 100644 index 0000000000000000000000000000000000000000..c7eaa71348f424521dda0a51e8505b300287c68e GIT binary patch literal 1183 zcmZ`&T~8B16g@L7?Xnao$TxnVpzsf6=~k2s7Iu}R z35bF*#1F-ZNIJr;CEu10Wkp93Vu)-hSLqiFp~airX+Tf<%%H|8j?R@5S41=)y2^?aW&v||=c_?++7s?Hi!gW0@wDKsu)7j!C!$|JP z)6~V}8>vNAXhApS^^*`iCNst|1`OX}SHjlTOHn&VLL_Tc& zJmpiZW}2ti%c#ZAKSg+)?+wL6GdvZ3cYazlh}~)u)OQt%T!o@N(D~|2qew0UGN%yMefiGGfa2R zEnPVkYc#ZB>Tw^Y%?#7+lC+ADkCUIq2u7(QMKQ-%Pj0*`H`$Y$>dMXZ~!Op>RDqi^{P)|U$jX|g5_68o5JtX+V9l1{UOfxqNQ+RA(b-@)IXA@&u+ zW(y#Mb+YEB9FMR{cYH!?js%{P-y!@qX}GhGP!@Ap+|A-1<|)KN7WeUBA1uH_EbgN} VfE{2dKqSD(MKBv+D!_Pvt;LqNGmTZ%EUq6yYplUkCNG#Z|^+hf^wdlq+38z1|` z5An%Y;{%B%rolIVlyMd)6wrM*Gv}L`Z|2O*{{Hj*CxEAT$T0On>^59V2BMvYy(mHiSuNfFZPLNlQIr2rMmEA{atQM-X9#pxU!MhUvmT8J{p{ zo2GpntAqOiTE1A`*(&B?7OVhDWFeuogvyM+HSs4YM){50)x}sBXlEsBC{LGM}7ebhVeqvQPh~!TcM1a zp$w{@w>klu5c3bsKfu76gnzR9Tbi`mIzyw^oz!`p>pa%$>Rj`cD9M2K>ww35-3(8& z=V6T>eGc&$FGXX48J-TlJ383$5xv(XXy_^wx&$443DLNCEyMgev})V3Yh~ADhzyQ8 zj3qLb&IU6!XiPR0!)&Q7mDLh?*|9vUYKyJ&;WCU;^F3uqRWaHvACNfBTe*@I>$G)2>Sz!N ze+lV%59k&m86%m%I3~zrjdYI5OSY*2+w>({e84ty!N!S+ej3VMDj-4xxQL zPLrb3H-i$U>5QB>V3^9IZNSJ`@HA2R-^dT}_lJml!nrHgEJsr)w4k~_u4%T51wF6lRV<9}s8lIW2SJS@q>+C*&`1@7 zPn! zyH_(>*XFn{pZ8JVZVs+Zh=Qv^!X_()+0PtB072eu*@?w}J7V8yC%1XK$3G-yXJ!KR z$&T+ZibH@48Ai`vfR)Bdg&WE(TjF<^Z;9uA1)WaddB(iB0m#TQiduvuQe0@4H6e{0 rbBX;WE)l9jt|DATq{@jHkBC>XjFmbh3kj^&p;*u?tXX0R*u(lSY#T)? literal 1377 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 diff --git a/buildSrc/build/classes/kotlin/main/Modules$AndroidCommon.class b/buildSrc/build/classes/kotlin/main/Modules$AndroidCommon.class new file mode 100644 index 0000000000000000000000000000000000000000..cc0ac80a65f24cb55e3fe651d554688271757287 GIT binary patch literal 979 zcmZuv-%ry}6#njQ=}IZk%^@)S4eCIpgGWRYoSKx3nJ_{$JeY26=7p|J+FRn|p7=w2 z@=@i1L=&^%n}3w?bWE6HAMQElyXVJuztf+;zJ3Sr1Sl$3ooC&gu{^N+x z^t!9O!k*=He)>V<7T+#fN{Lt0*QZC%3DJ#Sx1{PLmUjA4Blg@|W!W6PnTo(`#4U#0 zK=vH&F^vDUO$K9dxqKk$mD_13MaOr-Ly?GP;BQ>$OKYq~o=?lFiO{d7ou(h}xRk?C zs6{O|*mYx(#RJfE!qAVaftw^gE!1d4Y25N(imYIEFlYDD6s(ZmDv84}o5@cvS)xcI zJ5IKg?d=~-p`;i5Z*6d9u%uz zkpDz?!?oH_t%|eSVQM-G=OoHhnSItb@HZ#8a*V5mnPcQLKJ1*2LHP=n3Co_zaUW%R zv`sO`A}VC7gwGP|(jF8Ca}KUKxQ-j-;--UJxV;CK;11^ZpeHaAEF{npO!S?x1ZIM} FzX8Vg!z%y) literal 0 HcmV?d00001 diff --git a/buildSrc/build/classes/kotlin/main/Modules$Splash.class b/buildSrc/build/classes/kotlin/main/Modules$App.class similarity index 58% rename from buildSrc/build/classes/kotlin/main/Modules$Splash.class rename to buildSrc/build/classes/kotlin/main/Modules$App.class index 6fd8f1a7a0a97c8f8f0a2551d18c6e5b1c33ea1c..e9a3b3e082c2a7981227b7e3b181da3089fb837f 100644 GIT binary patch delta 87 zcmdnT-oq|&>ff$?3=9mm42Fyh+`joKr8%j^DvkvO6Q!-id3}%stQi^D(o;)7QkC{B c%!xqys2eMb6_7DmopCJ-Gf-ypZN|rp0K4!U6#xJL delta 136 zcmeBS-^VU}>ff$?3=9mm42Fyhe7^Z9r8%j^D!~OgiNzTcC9IVNd{D)#85#J~Q%eGh vQj1gbN)k&l^YbQV+4J%gAPcN@laaP62Act;;!)&(tYv3|Sh0B}<6}kuo4+y% diff --git a/buildSrc/build/classes/kotlin/main/Modules$Common.class b/buildSrc/build/classes/kotlin/main/Modules$Common.class new file mode 100644 index 0000000000000000000000000000000000000000..6de339484956f0807c4e3ce687ebf128ca09c288 GIT binary patch literal 951 zcmZWn-%ry}6#njQ=}M`in^R%<8`ObH2ak#-I5n9WGhu{icre}8%nMzcw70~^J@JS5 z`y64L=?z>cq zfQm|$#l|UmOU5GXQQ>?eihJ&^FWa#v!o>B$Fp{1W5&6wXHq#)WD!Vh{_!p~q9?3=? z)05zE7|gX!Fk);`Of=1Uv$eI}ti7;Nf~ATs5uZn6%*>3TO)CEgo>)(hD~BJ`VSzwO6c9@Q`u8&Ss#w!K)W zI7`~~F!bYE;3bJqE3{fs8h8AcLN&~0?`)rY1uLYmPO5OsD#2-lC5jBP7s!^?rvA%m zR7<}VW$#mkOO__b#L^MWFXV7Mpi^Cw`glmEJubi`!2<xN}{ZUnColqizgb%wr-^_e7`_1~#-ygpKEMu8LUw3Ow+vJmLZo^c- z7!rHNfswNfr=HuW?3q2*^{HNN z-SiD1BS|4O4nj0LCKgpJU|{=%f3$>^r&Dc?;ZwVn)}%2>lM?NgCaK~Or(IEhA4+5G z*1VKwFBMff`5ciF(q=jl%1U|p?aARQLR78Y%F1du5g~`t?@$9rwBMm6A}3!WG10?3 z6P>A*re)X4UX?-Vz7GZDlGjKf2Ca+D?)wbmn@z{J8fL*cu((yR&6TsaKpCrUjWPy{ zmSdKhjf&}Q85F~iD!Ns}-Znf-*j-RBIF9M9+6Lz)Jx;CcHodC(#u5pcZk_GEDwv}I z%A}%V^lHHrD_vFgm+}d*_~b1DBB2G$e%I(#b{zci=aYGV`JqT=%xr{f07}!sqAInKrBQn zE5SlS?0f;=M!Z>x$iRG@bLSq;JeyC-`TTx+2XKPco%40mm`<_|=h$I)I&s)m_Qx&f zrjr&oscmEoQ=M5h&+ZkwJbP3Yf&CT%gyl}?kD|Wcje;Nw37JkD6VyT)=TXoj*jMBJ zz`q<_6IL%Ge>~{v>c7R~D6~)^Ed9;m*g}=CvM_%0ENl|83vV86VLLgchxV@gMM)i3 z$a2h7)kQVLm8LLjudrXz@t)lC$MgRCNuE8bCr4a7Y=~2VfprNez{7^HDBKd3gge5r fu$iXRa3Jg^L#}zYhNF?!P#Oh|qDD!htg-e3^pQm- delta 271 zcmZ3*wwjge)W2Q(7#J9A88jzyU60i{(7?mRB*DbRBygaCi;07o<8T|3#DNAQCIdz* zMrJ2=4yHqk*q8*E4y|BgVPs%RF=Aw3U}RtmF33qN&R}HVNGi?DNeM1WW@O;=%}*)K zNi9}^$gwlXPoBfLgi&d-Ba>*oGSEtWphlo>23D=@3>+JQ3?>E@Ajt+6WMohUvUwm1 z7&sZYfIJQcZm=v!vp7&S2ypLaV2a$%z_XcwA7lgr12cmfkmLetQ~)ZGWsqc02lAO1 k6d5#tv=vZXkb!mbTP76&)?x;(Vg{LF2DV}b*g@x^Ivoj?;^5hTk z$yeipi6(~Nn?K6Dzx@F42#XBHsuKz~@I?lUA-~0Uc){cT zM&Wg1%W29CQVjZx>$~zXL+ZxO)hyD`P4pnc&?7fp!C=<@C3#2*XPREu-GrumjB0&( zWwu_K%c373`nsQ+MlUdlFMW$Kht-eSmZbx84}V)~?Im#vZki(yDQLM|wJZui)O zs@T?)0h=5g(GDFUf(og3l!B5^DH$f|pVqbmNq1Cuf~mz&3mDio z;k&Ln6=}C_Gd8@xchb~GG*ip(@0psRHaW6cWHl z-Hvg0B3vQH6(d|J#+4)7)PI~tD$=lBd{fppUkji zl^@bomu zkAN}6PK|RT(=hCM=5_Vdtho^c7{WW2ZMjbw0;_9BDnbY=2qMA|bl+H(Tj7^46PJblAZ7+PRXJvdsVP4Pa zTQVMdXjY(f-{CDix2fl4Jn`V1zAfVm3ODs_A+bvqE1fwmHIUgiUE{=X4XTow=K=CG z6AxKDz`)K3zp%tEOVJ56_0QF1Qjr!UMT%WrDv~UMD6Mh%ueZ{|)n#7FvS$%ly8bCF z#iWB|ERdG6!5^;QJ|{$0t}fF-ITQ;M5%CkUM@;z%#UrNugz6D9ej@4-vwkAx5ph4E zc|^ibBxB+0pTl$F0P;*6i(Ktkjgv~d#xUK#a;~4b42uUH+qIfz(LT4hRc)BNHv>t- zUT{uKGG@uL&2pz%HQR><<9SD2qyebe}{w~P`4Rc z>4Xtle+T(j3M5qMDQI!-hxAl?3G}%N?c$gwMDmJtVnkl>H^hITb+}df9fvvo@+T zHBo1MoX*Cmjxs?6n}0z1@f|W<7LLij2fZ^L81qkIY9;E2{HRTe1g z`7r`T>=p5%h_CQ9g(w#B60eTII7-+*#yp3@QRWD9B)mZ5P&pPk(i~BaX^w{+>l`Z_ U%N)13D7nM2#PNXRKF90-03WGxOaK4? diff --git a/buildSrc/build/kotlin/buildSrcjar-classes.txt b/buildSrc/build/kotlin/buildSrcjar-classes.txt index 1c876af..a5fea0c 100644 --- a/buildSrc/build/kotlin/buildSrcjar-classes.txt +++ b/buildSrc/build/kotlin/buildSrcjar-classes.txt @@ -1 +1 @@ -C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Dependencies$CoreDep.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Dependencies$SplashDep.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Dependencies$TestDep.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Dependencies.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Modules$Splash.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Modules.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Versions.class \ No newline at end of file +C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Dependencies$CoreDep.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Dependencies$Coroutines.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Dependencies$HiltDep.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Dependencies$Retrofit.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Dependencies$SplashDep.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Dependencies$TestDep.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Dependencies.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Modules$AndroidCommon.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Modules$App.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Modules$Common.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Modules$Home.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Modules.class;C:\Users\yoges\AndroidStudioProjects\RickAndMorty\buildSrc\build\classes\kotlin\main\Versions.class \ No newline at end of file diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab index cc22f0e8d31f85a20e3e146b3ace0216d998e387..e28b3cada8de2ef2db12a8e965d23d77cb52643e 100644 GIT binary patch delta 70 zcmZorXi#9C?X#Ota3ZU|q%i{n10xgzDKKCLk~R~4%|+(E`u|@8$l3ko|NjsmEd%6l LTo}(kv49f*`qvWn delta 70 zcmZorXi#9C?X#PYc_OR6Bqsv{10xgzDKKCLl0p-G%|-J6{Qs{3|9=ROe)s$T N|BVad`6m`|0s!$$6LA0l diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at index 6830f6c33408b71707a1590accf42bb43e32356d..d6beffcc46fc236ecab7a82c8e467e68368c1bbe 100644 GIT binary patch literal 5978 zcmeHLu};G<6wJ^9pV1*JWdaGrQqqJ~^2vGc?sD%PSS|zzSj~fwGE{3*R_g)dm~}8P zIdY$c^&E5*Q2J}PD0UYUckV0MEbMlo_| z9MA1h+0$kqE{&ns>OJrLUopElTG+GkgM}X$N&T8}{s=4Yx`uSTs+~3x8BdHGO`@ot zgqL!jav{H_O!-?|Gg@q_8@=qBKg4vHaa85G#0?Jwqc>QXIpX_J_qu0@RT!~aTI9^U zkEQ~X^(N)*9CHmlWw0-Kkq9`-_gBQHJ2j#Gl;TH%$6BT8<9L7t-Mgm M*D3ko4cMl90#>S;6951J delta 7 OcmcbmcaC$zITip8>jPo{ diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab index af8d878c68d17d2274710f75bf817af883340b4d..4ef948429fa154731f2c853fc02909c3644c1ab5 100644 GIT binary patch literal 4096 zcmeIuu?fOJ7>41CAVkDOAt(d_f~6DKIe>jiH%O5Q1h>!u0=AY;;22I3D=+V#9M<-J zKU|)>TuAX=507N$oSU(}Gaq(uII%oqZ&G_OH7g3s&Ng;;>vzLl*#1Pq|0jI8!6mM7 ziwoRifhA7yh~O*C@f^+<^W%MkG4JoV!Y5|!5I)Fm1c4$0G9Uvo WAOkWW12P~3G9UvoAOkWGXy5^s2qItr diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream index 9c38f84489df2a88a76cc6b45fcc9d5ce1102c7a..c5b2b9ea4c185232a659b8135d60be036031344d 100644 GIT binary patch literal 4096 zcmeIuK@P$o5Cu?onrK{Ey+!ZP)I~RL)VMb?#z`nc7i?2J{!UZW+rcSqo6EK zH%Id147mrB?&gQOl|U&d!z*b_;l6lz@%FB-6fI9;21~mA?e%z5mgv}iOXN3=GeOw2 z()XW%a@wIXuuZosuib0+n4@H_rmLakut)`#z>eF0fvjr9eAOHafKmY;|fB*y_ L009U<;I9SVjO1Y< delta 15 WcmZorXi%7tw^@+!J>O&n#>D_D)&*Dq diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len index 7ab8050e8728f9a4cd5b87f39b1540ff1f736df2..12932448a736d0a10f76051b251ac0961162beb7 100644 GIT binary patch literal 8 McmZQz00Ble000mG2mk;8 literal 8 LcmZQz0E0XL0CoUx diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len index 817b326d9eb94f6a38f5e047201a69ab944ef476..cf8a30a1c969e61b953bddf5da4778377335bdd6 100644 GIT binary patch literal 8 LcmZQz0D~U@0RRB` literal 8 LcmZQz0D~O>0Kfpb diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at index f5ff014ccde07c8bc586132a0e3793c13b166ca4..6d24288ca198fd76e6bb8e927c04ff3695bd10ea 100644 GIT binary patch delta 32 ScmWG-W||N>(LodkVgmrF_6f%T delta 5 McmZo>3Y`!N00j^MzyJUM diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i index 1137bd63e65163332e37ad7e1b678e397043fb8b..e7aec186d48cf062b5d7f44fb0c6fd883705e245 100644 GIT binary patch delta 128 zcmZo@U}|V!VqxHCVBRPg!p?Dnfq~&h@{Ru!1!r*V0J0rz88SBtMhI<=kg5>kcmNb> zIAzteQLuxR;{}j&Sje-lg&j(6Yvl6_^?i?2J{!UZW+rcSqo6EK zH%Id147mrB?&gQOl|U&d!z*b_;l6lz@%FB-6fI9;21~mA?e%z5mgv}iOXN3=GeOw2 z()XW%a@wIXuuZosuib0+n4@H_rmLakut)`#z>eF0fvjr9eAOHafKmY;|fB*y_ L009U<;I9SVjO1Y< delta 15 WcmZorXi%7tw^@+!J>O&n#>D_D)&*Dq diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len index 7ab8050e8728f9a4cd5b87f39b1540ff1f736df2..12932448a736d0a10f76051b251ac0961162beb7 100644 GIT binary patch literal 8 McmZQz00Ble000mG2mk;8 literal 8 LcmZQz0E0XL0CoUx diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len index 817b326d9eb94f6a38f5e047201a69ab944ef476..cf8a30a1c969e61b953bddf5da4778377335bdd6 100644 GIT binary patch literal 8 LcmZQz0D~U@0RRB` literal 8 LcmZQz0D~O>0Kfpb diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at index 4fa9fa8cfa3dc7f78d3d38b25114962980676fdd..05ed4c3e2c3385a92c5f9635e0cd5561040f6c68 100644 GIT binary patch delta 122 zcmX@ia!O)@Gt*>##vPMw8TBTAWDJ@t#iR+s6Q61!b78`88lt5Os11bmCLd?if*P|0 OO2gz}@-=Y1K;r=|@Fhk7 delta 7 OcmX>lahPR;GZO#|lmeds diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i index 1137bd63e65163332e37ad7e1b678e397043fb8b..e7aec186d48cf062b5d7f44fb0c6fd883705e245 100644 GIT binary patch delta 128 zcmZo@U}|V!VqxHCVBRPg!p?Dnfq~&h@{Ru!1!r*V0J0rz88SBtMhI<=kg5>kcmNb> zIAzteQLuxR;{}j&Sje-ljjn{OkY!d>}pR=l}mLK)UA##63XfC>RZa(GVC7fzc2c f4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@RAR+_+izOk5 literal 0 HcmV?d00001 diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream new file mode 100644 index 0000000000000000000000000000000000000000..3a9890d13c5f7d7e6be50ee17d0fd426862e7c48 GIT binary patch literal 4096 zcmeIuyA6Oa5QAY#2H>#(n?OMgh#r9vCq)U$h5ZTT4M1m?f8pY*2Hfxm{4UV04-q*u zCeF9p^vbC+c@&p&s7;)ZVmKwWrsmu5B=Jytu|U6zaz#`LUJH%_6rcbFC_n)UP=Epy Mpa2CZK!HC5UI3XiWdHyG literal 0 HcmV?d00001 diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len new file mode 100644 index 0000000000000000000000000000000000000000..905e67187cdba79973cb4d29eadd1d60711543a1 GIT binary patch literal 8 LcmZQz0E1ot0F?la literal 0 HcmV?d00001 diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len new file mode 100644 index 0000000000000000000000000000000000000000..817b326d9eb94f6a38f5e047201a69ab944ef476 GIT binary patch literal 8 LcmZQz0D~O>0Kfpb literal 0 HcmV?d00001 diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at new file mode 100644 index 0000000000000000000000000000000000000000..843d09621ec28f261f1de6bde8bcdbf728ac9d63 GIT binary patch literal 2450 zcmcIlO>fgc5FH>10YVE@9Ff9DFGVp)leWS)gn$TyK!AETiJOF`aj+d!ej`7C3*w0Q z8N8YGuGed)qDVAyQrk1{&6|0<`-p~NFb?DPyKof6dSR{MB$>rV&LHQ%J8UrBi-%hXPvA7!MQC-@C0Wzc&Spem60vp|4VJ!69X48Dn2K%(9l#RW8H@Exh@1R)cE zMfjd0z;h@)Hx+aaSf=JNa=XC2D!2 zl^zX7V5bYX8X#W^PC`@Gy1j;)M`%ySN(015MjWDkH7}l4_qTDuHJU=)992HCN6&os z*YtLbIwtt=AbgYFajNr)B@O5RNKF&P-ax$!-##b2cB>8CDgd*WSPKecf(QRVU_n4z zu3*y;71~4}Kn9O6-NSRz6_;8^oXvJ)t4(t9?{#3)C0tFJB>ORp}s!lXHN9|186_UID= zQu>HHwKXJoc8s?v+{fv>ITr6bl@#Sg!#myqu0HrSDs!wQ)c+3!<;%>J@=Y4W7OX@0 z3i>kh-O6tv*u29314!set9OysLStl|&`X_8&(I`saMhus!#$)S%mG)&jz@a}&A>~s zOCnaX`m^KgNxWIx(8WYwYP6yB(0G4k+w8HbA5G9gQa+#T1f@d&#HeA0u`IY}4d;Zs zfqI-1vYb?xBz@{_mJX^Ci%QT-Sb5n!Y$}q>iGxC~OAqH!?O%g+p literal 4096 zcmbR3vzw2Vfq{V?h~Yp0!rB3(8i4pe5P(ErYC!54p%^3%0w6gdFbg6FWfDbM{QLi( z6R7e7kQM{dhk&#;kWK^A4nTSekPZjZd_X!LNI(4xaSxC=3PwXi?2J{!UZW+rcSqo6EK zH%Id147mrB?&gQOl|U&d!z*b_;l6lz@%FB-6fI9;21~mA?e%z5mgv}iOXN3=GeOw2 z()XW%a@wIXuuZosuib0+n4@H_rmLakut)`#z>eF0fvjr9eAOHafKmY;|fB*y_ L009U<;I9SVQDb1K delta 15 WcmZorXi%7tw^@+!J>O&n#>D_D)&*Dq diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len index 7ab8050e8728f9a4cd5b87f39b1540ff1f736df2..12932448a736d0a10f76051b251ac0961162beb7 100644 GIT binary patch literal 8 McmZQz00Ble000mG2mk;8 literal 8 LcmZQz0E0XL0CoUx diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len index 817b326d9eb94f6a38f5e047201a69ab944ef476..cf8a30a1c969e61b953bddf5da4778377335bdd6 100644 GIT binary patch literal 8 LcmZQz0D~U@0RRB` literal 8 LcmZQz0D~O>0Kfpb diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at index 4fa9fa8cfa3dc7f78d3d38b25114962980676fdd..05ed4c3e2c3385a92c5f9635e0cd5561040f6c68 100644 GIT binary patch delta 122 zcmX@ia!O)@Gt*>##vPMw8TBTAWDJ@t#iR+s6Q61!b78`88lt5Os11bmCLd?if*P|0 OO2gz}@-=Y1K;r=|@Fhk7 delta 7 OcmX>lahPR;GZO#|lmeds diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i index f23cb4a71d5dcbe389011cc8963b3c4b9f7e290a..2e227f8e182a09dd5cbb85f1b3d36d0e172e85aa 100644 GIT binary patch delta 141 zcmZo@U}|V!VqxHCVBRQrTy&xW@8%n#Ke#wfFfcI4H0*2ND3~D3@d3zradTSdW(SiF z7LEfzURke}{zkzItQ;?ZoVjlEQYH#s;J5)~pX1dr-6(j1W3z{c1`Edyph$O(Nz_Kc p3YN_u0)B9FTmXu=2&>C36y)0cAar1 SMgefyEi;RFK2-``&TPUKEKlC?oIOX`@!ZR2m#q8FL-Z5n9Z=+pa|~3- z`w^&;ZL&$8IPa3<1JEPuTVO!?zlLOi`83=YdZeXX}ZY1BSSFVs`Hu_wM5E?a|J^tG+_J00B3%2}sEN52WO<0R_4KfG^ps lKuOvesK}A~gdzhnAOkWW12P~3G9UvoAOkWW12XVnUxPbtj-@*VS1it;m4obz*Y^Ye;% zV8R~xxvAVRj$=WAD2gFLsU=1EX_+PBD5B2!Mfs&AnR%(jqHvvgDUt}|`C!5j+cq}7 G<^uqH+dWYL delta 15 WcmZorXi%6?yIGO(KHp>m#w7qOy#;sx diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len index 456103f2d525f734449d40f871cc48ae50026430..d897d44a324c2617f7a9e7cf5a235fd564857422 100644 GIT binary patch literal 8 McmZQz00Bl(0018V7XSbN literal 8 LcmZQz0E1cp0EGa4 diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len index fa606b628b9821e4e1a5e524f5973b5db3fb44ba..9911af5051faa67d9b81264a155131096082b4f3 100644 GIT binary patch literal 8 McmZQz00Bk@000UA0ssI2 literal 8 LcmZQz0D}Vn0LTEr diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at index c05941406e212bb2c253fc080da1452aec22ca84..a8ccbb8e5617e5197f286bdec6f6ac6a77aaf8c1 100644 GIT binary patch literal 17497 zcmeHO&2Jk;6rcEGyk6Uzb@Szh9!gap?WGkblnRN`7NU}hDyb^OrP{_z>fm^--A&XJ z2aq@-{s1JTl!FB)E}W655JKt+B&3Q1R}c~$Ir3&^=k13Ft=)JVr);Hw=gsWS&YSms z@6CJjE|4|bYTNGV4SUOR+o#`f+|xI0*Xww`-SgKh@7@iof7|Nr*_*!OTHE#-VgJt5 z^+Kzl7fhlTw1W11p+#OUT%38mq7@Ek!7L1D5k{4WzJ8m%%;|ZTpj})!cbjN;_d4D7 zrn~h#dl6|dI{eMRp9X*Y-x+eA|Nk!k?~BpNN;uhSp;(GcScb8b80%NYyoG3??&!bt$zQCv)i|P7+v4C{ma;%UpcqF zW9?fPx>j%d!lv(bdfS(Xz6H$pU8~dcNdv}T37Zwzar-U*KG8W{{ML3Y-*!7zm(+lI zLpG3Ij~Sl{`9Q_4nu1-+l3m6DH6**vl(dSeZ7iDsd$14K1AR5#R~Jmez6S3zOl?4C z;S0OeEx`C{UJBURI06 zQW*hkKq(BZq#|W?v)={y&p{KmCzLMoM49CiB-?_nGs)!_|u39O%ISib=4 zTgo=VCUN_<|(*QOQ zARh2{P6okDIo(+?3nEvY`D<|OuzWZ%z=X`m-i(q`P;3N4d7rOiCCVF$D!5t#LrEj- z5r~_5rdaEA`I#a&nUgzbOufncMVuSEDpaqaNTD#PjrusKKA<%a-g@%b69^wFQSBZ` z~S;9X>l<+vUp1Mj!#PB6lV-bS8E< zfQ{wp55v0=NCWKMF2n;!Y0cTS$?*jJuQ)>{W0_iLnc@sW<*ILSj@{YwJ6#VZW)?~? zF(9ec3svLMQGtemD`Q)Y>#5#@)}6NHTd)`wPGY^HtzJn@JmBm?KuKT=e?YXGyfbFR z=jA(NROH8B!ZrR|1)_6VfG7a2BKQW>Lk2wH4GPy7s0#^)d67BHOTg{cv*a+Bm}wxD zz-W+3#7d6Nf6gIRgpN^5bBKi~|9{5wrC&Cs5Ie%5Xq%hR3Hua92IPagm#Qe;$SC%70Y=XtSeK(syjoW7Bg=Pb@=GQW1n&eJ0Eo~ zG!)!b%H0bs;$N^3ub%2(=x|HVfv|ed_DJq)WO{{j>Qk$^uhAYU;hJ&|I}X0aHylhR z;}4yT`$Hk1phpCkM4aDzUq-bFBcv0i@4Wwmkp3N&^oRAKq4XQlKfDFSsXEy( z%(C#QuuT)~pqNwi%M{5trJ2#PODq`*?FkC^KG)+{P7D>F5`~|eSjT{hn%6NZf^goS zr-Fqk24Uz{a{LCehUZ^g*0*9=@2Vt2l~hh}G)*#O#(5lAUyxDwH$A5Zg=G7-3xy)Y zkmR@DU-SJ)J@OY^BCe}epeVG4FAmN=D9bU~meqbwi0Mh3Mn-?lzcOn+Cp3-)MWPw- zWQA`~k{d6-#ZUf@RdW#Xhl;cHbZtwM4d{=d2DG&Vssz=}xKnzfKe(BS{XqpZwu93s zwvEK|L3ys|A5ark+Z^?bsHm$=R?tSzbIJppIH)BqeC36y)0cAar1 SMg559x3E?D@-udpnk(9X%uv~($4EZhwq#y>fl z#_{YNelDO>Re+I@`^uCl*PD;6ouUpDClq{$aqPNQPs0($P~i8MzDkwXjQBBS8EE|v z+*_1;Q*n!1xp|#}CHxS!Oym8{+Fph6DM#)Mj)@hjX#Br={QlYRpU^)U^Ixsk%4~SL NDY8{}SRCi}#ty<&N_GGM delta 7 OcmX@cbB<|)A0q$^bONFP diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab index 888a92d..e90afe8 100644 --- a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab +++ b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab @@ -1,2 +1,2 @@ -6 +20 0 \ No newline at end of file diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab index 3fa8dcc20b51eb5d8f7c247303ab50f04f954069..9e47d468eafb71179c7ed79bb2680f6cbd66dcdf 100644 GIT binary patch delta 70 zcmZorXi#9C?X#Ota3ZU|qzeNB10xgzDKKCLlD-pt%|(*_|NpN62>|<769)hQ delta 70 zcmZorXi#9C?X#PYc_OR6Bo6}v10xgzDKKCLlA;rR%|*8T|NmbD$k_v=LxA)KAiZ&6 JJpaT3P5}3H6NLZ( diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at index 87c4282cf3f6e1c735773c97cc673d7d096b1ec7..6560d1765e60f47e925356d4a6c56a530a28e87b 100644 GIT binary patch delta 90 wcmW;6*$n^?5I{i^ao<|AeQ86NBpMRo(Gyo!01M&a> diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len index fa902fa8b4ec3b0b75d9e4917b34547e68e2913d..c2e8349acf9ae796e3b2eacbd547b835fe2b32f4 100644 GIT binary patch literal 8 LcmZQz00R*K02}}n literal 8 LcmZQz00TAv01f~L diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len index 9e27f732fe29db9f82162c1114700ef23f6ac174..8fe89d82d540f0f9c8b866f249f77e7623cde7a1 100644 GIT binary patch literal 8 McmZQz00Bk?001fgA^-pY literal 8 LcmZQz0D}zx0Js3L diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at index 9e4e5f52dd29f311d6ec9de33cc5885d2a24b0b8..2b7c1d48b2602df66d62933f781917b301557c42 100644 GIT binary patch delta 33 mcmdnOG=+VG3FE}gdXu>sH77m{22-2$CT@Em#8yOztcv0X(2?<0ha$Ix84Y%yqewcnB?hZ!) delta 19 acmZo@U}|V!Vq##O$Yi#0i%_9mH}&tT4Zjd#u$dCNK*T;nk} zIl*o2a*ta);s#H+&L&rQ#wA{Gfj6x2p0j-5s_#FsX@2GuU)l0MZ#*}Da@pJ^n^SXz pRqqY($~?$kv$d#5AQFfKB7sOC5{LvMfk+?{hy)^mNZ{WR_yT%di4Fh& literal 4096 zcmeIuAq)Xw7{>76tCiYs&A diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len index 58526d763874311c557c10512bbc415d67a34055..b3a73b5425e229246c5637a392b00c47b3760bf1 100644 GIT binary patch literal 8 McmZQz00Bl#001)pD*ylh literal 8 LcmZQz0E1Tm0P+Cq diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len index be9fd94b80b8ad8289e6359c6d8cf4719c629999..b797c4d2ee86fd517925c6dfd186e4c359366499 100644 GIT binary patch literal 8 McmZQz00G7h005EziU0rr literal 8 McmZQz00G7T003G5QUCw| diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at index 8ba3cd7f63c218baae0aad768941bfb17dde1ed3..a8559f0e3fd31fe034ecb2ce52f259f3f0ba7938 100644 GIT binary patch literal 1993 zcmb_dO-~d-5FOlNXqa)>(U^GPF#o`tKY?&DQAoUSn#e>=3~OeWaPoh6^`-|eendH7 zB7!LRMWP}Q{OJ}k?napmq@|k43 zl_yuTynVaf$!0qfY5Ufd^zQZa&RjOtY31q7Og#LE1J%)8)}R5EGreLQ(w^$kE3(Vp zko%gY;bwsLN^;Q?8$HpmVVNR^iX&q91=E478!;vj#ssofn)_g*k4B%2J{uKTc2PtiKg_sg!~+SW zpdB;bqvKZ_)FsW~h1QYKu`#IWtgsK^2{LCE5z7B0XUVwo1_}zLE@6+6MMsWFBDIVb zmcL|Pn^-E6g4puNI$wj<2AS-aU$>qA4*R zsUC~0&>?{X-tXSKImE@Nvg95eQR<1hw^3%53>$dosyJ>|b^JYyjLt~ab8<*aAGDAE VxY!vn#Q`l+myRxImh*BAcnmew#1{Yn delta 7 OcmX@f|BY!w86yAEWH`G9r?FGmGXNY(z_(uslvn-^IAFy+Vq3e?`nR-Pz0gChdSeztLP&t`{$4pxo^ gAaA>wf(6iu7c3kJKwd@-L*Pci3Cx=V>NYR}0Jvr+fdBvi delta 65 zcmV-H0KWf#fC7Mk0t5gW00Xme3=9Ob5CljKu^=!4vxpNo45Q#H470#1Xbq7dc(b56 X_%)Fru(L>TfCaPQABYIEP=2rhgu51t diff --git a/buildSrc/build/kotlin/compileKotlin/cacheable/last-build.bin b/buildSrc/build/kotlin/compileKotlin/cacheable/last-build.bin index 68c32312999e52d079ad991f18ae33ab2b05174d..10a3ed97ab1913bde53a0e6070d183b215fb46f1 100644 GIT binary patch literal 18 YcmZ4UmVvdLhk=2y^VR8&1q?s{06SO(i2wiq literal 18 YcmZ4UmVvdLhk=2y^NGhXEe0R}05-V<$N&HU diff --git a/buildSrc/build/kotlin/compileKotlin/local-state/build-history.bin b/buildSrc/build/kotlin/compileKotlin/local-state/build-history.bin index f5e4979259c0f74e23edbdb9ddf3035b035b607a..a80709bbc32d72853d402bc7cb136442ce09c6ac 100644 GIT binary patch literal 4171 zcmds4&2G~`5Z<==qjl3(rA3G^I-Hv-|dks85BciS)N9#N4Z|y^ojX zv|(N}_We;mJQB?vHJprOX#N5JdGpv#9k$XBbd+y5zI=cvP0{SRqv*Eug`@vSZz#Qi zt7FxUv{|$s%OG@>7mBs(`<HI})29d8&Yci2_qF?^d9 zXbJMWceElQ8scoe#x1PeRGCGipKc-mg~A-P$Mpj&x5Q_FCH-l`-3wDNER@k+==lC@ zOM}msFctaA)|n>{-a$sk2063-aX*rQ+aDG1>8e0NXDzVPKHEH>s^8}l zI7x!B?~Y`^B!M2=L8Vp%iYo?4INrVn3|JMdw6XCfaDwg{L9_xH1?tevOSu}+D#TiQ z7?tYG($-1`J3N+1)DfHiFH*LOkf%hr;&zCTY!D@7t)loL4-Hi~M$!&yetw_)d=LDr z*)|pvPtz<=lgRb-G|5?Ym1w1rEiI=GATbl@99bnB73!Tjm!aOZOi!GYPC*%&-k2^} zR>`h}`o^0;Jb3M$q~5XP>^0Dk$fUMuA(#YP>3^xhHM4pgdMp65jfgrkBA7nWrl4Xu zowBuo1YVy%1PNRe%gHcI&viLH;jH1bVWF21qa#BqNTPZHRQ|mcv{+$U18yXl|5t^MTqd? Rs`A7}cA?B)wgq$5{RMn2UhMz? delta 271 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 literal 6905 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 diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 9c3cdce..a2227fa 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -1,18 +1,37 @@ object Dependencies { object CoreDep { - val coreKtx = "androidx.core:core-ktx:${Versions.coreKtxVersion}" - val appCompat = "androidx.appcompat:appcompat:${Versions.appCompatVersion}" - val material = "com.google.android.material:material:${Versions.materialVersion}" - val constraint = "androidx.constraintlayout:constraintlayout:${Versions.constraintVersion}" + const val coreKtx = "androidx.core:core-ktx:${Versions.coreKtxVersion}" + const val appCompat = "androidx.appcompat:appcompat:${Versions.appCompatVersion}" + const val material = "com.google.android.material:material:${Versions.materialVersion}" + const val constraint = "androidx.constraintlayout:constraintlayout:${Versions.constraintVersion}" } object SplashDep{ - val splash = "androidx.core:core-splashscreen:${Versions.splashVersion}" + const val splash = "androidx.core:core-splashscreen:${Versions.splashVersion}" + } + + object HiltDep{ + const val hiltAndroid = "com.google.dagger:hilt-android:${Versions.hilt}" + const val hiltCore = "com.google.dagger:hilt-core:${Versions.hilt}" + const val hiltCompiler = "com.google.dagger:hilt-compiler:${Versions.hilt}" + const val hiltAndroidTest = "com.google.dagger:hilt-android-testing:${Versions.hilt}" + } + + object Retrofit{ + const val retrofit = "com.squareup.retrofit2:retrofit:${Versions.retrofit}" + const val retrofitGsonConverter = "com.squareup.retrofit2:converter-gson:${Versions.retrofit}" + const val retrofitOkHttp = "com.squareup.okhttp3:okhttp:${Versions.okHttp}" + } + + object Coroutines{ + const val coroutinesAndroid = "org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.coroutines}" + const val coroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.coroutines}" } object TestDep { - var junit = "junit:junit:${Versions.junitVersion}" - var testJunitExt = "androidx.test.ext:junit:${Versions.testJunitExtVersion}" - var espressoCore = "androidx.test.espresso:espresso-core:${Versions.espressoCoreVersion}" + const val junit = "junit:junit:${Versions.junitVersion}" + const val testJunitExt = "androidx.test.ext:junit:${Versions.testJunitExtVersion}" + const val espressoCore = "androidx.test.espresso:espresso-core:${Versions.espressoCoreVersion}" } + } \ No newline at end of file diff --git a/buildSrc/src/main/java/Modules.kt b/buildSrc/src/main/java/Modules.kt index 858699c..05a1ee1 100644 --- a/buildSrc/src/main/java/Modules.kt +++ b/buildSrc/src/main/java/Modules.kt @@ -1,5 +1,16 @@ object Modules { - object Splash{ - val presentation = ":splash:splash_presentation" + object App{ + val app = ":app" + } + object AndroidCommon{ + val common_utils = ":androidCommon:common_utils" + } + object Common{ + val common_utils = ":common:common_utils" + } + object Home{ + val home_data = ":home:home_data" + val home_domain = ":home:home_domain" + val home_presentation = ":home:home_presentation" } } \ No newline at end of file diff --git a/buildSrc/src/main/java/Versions.kt b/buildSrc/src/main/java/Versions.kt index f713c4a..170f014 100644 --- a/buildSrc/src/main/java/Versions.kt +++ b/buildSrc/src/main/java/Versions.kt @@ -1,13 +1,18 @@ object Versions { - val coreKtxVersion = "1.10.1" - val appCompatVersion = "1.6.1" - val materialVersion = "1.9.0" - val constraintVersion = "2.1.4" - val splashVersion = "1.0.0" - - val junitVersion = "4.13.2" - val testJunitExtVersion = "1.1.5" - val espressoCoreVersion = "3.5.1" + const val coreKtxVersion = "1.10.1" + const val appCompatVersion = "1.6.1" + const val materialVersion = "1.9.0" + const val constraintVersion = "2.1.4" + const val splashVersion = "1.0.0" + + const val hilt = "2.47" + const val coroutines = "1.7.3" + const val retrofit = "2.9.0" + const val okHttp = "3.6.0" + + const val junitVersion = "4.13.2" + const val testJunitExtVersion = "1.1.5" + const val espressoCoreVersion = "3.5.1" } \ No newline at end of file diff --git a/common/common_utils/.gitignore b/common/common_utils/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/common/common_utils/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/common/common_utils/build.gradle.kts b/common/common_utils/build.gradle.kts new file mode 100644 index 0000000..219cdbc --- /dev/null +++ b/common/common_utils/build.gradle.kts @@ -0,0 +1,13 @@ +plugins { + id("java-library") + id("org.jetbrains.kotlin.jvm") +} + +java { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 +} + +dependencies { + +} \ No newline at end of file diff --git a/common/common_utils/src/main/java/com/noble/common_utils/DateTimeHelper.kt b/common/common_utils/src/main/java/com/noble/common_utils/DateTimeHelper.kt new file mode 100644 index 0000000..29d418d --- /dev/null +++ b/common/common_utils/src/main/java/com/noble/common_utils/DateTimeHelper.kt @@ -0,0 +1,4 @@ +package com.noble.common_utils + +object DateTimeHelper { +} \ No newline at end of file diff --git a/common/common_utils/src/main/java/com/noble/common_utils/enums/ErrorType.kt b/common/common_utils/src/main/java/com/noble/common_utils/enums/ErrorType.kt new file mode 100644 index 0000000..0cdb0d4 --- /dev/null +++ b/common/common_utils/src/main/java/com/noble/common_utils/enums/ErrorType.kt @@ -0,0 +1,6 @@ +package com.noble.common_utils.enums + +enum class ErrorType { + NO_INTERNET, + CUSTOM +} \ No newline at end of file diff --git a/common/common_utils/src/main/java/com/noble/common_utils/state/State.kt b/common/common_utils/src/main/java/com/noble/common_utils/state/State.kt new file mode 100644 index 0000000..71785cc --- /dev/null +++ b/common/common_utils/src/main/java/com/noble/common_utils/state/State.kt @@ -0,0 +1,9 @@ +package com.noble.common_utils.state + +import com.noble.common_utils.enums.ErrorType + +sealed class State{ + class Loading():State() + class Success(val data: T?):State() + class Error(val message: String, val type: ErrorType, val data:T? = null):State() +} diff --git a/home/home_data/.gitignore b/home/home_data/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/home/home_data/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/home/home_data/build.gradle.kts b/home/home_data/build.gradle.kts new file mode 100644 index 0000000..63544b8 --- /dev/null +++ b/home/home_data/build.gradle.kts @@ -0,0 +1,19 @@ +plugins { + id("java-library") + id("org.jetbrains.kotlin.jvm") +} + +java { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 +} + +dependencies { + implementation(project(Modules.Home.home_domain)) + + implementation(Dependencies.Coroutines.coroutinesCore) + + implementation(Dependencies.Retrofit.retrofit) + implementation(Dependencies.Retrofit.retrofitOkHttp) + implementation(Dependencies.Retrofit.retrofitGsonConverter) +} \ No newline at end of file diff --git a/home/home_data/src/main/java/com/noble/home_data/dto/CharactersResponseDto.kt b/home/home_data/src/main/java/com/noble/home_data/dto/CharactersResponseDto.kt new file mode 100644 index 0000000..eef672d --- /dev/null +++ b/home/home_data/src/main/java/com/noble/home_data/dto/CharactersResponseDto.kt @@ -0,0 +1,6 @@ +package com.noble.home_data.dto + +data class CharactersResponseDto( + val info: Info?, + val results: List? +) \ No newline at end of file diff --git a/home/home_data/src/main/java/com/noble/home_data/dto/Info.kt b/home/home_data/src/main/java/com/noble/home_data/dto/Info.kt new file mode 100644 index 0000000..dd43686 --- /dev/null +++ b/home/home_data/src/main/java/com/noble/home_data/dto/Info.kt @@ -0,0 +1,8 @@ +package com.noble.home_data.dto + +data class Info( + val count: Int ?, + val next: String ?, + val pages: Int ?, + val prev: String? +) \ No newline at end of file diff --git a/home/home_data/src/main/java/com/noble/home_data/dto/Location.kt b/home/home_data/src/main/java/com/noble/home_data/dto/Location.kt new file mode 100644 index 0000000..253d4ff --- /dev/null +++ b/home/home_data/src/main/java/com/noble/home_data/dto/Location.kt @@ -0,0 +1,6 @@ +package com.noble.home_data.dto + +data class Location( + val name: String?, + val url: String? +) \ No newline at end of file diff --git a/home/home_data/src/main/java/com/noble/home_data/dto/Origin.kt b/home/home_data/src/main/java/com/noble/home_data/dto/Origin.kt new file mode 100644 index 0000000..d70e09e --- /dev/null +++ b/home/home_data/src/main/java/com/noble/home_data/dto/Origin.kt @@ -0,0 +1,6 @@ +package com.noble.home_data.dto + +data class Origin( + val name: String?, + val url: String? +) \ No newline at end of file diff --git a/home/home_data/src/main/java/com/noble/home_data/dto/Result.kt b/home/home_data/src/main/java/com/noble/home_data/dto/Result.kt new file mode 100644 index 0000000..e36bc33 --- /dev/null +++ b/home/home_data/src/main/java/com/noble/home_data/dto/Result.kt @@ -0,0 +1,16 @@ +package com.noble.home_data.dto + +data class Result( + val created: String?, + val episode: List?, + val gender: String?, + val id: Long?, + val image: String?, + val location: Location?, + val name: String?, + val origin: Origin?, + val species: String?, + val status: String?, + val type: String?, + val url: String? +) \ No newline at end of file diff --git a/home/home_data/src/main/java/com/noble/home_data/mapper/Mappers.kt b/home/home_data/src/main/java/com/noble/home_data/mapper/Mappers.kt new file mode 100644 index 0000000..aa7b091 --- /dev/null +++ b/home/home_data/src/main/java/com/noble/home_data/mapper/Mappers.kt @@ -0,0 +1,30 @@ +package com.noble.home_data.mapper + +import com.noble.home_data.dto.CharactersResponseDto +import com.noble.home_data.dto.Location +import com.noble.home_data.dto.Result +import com.noble.home_domain.models.Character +import com.noble.home_domain.models.CharacterLocation + +fun Result?.toDomainModel(): Character { + return Character( + created = this?.created ?: "", + gender = this?.gender ?: "", + id = this?.id ?: 0, + image = this?.image?: "", + characterLocation = this?.location.toDomainModel(), + name = this?.name?:"", + species = this?.species?:"", + status = this?.status?:"", + type = this?.type?:"", + url = this?.url?:"", + isBookMarked = false + ) +} + +fun Location?.toDomainModel(): CharacterLocation { + return CharacterLocation( + name = this?.name ?: "", + url = this?.url ?: "" + ) +} \ No newline at end of file diff --git a/home/home_data/src/main/java/com/noble/home_data/network/CharacterService.kt b/home/home_data/src/main/java/com/noble/home_data/network/CharacterService.kt new file mode 100644 index 0000000..d63b8f9 --- /dev/null +++ b/home/home_data/src/main/java/com/noble/home_data/network/CharacterService.kt @@ -0,0 +1,16 @@ +package com.noble.home_data.network + +import com.noble.home_data.dto.CharactersResponseDto +import com.noble.home_data.dto.Result +import kotlinx.coroutines.flow.Flow +import retrofit2.http.GET +import retrofit2.http.Path + +interface CharacterService { + + @GET("character") + suspend fun getCharacters(): CharactersResponseDto + + @GET("character/{id}") + suspend fun getCharacter(@Path("id") id: Long): Result +} \ No newline at end of file diff --git a/home/home_data/src/main/java/com/noble/home_data/repository/CharacterRepositoryImpl.kt b/home/home_data/src/main/java/com/noble/home_data/repository/CharacterRepositoryImpl.kt new file mode 100644 index 0000000..bbe8b16 --- /dev/null +++ b/home/home_data/src/main/java/com/noble/home_data/repository/CharacterRepositoryImpl.kt @@ -0,0 +1,22 @@ +package com.noble.home_data.repository + +import com.noble.home_data.mapper.toDomainModel +import com.noble.home_data.network.CharacterService +import com.noble.home_domain.models.Character +import com.noble.home_domain.repository.CharacterRepository +import kotlinx.coroutines.flow.Flow + +class CharacterRepositoryImpl( + private val characterService: CharacterService +) : CharacterRepository { + override suspend fun getCharacters(): List { + return characterService.getCharacters().results?.map { result -> + result.toDomainModel() + } ?: Character.getCharacterList() + + } + + override suspend fun getCharacter(id: Long): Character { + return characterService.getCharacter(id).toDomainModel() + } +} \ No newline at end of file diff --git a/home/home_domain/.gitignore b/home/home_domain/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/home/home_domain/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/home/home_domain/build.gradle.kts b/home/home_domain/build.gradle.kts new file mode 100644 index 0000000..ba613ef --- /dev/null +++ b/home/home_domain/build.gradle.kts @@ -0,0 +1,14 @@ +plugins { + id("java-library") + id("org.jetbrains.kotlin.jvm") +} + +java { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 +} + +dependencies { + + implementation(Dependencies.Coroutines.coroutinesCore) +} \ No newline at end of file diff --git a/home/home_domain/src/main/java/com/noble/home_domain/mappers/Mapper.kt b/home/home_domain/src/main/java/com/noble/home_domain/mappers/Mapper.kt new file mode 100644 index 0000000..b158c7a --- /dev/null +++ b/home/home_domain/src/main/java/com/noble/home_domain/mappers/Mapper.kt @@ -0,0 +1,2 @@ +package com.noble.home_domain.mappers + diff --git a/home/home_domain/src/main/java/com/noble/home_domain/models/Character.kt b/home/home_domain/src/main/java/com/noble/home_domain/models/Character.kt new file mode 100644 index 0000000..a50d84f --- /dev/null +++ b/home/home_domain/src/main/java/com/noble/home_domain/models/Character.kt @@ -0,0 +1,37 @@ +package com.noble.home_domain.models + +data class Character( + val created: String, + val gender: String, + val id: Long, + val image: String, + val characterLocation: CharacterLocation, + val name: String, + val species: String, + val status: String, + val type: String, + val url: String, + var isBookMarked: Boolean +){ + companion object{ + fun getCharacter() = Character( + created = "", + gender = "", + id = 0, + image = "", + characterLocation = CharacterLocation.getCharacterLocation(), + name = "", + species = "", + status = "", + type = "", + url = "", + isBookMarked = false + ) + + fun getCharacterList() = listOf() + } +} + + + + diff --git a/home/home_domain/src/main/java/com/noble/home_domain/models/CharacterLocation.kt b/home/home_domain/src/main/java/com/noble/home_domain/models/CharacterLocation.kt new file mode 100644 index 0000000..69b583e --- /dev/null +++ b/home/home_domain/src/main/java/com/noble/home_domain/models/CharacterLocation.kt @@ -0,0 +1,14 @@ +package com.noble.home_domain.models + +data class CharacterLocation( + val name: String, + val url: String +) { + + companion object { + fun getCharacterLocation() = CharacterLocation( + name = "", + url = "" + ) + } +} diff --git a/home/home_domain/src/main/java/com/noble/home_domain/repository/CharacterRepository.kt b/home/home_domain/src/main/java/com/noble/home_domain/repository/CharacterRepository.kt new file mode 100644 index 0000000..83dc7bd --- /dev/null +++ b/home/home_domain/src/main/java/com/noble/home_domain/repository/CharacterRepository.kt @@ -0,0 +1,8 @@ +package com.noble.home_domain.repository + +import com.noble.home_domain.models.Character + +interface CharacterRepository { + suspend fun getCharacters(): List + suspend fun getCharacter(id: Long): Character +} \ No newline at end of file diff --git a/home/home_domain/src/main/java/com/noble/home_domain/use_cases/GetCharacterListUseCase.kt b/home/home_domain/src/main/java/com/noble/home_domain/use_cases/GetCharacterListUseCase.kt new file mode 100644 index 0000000..c3bfb63 --- /dev/null +++ b/home/home_domain/src/main/java/com/noble/home_domain/use_cases/GetCharacterListUseCase.kt @@ -0,0 +1,8 @@ +package com.noble.home_domain.use_cases + +import com.noble.home_domain.models.Character +import kotlinx.coroutines.flow.Flow + +interface GetCharacterListUseCase { + suspend operator fun invoke(): Flow> +} \ No newline at end of file diff --git a/home/home_domain/src/main/java/com/noble/home_domain/use_cases/GetCharacterListUseCaseImpl.kt b/home/home_domain/src/main/java/com/noble/home_domain/use_cases/GetCharacterListUseCaseImpl.kt new file mode 100644 index 0000000..fd5c237 --- /dev/null +++ b/home/home_domain/src/main/java/com/noble/home_domain/use_cases/GetCharacterListUseCaseImpl.kt @@ -0,0 +1,14 @@ +package com.noble.home_domain.use_cases + +import com.noble.home_domain.models.Character +import com.noble.home_domain.repository.CharacterRepository +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.flow + +class GetCharacterListUseCaseImpl( + private val characterRepository: CharacterRepository +): GetCharacterListUseCase { + override suspend fun invoke(): Flow> = flow { + emit(characterRepository.getCharacters()) + } +} \ No newline at end of file diff --git a/home/home_presentation/.gitignore b/home/home_presentation/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/home/home_presentation/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/home/home_presentation/build.gradle.kts b/home/home_presentation/build.gradle.kts new file mode 100644 index 0000000..552ccdf --- /dev/null +++ b/home/home_presentation/build.gradle.kts @@ -0,0 +1,56 @@ +plugins { + id("com.android.library") + id("org.jetbrains.kotlin.android") + id("com.google.dagger.hilt.android") + id("kotlin-kapt") +} + +android { + namespace = "com.noble.home_presentation" + compileSdk = 33 + + defaultConfig { + minSdk = 23 + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } +} + +dependencies { + implementation(project(Modules.AndroidCommon.common_utils)) + + implementation(Dependencies.CoreDep.coreKtx) + implementation(Dependencies.CoreDep.appCompat) + implementation(Dependencies.CoreDep.material) + implementation(Dependencies.CoreDep.constraint) + + //Splash Screen API + implementation(Dependencies.SplashDep.splash) + + //Hilt + implementation(Dependencies.HiltDep.hiltAndroid) + kapt(Dependencies.HiltDep.hiltCompiler) + + //Test + testImplementation(Dependencies.TestDep.junit) + androidTestImplementation(Dependencies.TestDep.testJunitExt) + androidTestImplementation(Dependencies.TestDep.espressoCore) +} \ No newline at end of file diff --git a/home/home_presentation/consumer-rules.pro b/home/home_presentation/consumer-rules.pro new file mode 100644 index 0000000..e69de29 diff --git a/home/home_presentation/proguard-rules.pro b/home/home_presentation/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/home/home_presentation/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/home/home_presentation/src/androidTest/java/com/noble/home_presentation/ExampleInstrumentedTest.kt b/home/home_presentation/src/androidTest/java/com/noble/home_presentation/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..e56adb1 --- /dev/null +++ b/home/home_presentation/src/androidTest/java/com/noble/home_presentation/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.noble.home_presentation + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.noble.home_presentation.test", appContext.packageName) + } +} \ No newline at end of file diff --git a/home/home_presentation/src/main/AndroidManifest.xml b/home/home_presentation/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a5918e6 --- /dev/null +++ b/home/home_presentation/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/home/home_presentation/src/test/java/com/noble/home_presentation/ExampleUnitTest.kt b/home/home_presentation/src/test/java/com/noble/home_presentation/ExampleUnitTest.kt new file mode 100644 index 0000000..8d62d31 --- /dev/null +++ b/home/home_presentation/src/test/java/com/noble/home_presentation/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.noble.home_presentation + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 2a17318..0606a29 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -15,4 +15,10 @@ dependencyResolutionManagement { rootProject.name = "RickAndMorty" include(":app") + include(":androidCommon:common_utils") +include(":common:common_utils") + +include(":home:home_data") +include(":home:home_domain") +include(":home:home_presentation")