From c81f70d538766286d335477701492481fc0fb4f9 Mon Sep 17 00:00:00 2001 From: Denis Sh Date: Mon, 10 Mar 2025 15:23:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=97=20=E2=84=962?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 2 +- .../otus/homework/coroutines/CatsPresenter.kt | 35 ---------- .../otus/homework/coroutines/CatsService.kt | 10 --- .../java/otus/homework/coroutines/CatsView.kt | 32 --------- .../otus/homework/coroutines/DiContainer.kt | 16 ----- .../otus/homework/coroutines/MainActivity.kt | 30 -------- .../data/network/CatsImageService.kt | 9 +++ .../coroutines/data/network/CatsService.kt | 10 +++ .../homework/coroutines/di/DiContainer.kt | 28 ++++++++ .../coroutines/model/CatImageModel.kt | 14 ++++ .../homework/coroutines/{ => model}/Fact.kt | 6 +- .../coroutines/presentation/CatsFactState.kt | 15 ++++ .../coroutines/presentation/CatsPresenter.kt | 68 +++++++++++++++++++ .../coroutines/presentation/CatsView.kt | 64 +++++++++++++++++ .../coroutines/presentation/CatsViewModel.kt | 61 +++++++++++++++++ .../coroutines/presentation/MainActivity.kt | 60 ++++++++++++++++ .../coroutines/{ => utils}/CrashMonitor.kt | 2 +- .../otus/homework/coroutines/utils/Result.kt | 8 +++ app/src/main/res/layout/activity_main.xml | 32 +++++++-- app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 1 + 22 files changed, 370 insertions(+), 135 deletions(-) delete mode 100644 app/src/main/java/otus/homework/coroutines/CatsPresenter.kt delete mode 100644 app/src/main/java/otus/homework/coroutines/CatsService.kt delete mode 100644 app/src/main/java/otus/homework/coroutines/CatsView.kt delete mode 100644 app/src/main/java/otus/homework/coroutines/DiContainer.kt delete mode 100644 app/src/main/java/otus/homework/coroutines/MainActivity.kt create mode 100644 app/src/main/java/otus/homework/coroutines/data/network/CatsImageService.kt create mode 100644 app/src/main/java/otus/homework/coroutines/data/network/CatsService.kt create mode 100644 app/src/main/java/otus/homework/coroutines/di/DiContainer.kt create mode 100644 app/src/main/java/otus/homework/coroutines/model/CatImageModel.kt rename app/src/main/java/otus/homework/coroutines/{ => model}/Fact.kt (63%) create mode 100644 app/src/main/java/otus/homework/coroutines/presentation/CatsFactState.kt create mode 100644 app/src/main/java/otus/homework/coroutines/presentation/CatsPresenter.kt create mode 100644 app/src/main/java/otus/homework/coroutines/presentation/CatsView.kt create mode 100644 app/src/main/java/otus/homework/coroutines/presentation/CatsViewModel.kt create mode 100644 app/src/main/java/otus/homework/coroutines/presentation/MainActivity.kt rename app/src/main/java/otus/homework/coroutines/{ => utils}/CrashMonitor.kt (75%) create mode 100644 app/src/main/java/otus/homework/coroutines/utils/Result.kt diff --git a/app/build.gradle b/app/build.gradle index a414e0e8..a48927d1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -41,4 +41,5 @@ dependencies { implementation 'com.google.android.material:material:1.11.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'com.squareup.picasso:picasso:2.71828' + implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7") } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fe34985b..fa531f7d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,7 +10,7 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Coroutines"> - diff --git a/app/src/main/java/otus/homework/coroutines/CatsPresenter.kt b/app/src/main/java/otus/homework/coroutines/CatsPresenter.kt deleted file mode 100644 index e4b05120..00000000 --- a/app/src/main/java/otus/homework/coroutines/CatsPresenter.kt +++ /dev/null @@ -1,35 +0,0 @@ -package otus.homework.coroutines - -import retrofit2.Call -import retrofit2.Callback -import retrofit2.Response - -class CatsPresenter( - private val catsService: CatsService -) { - - private var _catsView: ICatsView? = null - - fun onInitComplete() { - catsService.getCatFact().enqueue(object : Callback { - - override fun onResponse(call: Call, response: Response) { - if (response.isSuccessful && response.body() != null) { - _catsView?.populate(response.body()!!) - } - } - - override fun onFailure(call: Call, t: Throwable) { - CrashMonitor.trackWarning() - } - }) - } - - fun attachView(catsView: ICatsView) { - _catsView = catsView - } - - fun detachView() { - _catsView = null - } -} \ No newline at end of file diff --git a/app/src/main/java/otus/homework/coroutines/CatsService.kt b/app/src/main/java/otus/homework/coroutines/CatsService.kt deleted file mode 100644 index 479b2cfb..00000000 --- a/app/src/main/java/otus/homework/coroutines/CatsService.kt +++ /dev/null @@ -1,10 +0,0 @@ -package otus.homework.coroutines - -import retrofit2.Call -import retrofit2.http.GET - -interface CatsService { - - @GET("fact") - fun getCatFact() : Call -} \ No newline at end of file diff --git a/app/src/main/java/otus/homework/coroutines/CatsView.kt b/app/src/main/java/otus/homework/coroutines/CatsView.kt deleted file mode 100644 index be04b2a8..00000000 --- a/app/src/main/java/otus/homework/coroutines/CatsView.kt +++ /dev/null @@ -1,32 +0,0 @@ -package otus.homework.coroutines - -import android.content.Context -import android.util.AttributeSet -import android.widget.Button -import android.widget.TextView -import androidx.constraintlayout.widget.ConstraintLayout - -class CatsView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr), ICatsView { - - var presenter :CatsPresenter? = null - - override fun onFinishInflate() { - super.onFinishInflate() - findViewById