Size: a a a

Android Developers

2021 March 03

СП

Сергей П. in Android Developers
Ak
Запускаю из активити номер 1 активити номер 2. В 2 активити получаю authCode из url. Сохраняю в переменную и передаю обратно в активити 1. Но в активити 1 отображает в логах, как null. Почему так может быть?
P.S в активити 2 все хорошо отображает
Ну зна'ит не так передаешь. Танные много как можно передавать и все способы глючные, запятая не там и не работает. Код есть?
источник

A

Ak in Android Developers
Сергей П.
Ну зна'ит не так передаешь. Танные много как можно передавать и все способы глючные, запятая не там и не работает. Код есть?
источник

A

Ak in Android Developers
Сергей П.
Ну зна'ит не так передаешь. Танные много как можно передавать и все способы глючные, запятая не там и не работает. Код есть?
И логи
источник

TY

Trubnikov Yaroslav in Android Developers
ты должен передавать в Intent, который находится в качестве параметра у метода setResult, а не в интент текщей активити
источник

СП

Сергей П. in Android Developers
Callactivityforresult да, лучше на примере смотреть
источник

A

Ak in Android Developers
Разобрался, спасибо! Видимо, с утра еще не проснулся)
источник

JF

Jorik Fat in Android Developers
Trubnikov Yaroslav
Пацаны, у меня тут вообще кора на ревью, я задам вам пару элементарных вопросов, а вы выскажите свою точку зрения, плз!

Вопрос 1.
Фича переключения языка, в рамках архитектуры есть только ViewModel и Repository. Есть объект, который переключает системный язык, который должен быть в рамках зависимости Interactor, но так как их нет, куда мы должны заинжектить этот объект:
Ответы:
Вариант А: Во ViewModel
Вариант Б: В Repository

Вопрос 2.
Есть фабрика, которая должна создавать обьект и возвращать его, но теперь появляется зависимость на конфигурацию, которая возвращает данные не просто асинхронно, а возвращает стрим в лице Flow<Data> и относительно этих данных зависит результат фабрки.
Как бы вы поступили в рамках этой задачи:
Ответы:
Вариант А: В зависимость фабрикик добавили конфигурацию и зарефакторили метод create из fun create(): Data -> fun create(): Flow<Data>
Вариант Б: Во ViewModel подписались на изменение конфигурации и когда значение конфигурации эмитится, то прокидывали его в метод create. Метод бы преобразился так: fun create(): Data -> fun create(config: Config): Data
1: язык приложения это вообще view-слой, его не должно быть в presentation
источник

S

Silent829 in Android Developers
Trubnikov Yaroslav
Немного проясню по первому вопросу:

У репы есть два метода: getCurrentLocale(): Locale и getSupportedLocales(): List<Locale>, которые с переключением не связаны

Сущность, которая переключает языки: LocalePicker#setLocale()

Вариант А:
ViewModel: localePicker.setLocale(locale)

Вариант Б:
ViewModel: repository.setLocale(locale)
Repository: localePicker.setLocale(locale)
Есть PreferencesRepository (репа которая слушает обновления SharedPreferences либо androidx.datastore.preferences), она отдает тебе Flow<Locale> во вьюмодели ты можешь преобразовать флоу в StateFlow<Locale> и перебайндить вьюшки при сборке флоу. А этот вопрос про стоит ли обращаться напрямую или нет… Дурацкие мягко сказать.
источник

СП

Сергей П. in Android Developers
Язык для показа -  view. Язык как переменная - хранится в репе и берется оттуда по необщодимости друрими слоями,  это настройка.
источник

S

Silent829 in Android Developers
Jorik Fat
1: язык приложения это вообще view-слой, его не должно быть в presentation
И что Вы хотите этим сказать? Хз согласен ли я. Во вьюшке переключать язык или как?
источник

S

Silent829 in Android Developers
Сергей П.
Язык для показа -  view. Язык как переменная - хранится в репе и берется оттуда по необщодимости друрими слоями,  это настройка.
солидарен с Сергеем тут
источник

S

Silent829 in Android Developers
Silent829
Есть PreferencesRepository (репа которая слушает обновления SharedPreferences либо androidx.datastore.preferences), она отдает тебе Flow<Locale> во вьюмодели ты можешь преобразовать флоу в StateFlow<Locale> и перебайндить вьюшки при сборке флоу. А этот вопрос про стоит ли обращаться напрямую или нет… Дурацкие мягко сказать.
*мое мнение, то есть я так делаю
источник

TY

Trubnikov Yaroslav in Android Developers
Сергей П.
Язык для показа -  view. Язык как переменная - хранится в репе и берется оттуда по необщодимости друрими слоями,  это настройка.
Именно так и есть, вопрос в том, кто ответственен за его переключение, repository ил viewmodel
источник

JF

Jorik Fat in Android Developers
Trubnikov Yaroslav
Немного проясню по первому вопросу:

У репы есть два метода: getCurrentLocale(): Locale и getSupportedLocales(): List<Locale>, которые с переключением не связаны

Сущность, которая переключает языки: LocalePicker#setLocale()

Вариант А:
ViewModel: localePicker.setLocale(locale)

Вариант Б:
ViewModel: repository.setLocale(locale)
Repository: localePicker.setLocale(locale)
Пардон, не дочитал. А local-picker от чего работает?
Выбор пользователя / системная конфигурация?
источник

S

Silent829 in Android Developers
Trubnikov Yaroslav
Именно так и есть, вопрос в том, кто ответственен за его переключение, repository ил viewmodel
ну запись делает репозиторий, вьюшка просто говорит вьюмодели (я нажал на “ru” или “en”), а вьюмодель говорит репозиторию на смени
источник

JF

Jorik Fat in Android Developers
Может Вы по оператору сим-карты/часовому поясу язык переключаете
источник

TY

Trubnikov Yaroslav in Android Developers
Jorik Fat
Пардон, не дочитал. А local-picker от чего работает?
Выбор пользователя / системная конфигурация?
Это обертка над системным internal функционалом
источник

JF

Jorik Fat in Android Developers
Trubnikov Yaroslav
Это обертка над системным internal функционалом
Ну тогда конечно ответственен repo, за переключение языка
источник

TY

Trubnikov Yaroslav in Android Developers
Silent829
ну запись делает репозиторий, вьюшка просто говорит вьюмодели (я нажал на “ru” или “en”), а вьюмодель говорит репозиторию на смени
Т.е. мы можем свободно переместить функционал из интеракторов в репозитории, я правильно вас понял?
источник

JF

Jorik Fat in Android Developers
Нет смысле гонять данные до vm и обратно
источник