Как вынести useCase в отдельный метод?

Не могу показать реальный код (NDA). Но не могли бы вы мне помочь в измененном примере ?

Мне очень нужно:

  1. убрать "GetTextUseCase" из "combine"
  2. вызывать formatText без text, formatText(age)
  3. СУТЬ ПРОБЛЕМЫ !!! Получить текст из GetTextUseCase в private fun formatText()

Какие есть способы решения этой проблемы ?

Class ClientViewModel(
    private val getText: GetTextUseCase,     // invoke Flow()
    private val getUser: GetUserUseCase,     // invoke Flow()
    private val getAge: GetAgeUseCase,       // invoke Flow()
): ViewModel() {

    val state = combine(
        getText(),
        getUser(),
        getAge(),
    ) { text, user, age ->
           ...some code...
           ...some code...
           ...some code...
           
           NewClient(
               text = formatText(age, text),
               user = user,
               age = age,
           )
      }
      .stateIn(viewModelScope, SharingStarted.Eagerly, NewClient.DEFAULT)


    private fun formatText(
        age: Int,
        text: String,
    ): String {
        return if (age > 18) {
            "Adult"
        } else {
            "Under 18"
        }
    }
}

Ответы (0 шт):