🐈 гав-гав
Nikolay
Никита 🙃
А кто может подсказать. Вот есть Activity, у неё лейаут вида:
ConstarintLayout
——FrameLayout
——Button
Во FrameLayout есть некий фрагмент с editText'ом
В итоге когда открывается клавиатура, то эта кнопка поднимается вместе с кнопкой:
https://prnt.sc/okdd80
Кто подскажет, как сделать так, что бы эта кнопка не поднималась над клавой?
🐈 гав-гав
🐈 гав-гав
а вообще google-> how to up button with keyboard android
Alex
Привет! Кто-нибудь знает, на какой либе графиков сделан TabTrader?
Andrew
Никита 🙃
Jacob
Подскажите плз есть ли какойто класс конвертер от гугла из livedata в observable? Вроде что-то было не найду(
Aleksey
Alex
Обычно decompile делаю, но тут защита. Чем apk смотрите?
Andrew
Anonymous
Здравствуйте
1) Запускаю Service || JobService через startService || startForegroundService для android Oreo || ContextCompat.startForegroundService
2) в onCreate методе сервиса делаю startForeground(1, notification), и в onDestroy делаю stopForeground(false)
В onCreate методе сервиса запускается BroadcastReceiver, для получение событий TelephonyManager.EXTRA_STATE - {OFFHOOK, RINGING, IDLE}
Вот код для регистраций ресивера
applicationContext.registerReceiver(broadcastReceiver, IntentFilter(TelephonyManager.ACTION_PHONE_STATE_CHANGED),
Manifest.permission.CALL_PHONE, null)
Сразу же после запуска сервиса я вызываю
val intent = Intent(Intent.ACTION_DIAL)
intent.data = Uri.parse("tel:+77787020453")
startActivity(intent)
И начинаю звонить
В логах сервса получаю
18:38:17.008 I/main >>>>: Unstoppable: onCreate ✅
18:38:17.013 4371-4371/me.myapp I/main >>>>: UnstoppableJob: onStartCommand ✅
18:38:17.231 4371-5110/me.myapp I/main >>>>: Unstoppable - 1 ✅
18:38:18.730 4371-5110/me.myapp I/main >>>>: Unstoppable - 2 ✅
18:38:19.082 4371-4371/me.myapp I/Unstoppable: blockCallReciever: onRecieve: ✅
18:38:19.082 4371-4371/me.myapp I/Unstoppable: android.intent.action.PHONE_STATE = OFFHOOK ✅
18:38:21.715 5169-5169/? I/main >>>>: Unstoppable: onCreate ⁉️
18:38:21.741 5169-5169/? I/main >>>>: UnstoppableJob: onStartCommand ⁉️
18:38:21.947 5169-5231/? I/main >>>>: Unstoppable - 1 ⁉️
18:38:24.114 5242-5242/me.myapp I/main >>>>: Unstoppable: onCreate ⁉️
18:38:24.145 5242-5242/me.myapp I/main >>>>: UnstoppableJob: onStartCommand
⁉️
Unstoppable - 1, Unstoppable - 2 - это я таймер запустил чтобы отслежевать работает сервис или нет в реальном времени.
Не могу понять почему в сервисе вызывается сново onCreate без вызова onDestroy, кто может мне помоч это решить и сделать так чтобы сервис работал стабильно при совершение вызова?
尺囗从丹廾
Здравствуйте
1) Запускаю Service || JobService через startService || startForegroundService для android Oreo || ContextCompat.startForegroundService
2) в onCreate методе сервиса делаю startForeground(1, notification), и в onDestroy делаю stopForeground(false)
В onCreate методе сервиса запускается BroadcastReceiver, для получение событий TelephonyManager.EXTRA_STATE - {OFFHOOK, RINGING, IDLE}
Вот код для регистраций ресивера
applicationContext.registerReceiver(broadcastReceiver, IntentFilter(TelephonyManager.ACTION_PHONE_STATE_CHANGED),
Manifest.permission.CALL_PHONE, null)
Сразу же после запуска сервиса я вызываю
val intent = Intent(Intent.ACTION_DIAL)
intent.data = Uri.parse("tel:+77787020453")
startActivity(intent)
И начинаю звонить
В логах сервса получаю
18:38:17.008 I/main >>>>: Unstoppable: onCreate ✅
18:38:17.013 4371-4371/me.myapp I/main >>>>: UnstoppableJob: onStartCommand ✅
18:38:17.231 4371-5110/me.myapp I/main >>>>: Unstoppable - 1 ✅
18:38:18.730 4371-5110/me.myapp I/main >>>>: Unstoppable - 2 ✅
18:38:19.082 4371-4371/me.myapp I/Unstoppable: blockCallReciever: onRecieve: ✅
18:38:19.082 4371-4371/me.myapp I/Unstoppable: android.intent.action.PHONE_STATE = OFFHOOK ✅
18:38:21.715 5169-5169/? I/main >>>>: Unstoppable: onCreate ⁉️
18:38:21.741 5169-5169/? I/main >>>>: UnstoppableJob: onStartCommand ⁉️
18:38:21.947 5169-5231/? I/main >>>>: Unstoppable - 1 ⁉️
18:38:24.114 5242-5242/me.myapp I/main >>>>: Unstoppable: onCreate ⁉️
18:38:24.145 5242-5242/me.myapp I/main >>>>: UnstoppableJob: onStartCommand
⁉️
Unstoppable - 1, Unstoppable - 2 - это я таймер запустил чтобы отслежевать работает сервис или нет в реальном времени.
Не могу понять почему в сервисе вызывается сново onCreate без вызова onDestroy, кто может мне помоч это решить и сделать так чтобы сервис работал стабильно при совершение вызова?
вырвиглазно
Николай
Господа что могло случиться? работало норм все до этого, ребилд и клин не помогают.
Vitalii
Dmitriy
Anonymous
Здравствуйте
1) Запускаю Service || JobService через startService || startForegroundService для android Oreo || ContextCompat.startForegroundService
2) в onCreate методе сервиса делаю startForeground(1, notification), и в onDestroy делаю stopForeground(false)
В onCreate методе сервиса запускается BroadcastReceiver, для получение событий TelephonyManager.EXTRA_STATE - {OFFHOOK, RINGING, IDLE}
Вот код для регистраций ресивера
applicationContext.registerReceiver(broadcastReceiver, IntentFilter(TelephonyManager.ACTION_PHONE_STATE_CHANGED),
Manifest.permission.CALL_PHONE, null)
Сразу же после запуска сервиса я вызываю
val intent = Intent(Intent.ACTION_DIAL)
intent.data = Uri.parse("tel:+77787020453")
startActivity(intent)
И начинаю звонить
В логах сервса получаю
18:38:17.008 I/main >>>>: Unstoppable: onCreate ✅
18:38:17.013 4371-4371/me.myapp I/main >>>>: UnstoppableJob: onStartCommand ✅
18:38:17.231 4371-5110/me.myapp I/main >>>>: Unstoppable - 1 ✅
18:38:18.730 4371-5110/me.myapp I/main >>>>: Unstoppable - 2 ✅
18:38:19.082 4371-4371/me.myapp I/Unstoppable: blockCallReciever: onRecieve: ✅
18:38:19.082 4371-4371/me.myapp I/Unstoppable: android.intent.action.PHONE_STATE = OFFHOOK ✅
18:38:21.715 5169-5169/? I/main >>>>: Unstoppable: onCreate ⁉️
18:38:21.741 5169-5169/? I/main >>>>: UnstoppableJob: onStartCommand ⁉️
18:38:21.947 5169-5231/? I/main >>>>: Unstoppable - 1 ⁉️
18:38:24.114 5242-5242/me.myapp I/main >>>>: Unstoppable: onCreate ⁉️
18:38:24.145 5242-5242/me.myapp I/main >>>>: UnstoppableJob: onStartCommand
⁉️
Unstoppable - 1, Unstoppable - 2 - это я таймер запустил чтобы отслежевать работает сервис или нет в реальном времени.
Не могу понять почему в сервисе вызывается сново onCreate без вызова onDestroy, кто может мне помоч это решить и сделать так чтобы сервис работал стабильно при совершение вызова?
https://toster.ru/q/651972
Николай
Николай
Николай
Aleksey
Олег
глупый вопрос
есть fragment, layout которого состоит из одного recyclerView
код фрагмента
public View onCreateView(...) {
return inflater.inflate(R.layout.recycler_view, container, false);
}код recycler_view.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"/>могу ли я сохранить ссылку на этот ресайклер в onCreateView, т.е.
public View onCreateView(...) {
mRecycler = inflater.inflate(R.layout.recycler_view, container, false);
return mRecycler;
}
Anton
Николай
🐈 гав-гав
Николай
Просто зачем это)))
Олег
при ручном создании TextView всё ок
Denis
Руслан
Всем привет, ребят а как поиск таких комбинации возможно сделать в книге ?)
Руслан
Олег
а в чём будет разница между двумя подходами?
Изам
добрый день, кто занает, как вывести контент под StatusBar? я пробовал и "fitssystemwindows" и программный способ. Первый случай вообще не помог, а второй охватывает и нижнюю область (где кнопки навигации)
Олег
логично, спасибо
Anton
Всем привет! Guys, кто с EXO Player плотно работал:
Не подскажите с чем может быть связана следующая проблема?
- в проекте на одном экране видос + превьюшки плей-листа
- клик по плейлисту переключает videoUrl (в связи с чем меняется DataSource и вызывается player.prepare()). Переключение идёт в рамках 1 инстанса SimpleExoPlayer
- если юзер начинается очень быстро кликать по плейлисту - то вылетает такой exception из недр ExoPlayer (на Samsung J7 / A-серии довольно быстро это происходит)
- `Caused by: android.media.MediaCodec$CodecException: Error 0xffffec77`
- `com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.Exynos.avc.dec, Format(1, null, null, video/avc, null, -1, null, [1280, 720, -1.0], [-1, -1])`
На StackOverflow рекомендуют такие вещи:
- w/h видоса кратна 16
- переиспользовать 1 инстанс SimpleExoPlayer (иначе ломается из-за длительного создания декодеров), не делать player.stop() (т.к. декодер не будет переиспользован)
Anna
Всем привет! Guys, кто с EXO Player плотно работал:
Не подскажите с чем может быть связана следующая проблема?
- в проекте на одном экране видос + превьюшки плей-листа
- клик по плейлисту переключает videoUrl (в связи с чем меняется DataSource и вызывается player.prepare()). Переключение идёт в рамках 1 инстанса SimpleExoPlayer
- если юзер начинается очень быстро кликать по плейлисту - то вылетает такой exception из недр ExoPlayer (на Samsung J7 / A-серии довольно быстро это происходит)
- `Caused by: android.media.MediaCodec$CodecException: Error 0xffffec77`
- `com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.Exynos.avc.dec, Format(1, null, null, video/avc, null, -1, null, [1280, 720, -1.0], [-1, -1])`
На StackOverflow рекомендуют такие вещи:
- w/h видоса кратна 16
- переиспользовать 1 инстанс SimpleExoPlayer (иначе ломается из-за длительного создания декодеров), не делать player.stop() (т.к. декодер не будет переиспользован)
у нас похожая задача. плеер singleton, делаем стоп и запускаем новый видос setPlayWhenReady. но плейлист храним у себя - то есть не используем внутренний плейлист, не помню почему отказались.
Anna
Anton
нет. не помню таких ошибок, хотя samsung юзаем
Во всяком случае- благодарю за фидбэк! у нас этот проект просто "легаси", возможно архитектурно что-то не докручено (хотя неск раз выверял)
Тут ещё специфика - что юзер может довольно быстро прокликивать плей-лист держа видос по 2-3сек (этот юзер - QA заказчика:) )
Stanly
Всем привет!
У кого-то есть опыт работы с build.gradle ?
Буду признателен за помощь
https://stackoverflow.com/questions/57198163/gradle-how-to-execute-both-testinstrumentationrunners-at-the-same-time
Сергей
граждане, а вот есть прием "унаследовать класс от Application, что бы в нем был всегда доступен контекст приложения и можно было хранить еще данные, которые не убьются" - это дурь или "а чо, все так делают"? И с чем этот класс уместно совместить? с репозиторием? или нинада совмещать?
Anton
Artemiy
Anton
Vladimir
Сергей
ViewModel-ей же несколько может/должно быть? под каждую активность
Сергей
речь про данные приложения в целом
Artemiy
но только до первого onCleared()
Да, но если владелец activity, то и onCleared() вызовется только при уничтожении активности - для глобальных вещей подойдет, а иначе по новой данные грузить из сети или из базы
Denis
Denis
onDestory на активити на него не влияет
Artemiy
Сергей
ну сингл активити это да, логично
Artemiy
Сергей
ок, понял. Но держать там ссылку на инстансы репозитория вроде норм.
Vladimir
Dj
Сергей
ну, с ДИ то понятно что оно для этого и есть
Artemiy
Andrey
Всем привет!
У меня при определенных обстоятельствах сворачивается приложение.
Я не могу понять из-за чего это происходит.
Нужно писать постоянно логи в файл, тк не знаю в какой момент это может произойти.
Кто-нибудь подскажет как писать системные логи приложения в файл?
Печенье
adb logcat > log_file.txt
Anonymous
У меня у одного Firebase глючит и я не могу новый проект создать или у всех такая же проблема?😒
Anonymous
Может кто проверить?
Andreu
Konstantin
Andrey
Konstantin
регулярным выражением? или что
Konstantin
Konstantin
логкат же эт клиентская часть, цепляется к серверу адб, ждет пока адб начнет ему присылать логи из устройства, и не умирает пока сам не убьешь, а > перенаправляет вывод из терминала в файл, где я тебя не так понял? )