feature/TI-193: [Android] Реализоваь viewModel factory #2

Closed
evgeny.dubravin wants to merge 5 commits from feature/TI-193 into feature/mvvm
  • feature TI-193: [Android] Реализоваь viewModel factory
  • feature TI-194: DI
  • feature TI-195: Cicerone Navigation
- feature [TI-193](https://jira.touchin.ru/browse/TI-193): [Android] Реализоваь viewModel factory - feature [TI-194](https://jira.touchin.ru/browse/TI-194): DI - feature [TI-195](https://jira.touchin.ru/browse/TI-195): Cicerone Navigation
evgeny.dubravin added 3 commits 2024-03-29 18:47:40 +03:00
evgeny.dubravin force-pushed feature/TI-193 from f66312e707 to d71fda5853 2024-03-29 18:51:18 +03:00 Compare
bogdan.terehov reviewed 2024-04-12 05:16:42 +03:00
@ -5,2 +5,3 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
android:background="@color/biometric_error_color">
Member

такого ресурса почему то нет, хотя он поставляется из сторонних библиотек
Как следствие на моем 29 эмуле прила падает

java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.touchin.template.debug/ru.touchin.template.feature.SingleActivity}: android.view.InflateException: Binary XML file line #7 in ru.touchin.template.debug:layout/activity_main: Binary XML file line #7 in ru.touchin.template.debug:layout/activity_main: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
...
Caused by: android.content.res.Resources$NotFoundException: File res/color-v26/biometric_error_color.xml from drawable resource ID #0x7f060021

такого ресурса почему то нет, хотя он поставляется из сторонних библиотек Как следствие на моем 29 эмуле прила падает java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.touchin.template.debug/ru.touchin.template.feature.SingleActivity}: android.view.InflateException: Binary XML file line #7 in ru.touchin.template.debug:layout/activity_main: Binary XML file line #7 in ru.touchin.template.debug:layout/activity_main: Error inflating class androidx.constraintlayout.widget.ConstraintLayout ... Caused by: android.content.res.Resources$NotFoundException: File res/color-v26/biometric_error_color.xml from drawable resource ID #0x7f060021
bogdan.terehov reviewed 2024-04-12 05:26:53 +03:00
@ -0,0 +18,4 @@
protected fun getSharedComponent(): SharedComponent = getSharedModule()
override fun onBackPressed(): Boolean {
return (viewModel as BaseController).onBackClicked()
Member

Исходя их описания класса
T : ViewModel, а вью модел у тебя не обязательно имплеменишь BaseController

Выход -- делаешь BaseViewModel и в ней имплементишь BaseController

А тут тогда T : BaseViewModel

И тогда не нужно будет вызывать не безопасный as (as BaseController)

Исходя их описания класса T : ViewModel, а вью модел у тебя не обязательно имплеменишь BaseController Выход -- делаешь BaseViewModel и в ней имплементишь BaseController А тут тогда T : BaseViewModel И тогда не нужно будет вызывать не безопасный `as` (`as BaseController`)
bogdan.terehov reviewed 2024-04-12 05:27:58 +03:00
@ -0,0 +5,4 @@
import ru.touchin.template.di.SharedComponent
import ru.touchin.template.di.getSharedModule
abstract class BaseActivity<T : ViewModel> : AppCompatActivity() {
Member

А если у нас появилась BaseViewModel
То лучше и тут ее использовать

А если у нас появилась BaseViewModel То лучше и тут ее использовать
bogdan.terehov reviewed 2024-04-12 05:31:11 +03:00
@ -0,0 +11,4 @@
class FirstFragment : BaseFragment<FirstViewModel>() {
private var _binding: FragmentFirstBinding? = null
private val binding get() = _binding!!
Member

lazy

lazy
bogdan.terehov reviewed 2024-04-12 05:33:36 +03:00
bogdan.terehov reviewed 2024-04-12 05:34:53 +03:00
@ -0,0 +70,4 @@
override fun onDestroyView() {
super.onDestroyView()
_binding = null
Member

подход безусловно рабочий, но ему лет 8-10)

подход безусловно рабочий, но ему лет 8-10)
bogdan.terehov reviewed 2024-04-12 05:35:21 +03:00
@ -0,0 +6,4 @@
object Screens {
fun First(): FragmentScreen = FragmentScreen {
Member

почему с большой?

так было в доке, понял

почему с большой? так было в доке, понял
evgeny.dubravin added 2 commits 2024-04-12 13:02:14 +03:00
evgeny.dubravin closed this pull request 2024-04-15 21:37:57 +03:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: TouchInstinct/android-project-template#2
No description provided.