Oleksandr
аа Так оверлей и не пробрасывает ивенты в другие окна. Потому что Window прявязано к конкретному процессу Это была бы очень большая брешь в столь и так плохой безопасности андроид ОС
в miui просто как-то сделали onbackpressed по свайпу экрана с лева на право, и при этом если не свайпать оно не блокирует UI в этой зоне)
Andrey
Всем привет Dagger и инжект в сервисе делать в init или oncreate ?
Oleksandr
android.permission.SYSTEM_ALERT_WINDOW если я правильно понял, то достаточно этот пермишн получить, и все?
зачем? он нужен для использования APPLICATION_OVERLAY, оно и так работает
Ruslan
Всем привет! Подскажите как "по правильному" реализовать мультиаккаунтность в приложении? На данный момент у меня реализован какой то OAuth, получаю токен и рефреш токен, токен живет пол часа, Реализовал обновление через Authenticator, также есть два Interceptor, один где нужен токен при каждом запросе и другой без. Сохраняю токен в shared pref. И все это классно работает, но вот возникла необходимость держать неограниченное количество юзеров в приложении. В общем виде это выглядит так: есть users bar под тулбар и по клику "переключаем" юзера, обвновляем все данные в приложении относительно него и для всех запросов используем его токен, а в случае если он уже устарел то обновляем, сохраняем и тд. Подкажите, есть какие то паттерны или инструменты из коробки чтоб это все красиво сделать? В первую очередь вопрос как менеджить работу с токенами в этом случае.
я в итоге базу пользователей сделал. после успешной авторизации я в базу кладу данные, которые пришли (логин, рефреш, токен, инфу юзера всякую). и с этой базой уже работаю. создал два интерфейса - первый обновляет токен (чтобы не отдавать в authenticator весь апи), второй - обновлять данные юзера после рефреша в базе. и роутер пришлось в authenticator инжектить, чтобы при неудачном рефреше в зависимости от ошибки на экран повторного ввода пароля (если пароль был изменен), на экран логина итд выкидывать. sharedprefs тоже можно, но когда юзеров несколько надо список сериализовывать туда сюда. лучше в базу складывать. в префах храню последнего, кто логинился. просто логин пользователя, по которому из базы достаю инфу.
Ruslan
authenticator-а нету т.е?
есть. а в нем три интерфейса - для рефреша токена, для сохранения данных в базе при успешном обновлении и для ухода на другой экран при неуспешном обновлении.
Ruslan
а, ну норм, тоже попробую так а current user есть у вас? если да то как запоминаете его?
да, есть. в sharedPreferences храню просто currentLogin. с ним в базу хожу все время.
Serhii
я в итоге базу пользователей сделал. после успешной авторизации я в базу кладу данные, которые пришли (логин, рефреш, токен, инфу юзера всякую). и с этой базой уже работаю. создал два интерфейса - первый обновляет токен (чтобы не отдавать в authenticator весь апи), второй - обновлять данные юзера после рефреша в базе. и роутер пришлось в authenticator инжектить, чтобы при неудачном рефреше в зависимости от ошибки на экран повторного ввода пароля (если пароль был изменен), на экран логина итд выкидывать. sharedprefs тоже можно, но когда юзеров несколько надо список сериализовывать туда сюда. лучше в базу складывать. в префах храню последнего, кто логинился. просто логин пользователя, по которому из базы достаю инфу.
не заметил что обновили) понял, ну я тоже вот до этого дошел хорошо, что у вас это все норм работает, появилась уверенность в задуманном) спасибо)
--------
Xamarin.Android
но это C#, а он пишет на java
Ruslan
не заметил что обновили) понял, ну я тоже вот до этого дошел хорошо, что у вас это все норм работает, появилась уверенность в задуманном) спасибо)
да не за что. тоже однопользовательское приложение переделывал в многопользовательское и искал решение. прям супер просто не вышло, но то что вышло - вполне работает.
Арсений
Для чего обычно используют директорию Alarms?
Сергій
Для чего обычно используют директорию Alarms?
чтобы использовать свою мелодию для будильника
Сергій
это легаси
Арсений
Тогда куда можно сохранять JSON файлы? Можно, в documents, но это поддерживается с 19 api
Сергій
Тогда куда можно сохранять JSON файлы? Можно, в documents, но это поддерживается с 19 api
что) как ты перешел от вопроса про папку Alarms к сохранению JSON? где логическая связь
Сергій
что за JSON, зачем он в документах
Арсений
Логи
Сергій
Логи
сохраняй в external directory
Сергій
если тебе надо потом этот файл достать
Сергій
например https://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)
lilmir
Ребят, резко ни с того ни с сего перестали работать эти штуки, они импортируются но в самом коде например tv_title не находится, втф?
Andrey
привет, пишу юнит тест для презентера(у меня MVP), запускаю его и у меня: java.lang.IllegalStateException: Must Initialize Fabric before using singleton() так как это юнит тест, то контекста быть не может и вобщем, как мне сделать так, чтобы на юнит тестах не запускался крашлитикс?
lilmir
пробовал два раза
Elron
В каком файле хранится список классов которые были удалены через R8 ?
Himars
наверное как лаунчер
лаунчер - обычное приложение его можно удалиить?
Andrey
контекст можно, гугли. Оберни крашлитикс и замокай
можно вообще как-то отключить его? не охота ни оборачивать, нихрена еще что-то делать(
Oleksandr
лаунчер - обычное приложение его можно удалиить?
скорее всего пред-установка на системном уровне, это ж фирменная оболочка, а какими путями они ее ставили я не знаю. Ты клониш к тому что для такого нужны рут права?
Alex Android
Хммм, что если drawable svg отображается неправильно? в превью есть линия, в андроиде только фон
Сергій
включил vector drawable support library?
Alex Android
да
Alex Android
фон то нормально отображается, круглым, просто одной линии нет
Сергій
дай немного больше инфы
Andrey
Хммм, что если drawable svg отображается неправильно? в превью есть линия, в андроиде только фон
оно иногда парсится с ошибками, некоторые теги не поддерживаются, добавлял через wizard?
Alex Android
через New/Vector Asset
Сергій
ImageView?
Сергій
давайте все будем гадать )
Andrey
ну да, там иногда бывает написано на каком-то из шагов, что не поддерживаются какие-то теги, и поэтому некорректно отображается
Alex Android
Есть подозрение, что свг неправильный, там линия незамкнутая CheckBox
Andrey
ну вобщем, у меня дизайнер научился делать такие svg которые норм парсятся
Сергій
Sketch нормально экспортирует svg
Andrey
мой пользуется Figma
Denys
мой пользуется Figma
попроси его чтобы он не сводил свг где есть внутренние контуры
Denys
сорян, не следил
Vladislav
Подскажите, пожалуйста, как скрыть контролы для видео в WebView?
Богдан
Сергій
Anonymous
Всем привет, у меня Android 8, huawei Запускаю JobService if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { ContextCompat.startForegroundService(this, unstoppableIntent) } else { startService(unstoppableIntent) } и в сервисе if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForeground(1, notification) } Когда начинаю звонить в логах получаю это 2019-07-24 16:02:51.144 1116-13053/? W/ActivityManager: Scheduling restart of crashed service me.ringapp/.ui.test.job.UnstoppableJob in 4000ms 2019-07-24 16:02:55.159 1116-1418/? I/ActivityManager: Start proc 17486:me.ringapp/u0a153 for service me.ringapp/.ui.test.job.UnstoppableJob 2019-07-24 16:02:56.280 17486-17486/me.ringapp I/main >>>>: Unstoppable: onCreate 2019-07-24 16:02:56.326 1116-1418/? V/ActivityManager: Attempted to start a foreground service (ComponentInfo{me.ringapp/me.ringapp.ui.test.job.UnstoppableJob}) with a broken notification (no icon: Notification(channel=ringAppNotificationChannel pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x40 color=0x00000000 vis=PRIVATE)) Он убивает сервис и перезапускает, пробовал разные способы в гугле, он мой сервис все равно убивается, Это из за чего может быть может кто то сталкивался этим? В других версиях андройда (7, 9) все работает нормально
Andrey
что-то походу все что связано с unit тестами - какое-то сокровенное знание. дохрена индусов пишут неработающие мануалы, без деталей. хрень какая-то. как мне в юнит тестах получить контекст? InstrumentationRegistry.getInstrumentation().getContext() выдает: java.lang.IllegalStateException: No instrumentation registered! Must run under a registering instrumentation
Alex Android
Всем привет, у меня Android 8, huawei Запускаю JobService if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { ContextCompat.startForegroundService(this, unstoppableIntent) } else { startService(unstoppableIntent) } и в сервисе if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForeground(1, notification) } Когда начинаю звонить в логах получаю это 2019-07-24 16:02:51.144 1116-13053/? W/ActivityManager: Scheduling restart of crashed service me.ringapp/.ui.test.job.UnstoppableJob in 4000ms 2019-07-24 16:02:55.159 1116-1418/? I/ActivityManager: Start proc 17486:me.ringapp/u0a153 for service me.ringapp/.ui.test.job.UnstoppableJob 2019-07-24 16:02:56.280 17486-17486/me.ringapp I/main >>>>: Unstoppable: onCreate 2019-07-24 16:02:56.326 1116-1418/? V/ActivityManager: Attempted to start a foreground service (ComponentInfo{me.ringapp/me.ringapp.ui.test.job.UnstoppableJob}) with a broken notification (no icon: Notification(channel=ringAppNotificationChannel pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x40 color=0x00000000 vis=PRIVATE)) Он убивает сервис и перезапускает, пробовал разные способы в гугле, он мой сервис все равно убивается, Это из за чего может быть может кто то сталкивался этим? В других версиях андройда (7, 9) все работает нормально
foreground сервис должен быть привязан к нотификейшну
Сергій
см. выше. мне сказали, что можно)
можно и сову на глобус натянуть )
Andrey
robolectric например. А лучше убрать зависимость от контекста
у меня крашлитикс ругается, что его фабрика не инициирована(
Дмитрий
Сергій
и я не говорил что нельзя
Alex Android
Дмитрий
Andrey
зачем вам в юнит-тестах крашлитикс?
я его туда не звал, при попытке теста возникает: java.lang.IllegalStateException: Must Initialize Fabric before using singleton()
Дмитрий
я его туда не звал, при попытке теста возникает: java.lang.IllegalStateException: Must Initialize Fabric before using singleton()
Значит большая связанность кода и нужно рефакторить что бы тесты нормально писать
Сергій
интересно что ты тестируешь )
Andrey
презентер
Andrey
тупой презентер, который тупо выполняет один рест запрос и получает Rx.Single
Сергій
а что внутри презентера
Сергій
где-то там у тебя Application походу
Дмитрий
презентер
вью интерфейсом подключается? Нет ли зависимости от контекста?
Дмитрий
А запросы в сеть через репозиторий или напрямую ретрофит?