Size: a a a

Android Developers

2020 April 02

DM

Dem Mort in Android Developers
Кто нибудь на MacBook Air 2015 сидел в android studio?как оно?
источник

M

Maksym in Android Developers
Quantum Harmonizer
Это от кого такой эксепшен? Выглядит как попытка заставить десериализатор отдавать Deferred.
Есть интерфейс для запросов     @GET("/{api_version}/genre/movie/list")
   suspend fun getGenre(
       @Path("api_version") api_version: String,
       @Query("api_key", encoded = true) api_key: String,
       @Query("language") language: String): Deferred<GenreResponce>
источник

M

Maksym in Android Developers
@Harmonizr есть вызов val genreRequest = networkService.getGenre(TMDB_API_VER, TMDB_API_KEY, TMDB_LANGUAGE).await()
источник

d

double_b in Android Developers
народ, всем привет. При вызове adapter.notifyItemChanged(position, data) вызывается сначала
1 - onBindViewHolder(@NonNull MessagesViewHolder holder, int position) и только потом
2 - onBindViewHolder(@NonNull MessagesViewHolder holder, int position, @NonNull List<Object> payloads)
Все так и должно быть или я что-то делаю не так? Заранее спасибо
источник

Я

Ярослав in Android Developers
Quantum Harmonizer
Предупреждение.
Бота какого добавьте
источник

🐈M

🐈 гав-гав Maxvoitenk... in Android Developers
Александр Горшков
Всем привет. Подскажите, есть ли у кого-то опыт написания unit тестов с koin + работа со scope?

Например, я хочу протестировать ProfileViewModel, который принадлежит к scope из ProfileFragment. Я его декларирую так:

val profileModule = module {
   
scope(named<ProfileFragment>()) {
       
viewModel { ProfileViewModel(get(), get(), get(), get()) }
   }
}


Вопрос в том, как получить эту viewModel в тесте: надо, выходит, декларировать её с нуля, без scope и все зависимости, которые нужные ей, также, верно?

Если есть пример использования scope в тестах, то был бы благодарен
я где то читал что инжект viewModel не обязательно указывать скоуп фрагмента, она якобы и так привяжется там где вызовется
источник

AS

Andrew Smith in Android Developers
всем привет.

Кто мог бы подсказать как добавить сюда еще одну переменную для отмены вывода (-1)


выручайте)

заранее спасибо)
источник

I

Ivan in Android Developers
Вопрос про JsonObject (com.google.gson)

Возможно как-то это сокртить, кроме try/catch:

if (it["status"].isJsonPrimitive && it["status"].asJsonPrimitive.isNumber && it["status"].asNumber.toInt() == 200
)
источник

YY

Yerlan Yerbolat in Android Developers
Ivan
Вопрос про JsonObject (com.google.gson)

Возможно как-то это сокртить, кроме try/catch:

if (it["status"].isJsonPrimitive && it["status"].asJsonPrimitive.isNumber && it["status"].asNumber.toInt() == 200
)
kak string equals?
источник

ЕН

Евгений Низамиев... in Android Developers
double_b
народ, всем привет. При вызове adapter.notifyItemChanged(position, data) вызывается сначала
1 - onBindViewHolder(@NonNull MessagesViewHolder holder, int position) и только потом
2 - onBindViewHolder(@NonNull MessagesViewHolder holder, int position, @NonNull List<Object> payloads)
Все так и должно быть или я что-то делаю не так? Заранее спасибо
Всё так.
Можешь убрать вызов super-метода в методе с payloads
источник

d

double_b in Android Developers
Евгений Низамиев
Всё так.
Можешь убрать вызов super-метода в методе с payloads
о спасибо, ща попробую
источник

I

Ivan in Android Developers
Yerlan Yerbolat
kak string equals?
да, хитро, спасибо. я просто рассчитывал на методы из самого JsonObject. странно, что нужно такую длинную цепь в ифе иметь
источник

AD

Arsen Denisuk in Android Developers
Maksym
@Harmonizr есть вызов val genreRequest = networkService.getGenre(TMDB_API_VER, TMDB_API_KEY, TMDB_LANGUAGE).await()
мне кажется ретрофит не умеет Deffered десериализовывать, и ему нужен конвертер
источник

AS

Andrew Smith in Android Developers
Andrew Smith
всем привет.

Кто мог бы подсказать как добавить сюда еще одну переменную для отмены вывода (-1)


выручайте)

заранее спасибо)
Подскажет кто?)
источник

M

Maksym in Android Developers
Arsen Denisuk
мне кажется ретрофит не умеет Deffered десериализовывать, и ему нужен конвертер
Конвертер тоже есть вот как это выглядит в di koin     single {
       Retrofit.Builder().apply {
           client(get())
           baseUrl(TMDB_URL)
           addConverterFactory(get<GsonConverterFactory>())
           addCallAdapterFactory(get<CoroutineCallAdapterFactory>())
       }.build()
   }
источник

QH

Quantum Harmonizer in Android Developers
Ярослав
Бота какого добавьте
И что он сделает?
источник

VU

Vadim Uzbekov in Android Developers
Maksym
@Harmonizr есть вызов val genreRequest = networkService.getGenre(TMDB_API_VER, TMDB_API_KEY, TMDB_LANGUAGE).await()
Заюзай suspend
источник

M

Maksym in Android Developers
Vadim Uzbekov
Заюзай suspend
Есть тоже. Полный метод вызова из репозитория выглядит так     suspend fun getGenreRequest(): GenreResponce {
       val genreRequest = networkService.getGenre(TMDB_API_VER, TMDB_API_KEY, TMDB_LANGUAGE).await()
       appDatabase.getGenreDao().apply {
           deleteAllGenres()
           insertGenres(genreRequest.genres)
           prefs.setGenreDate(Date().time)
       }
       return genreRequest
   }
источник

AD

Arsen Denisuk in Android Developers
Maksym
Конвертер тоже есть вот как это выглядит в di koin     single {
       Retrofit.Builder().apply {
           client(get())
           baseUrl(TMDB_URL)
           addConverterFactory(get<GsonConverterFactory>())
           addCallAdapterFactory(get<CoroutineCallAdapterFactory>())
       }.build()
   }
а сама модель респонса имеет 0 args конструктор?
(дтошка)
источник

IS

Ivan Sablin in Android Developers
double_b
народ, всем привет. При вызове adapter.notifyItemChanged(position, data) вызывается сначала
1 - onBindViewHolder(@NonNull MessagesViewHolder holder, int position) и только потом
2 - onBindViewHolder(@NonNull MessagesViewHolder holder, int position, @NonNull List<Object> payloads)
Все так и должно быть или я что-то делаю не так? Заранее спасибо
Второй вроде вызывается только тогда, когда ты явно вызываешь например onItemChanged с каким-нибудь обьектом
источник