Mike
AndroidX это как бы старая AppCompat библиотека
такая старая, что появилась совсем недавно.
Nick
такая старая, что появилась совсем недавно.
Перефразирую AndroidX == Новые фичи + AppCompat
Kopusha
androidx == support. AppCompat было подмножеством support.
Dmytro
androidx == support. AppCompat было подмножеством support.
Это как минимум разные версии.. AppCompat закончит свое существование на 28..
Mike
где найти сравнение чичероне и androidx.navigation ? основные плюсы минусы хотябы
я бегло глянул описание navigation, и это полная херота
Алексей
благодарю
а что шлем китайский 😊
Kopusha
navigation это story boards у iOS-ников, которым сто лет в обед. В андроиде по сути прячет тразакции фрагментов. Выглядит няшно на простых примерах, но боюсь будут затыки, если хочешь стек там подшаманить. Надо пробовать.
Sasha
Господа и дамы, посоветуйте, плиз, как лучше всего сделать удаление объекта из room по праймари кею? В реактивном виде это работает довольно плохо, думаю обернуть в корутину, например
Kopusha
ну и плюс, он туповат на многих юзкейсах. Наример типа поддерживает BottomNavigation. На самом деле, там тупо пересоздаются фрагменты по каждому клику на таб. Т.е. все равно пришлось руками на основе вью пейджера делать.
Kopusha
Корутина хорошо, но если у тебя Completable не завелся, то может не во фреймворках проблема. Что значит "работает плохо"? Удаляет через раз?
Sasha
У меня возможен кейс, когда я получу с сервера delete объекта, которого у меня нет в room. Тогда код, который ищет его по id и удаляет с помощью метода @Delete, остаётся подписанным и удаляет этот объект, когда он появится (это уже не нужно, разумеется).
Sasha
По идее, как я понимаю, это можно решить с помощью метода @Query("delete ... from ... where id = ...")
Max
я бегло глянул описание navigation, и это полная херота
спасибо, у меня совсем простая навигация .. вот думаю зачем мне оверхед)
Alexey
Поцоны. Допутим есть задача определить просмотрел ли юзер пост в ресайклере или нет
Alexey
как это по правильному сделать?
Roy
Всем привет, такой вопрос: запускаю службу с активити (в отдельном процессе), она работает пока не отключу так же с активити, служба работает и отправляет к приёмнику данные постоянно (приёмник реализован в отдельном классе, он принимает данные и отправляет их в очередь через Handler) в активити реализован Handler.Callback который выводит данные в UI. Приёмник регается\анрегается в активити (onStart\onStop). Вопрос в том, что когда приёмник не зареган, то sendBroadcast всё равно работает в сервисе и отправляет данные, в итоге создаётся ситуация "липкого" интента и при зарегивании приёмника, все не дошедшие интенты шквалом идут на приёмник, итог - UI отображает всё что накопилось. Решение - хранить состояние регистрации приёмника и проверять в сервисе при sendBroadcast, в чём это лучше делать (самый простой SharedPreferences, по сложнее AIDL), либо есть другие оптимальные варианты?
Anton
как это по правильному сделать?
В .onBind зашёл - значит посмотрел (не совсем, но точности должно хватить в большинстве случаев)
Alexey
В .onBind зашёл - значит посмотрел (не совсем, но точности должно хватить в большинстве случаев)
тут бинд может вызываться у следующего поста, которого почти не видно..
Alexey
наверное нужно бинд + высоту видимости поста но это гемор
Виктор
Alexey
ScrollListener + LayoutManager.findFirstCompletelyVisibleItemPosition
а если пост длиннее экрана?
Виктор
а если пост длиннее экрана?
тут сложно сказать, надо тестить поведение
Aleksandr
ребят немного не по теме, но спрошу, кто нибудь сталкивался с проблемой push? Counting objects: 83, done. Delta compression using up to 4 threads. Compressing objects: 100% (48/48), done. gitaly-receive-pack: fatal: receive-pack failed MiB/s remote: fatal: Out of memory, malloc failed (tried to allocate 1194401221 bytes) error: remote unpack failed: unpack-objects abnormal exit error: failed to push some refs to всякие http.postbuffer и тд менял не помогает
Amir
кто нибудь пользовался STETHO для доступа в базу в последнее время? В хроме почему-то по нажатию enter команта не выполняется, а идет перенос строки. Настройки сбросил, все равно. Никак выполниться запросы в базу не могу теперь
neikist
Привет, никто не сталкивался что спиннеры со скроллом себя странно ведут? Если быстро пальцем вверх или вниз провести все нормально, но если задержать палец на одном месте - список откатывается к текущему выбранному элементу. Что просто spinner, что appcompatspinner - поведение одинаковое.
Aleksandr
А что за размер дикий?
gitignore не настроен был в итоге все дерьмо туда лилось
Mikalaj
gitignore не настроен был в итоге все дерьмо туда лилось
Я про количество байтов, которое аппа запрашивает на выделение
Alexey
а какую задачу решаешь?
пометить новость как просмотренную. Как в вк например когда скролишь, то все что проскролил считается просмотренным
Anton
решение с .onBind вполне достаточное и не несет в себе костылей дополнительных и возможных багов, как с рассчетом высоты поста и т.д. Если бы была задача включать плеер например, когда пост виденн пользователю - другой разговор. А вот сбор аналитики, пометки постов имхо вполне норм
Mike
bind же может происходить за экраном
Anton
вот я пытаюсь понять, критично для автора вопроса помечать именно 100% просмотренный пост или нет
Роман
Привет! Что надо знать в 19-м году, чтобы приняли на работу андроид миддлом? Спасибо.
Anton
Вот смотрю документацию https://material.io/develop/android/theming/color/ И там есть атрибуты такие как colorOnBackground. Но при попытки добавить такой атрибут в style получаю ошибку что такого атрибута нет. Кто-нибудь может пояснить даный вопрос ?
Anton
то же про colorOnPrimary
Anton
xml в студию
хм...ну style.xml <style name="AppTheme.Main" parent="Theme.MaterialComponents.NoActionBar"> <!— Customize your theme here. —> <item name="android:colorBackground">#FFFF0000</item> <item name="colorOnBackground">#FFFFFFFF</item> </style>
Роман
попробуй app:colorOnBackground
Anton
попробуй app:colorOnBackground
В доки же четко написано colorOnBackground
Роман
В исходнике андроида умеешь смотреть?
Роман
Какие атрибуты есть в теме
Anton
Какие атрибуты есть в теме
Блин ну их нет же ;) на это и ругается. Вопрос почему они в документации есть.
Роман
Очевидно там ошибка
Роман
https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/theme/res/values/themes_base.xml
Роман
здесь нету
Роман
https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/theme/res/values/themes_base_bridge.xml
Роман
здесь есть
Anton
здесь есть
и какие выводы из этого нужно сделать ? Я упорно не понимаю как использовать все это чтобы были атрибуты из документации
Роман
https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md
Роман
почитай, там наверняка найдёшь ответ
Роман
Попробуй Theme.MaterialComponents.NoActionBar.Bridge вместо Theme.MaterialComponents.NoActionBar
Роман
Покажи зависимости
Anton
Покажи зависимости
какие именно ?
Роман
все ))
Роман
весь раздел dependencies
Anton
весь раздел dependencies
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation "androidx.appcompat:appcompat:$versions.androidx_appcomapt" implementation "com.google.android.material:material:$versions.material" implementation "androidx.constraintlayout:constraintlayout:$versions.constraintlayout" implementation "androidx.lifecycle:lifecycle-extensions:$versions.arch_lifecycle" implementation "androidx.paging:paging-runtime:$versions.arch_paging" implementation "io.reactivex.rxjava2:rxjava:$versions.rxjava" implementation "io.reactivex.rxjava2:rxandroid:$versions.rxjava_android" implementation "com.google.android.exoplayer:exoplayer-core:$versions.exo_player" implementation "com.google.android.exoplayer:exoplayer-ui:$versions.exo_player" implementation "com.github.bumptech.glide:glide:$versions.glide" implementation "com.github.bumptech.glide:annotations:$versions.glide" implementation "com.github.bumptech.glide:okhttp3-integration:$versions.glide" implementation "com.squareup.retrofit2:retrofit:$versions.retrofit" implementation "com.squareup.retrofit2:converter-gson:$versions.retrofit" implementation "com.squareup.retrofit2:adapter-rxjava2:$versions.retrofit" implementation "com.squareup.okhttp3:logging-interceptor:$versions.okhttp3" implementation 'me.zhanghai.android.materialprogressbar:library:1.6.1' annotationProcessor "com.github.bumptech.glide:compiler:$versions.glide" implementation "com.google.dagger🗡$versions.dagger" annotationProcessor "com.google.dagger:dagger-compiler:$versions.dagger" implementation "com.google.dagger:dagger-android:$versions.dagger" annotationProcessor "com.google.dagger:dagger-android-processor:$versions.dagger" implementation "com.google.dagger:dagger-android-support:$versions.dagger" implementation "ru.terrakok.cicerone:cicerone:5.0.0" implementation 'net.danlew:android.joda:2.10.1.1'
Anton
def versions = [😏 versions.androidx_appcomapt = '1.0.2' versions.material = '1.0.0' versions.constraintlayout = '1.1.3' versions.arch_lifecycle = '2.0.0' versions.arch_paging = '2.1.0' versions.exo_player = '2.9.4' versions.glide = '4.8.0' versions.dagger = '2.21' versions.rxjava = '2.2.6' versions.rxjava_android = '2.1.0' versions.retrofit = '2.5.0' versions.okhttp3 = '3.12.1'
slava
всем привет, делаю небольшой учебный проект, вроде чисто функционально все более-менее работает, поворот переживаю, утечек нет, но интересно услышать мнение опытных людей по поводу архитектуры и в общем. Может есть здесь те, кто "за спасибо" может сделать поверхностное ревью проекта? Ничего сверхестественного не прошу, просто может есть какие-то очевидные ошибки которые я не вижу вследствие отсутствия опыта. Буду рад любому отзыву https://github.com/UBERMENSCH-numbers/VKmsg
slava
да, забыл сказать, пока писал не думал что у кого-то появится мысль установить это. Дело в том что в последем коммите убрал логин чтоб каждый раз не логинится, пока дебажу, надеюсь таки никто не установит, там просто по умолчанию выполняется вход в мой аккунт 😁
Alex
:D
slava
да там токен уже старый
slava
вряд ли зайдет
Turalllb
венгерская нотация
Donna
ээ это с чего это вдруг?
neikist
+1
Konstantin
ээ это с чего это вдруг?
а зачем этот мусор
Konstantin
смотри историю гита если нужен старый код
Donna
смотри историю гита если нужен старый код
а если нужно быстро вспомнить изменения? а если нужно иметь возможность быстро переключать в зависимости от обстоятельств?