Almas
Ну а нет чёткого определения приложения? Если бы это было ваше приложение какую бы вы защиту против эмуляторов поставили?
если на то пошло,можно вообще определять на чем запущенно приложение ,если хотели защититься от запуска на эмуляторе,то возможно и такое.
Denis
вряд ли это такой случай
Den
то, что я скинул
Спасибо, отличнпя статья. Но немного не то: без вайпа работать не будет. Да и в общем хочется полное управление, типа тапы, свайпы, клавиатура и т.п
Yakov
проверка на debug?)
Там много проверок, и в зависимости от рейтинга я блокирую
Den
scrcpy так умеет
"Connect the device to the same Wi-Fi as your computer." К сожалению только в одной сети...
Almas
думаю 95% всех эмуляторов и прочею фигню детектид.
Yakov
https://github.com/framgia/android-emulator-detector
Читал и там будет ложное срабатывания, и да не от всех эмуляторов спасёт
Mikhail
как в новой студии 3.5.1 включить старый добрый девайс диалог вместо этой странности? В дзен моде невозможно сидеть, не понятно, где запустится апп
Lev
"Connect the device to the same Wi-Fi as your computer." К сожалению только в одной сети...
Ну adb умеет по ip подключаться. Если будет VPN, то без проблем
Dmitriy
Дату завершения платной подписки надо как-то сохранять на девайсе? Или ее можно получить без интернета?
Anonymous
Что происхоидт? почему анимация кривая
Anna
Что происхоидт? почему анимация кривая
вьюха не та. видимо родительская приходит и на неё меню. во всяком случае у меня было что-то подобное :)
Anonymous
Что?
Ну почему анимация влево уходит? а не вниз
Anonymous
Что?
А вот еще один момент, нажал на строку, а засветилась стрелка
Mike
А вот еще один момент, нажал на строку, а засветилась стрелка
ну зарепорти) спиннер никто толком не поддерживает
Mike
где-то радиокнопки, где-то диалоги
Anonymous
ну зарепорти) спиннер никто толком не поддерживает
Да ну, я уже давно перестал репортить этим из гугла, спустя год только пофиксят если захотят
Anonymous
ну, значит, никогда не пофиксят)
эх, пойду дайлог юзать тада)
Mike
ещё можно свой спиннер написать)
Mike
btw, первый результат по запросу material spinner https://github.com/jaredrummler/MaterialSpinner
Vadim
как бы лучше сделать такую вьюху: при вводе цифры она должна перетекать в другую точку
Mike
как бы лучше сделать такую вьюху: при вводе цифры она должна перетекать в другую точку
это прямоугольник с очень скруглёнными углами, канва умеет такое из коробки
Vadim
это прямоугольник с очень скруглёнными углами, канва умеет такое из коробки
я думал или юзать tablayout или на канве рисовать… но для рисования с нуля как это погуглить лучше
Vadim
т.е. нужно сделать кастомную вьюху и в ondraw рисовать это?
Mike
или кастомный дровабл
Denis
при вводе символа делаешь setProgress
Denis
а в OnDraw рисуешь кружочки
Vadim
про seekbar даже не думал, спасибо
Александр
Была у меня одно время мысля реализовать свой спиннер. Посмотрел как этот MaterialSpinner внутри сделан, чот передумал, там какое - то высшее колдунство происходит =(
Anonymous
btw, первый результат по запросу material spinner https://github.com/jaredrummler/MaterialSpinner
Смешно, когда 1 чел делает лучше то, что не могут 3 года сделать Google)). Поискал в инете эта ошибка с 2016 года еще висит
Alex Android
Хм, а можно жить вообще без замыканий контекста?
Alex Android
почему нет?
Хотя слишком многословно получается и на каждый чих вместо анонимного класса придётся создавать локальный статический
Sergii
MotionEvent + какую нибудь библиотеку для стрима (если не сталкивался самому лучше не писать)
𝙈𝙖𝙠𝙨𝙤𝙣𝙞𝙘 🇷🇺
Как сделать что бы при нажатии кнопки назад, открывался предыдущий фрагмент, а не главная страница активити
Ivan
привет, есть два RecyclerView один внутри другого как получить item RecyclerView 1 по клику на item RecyclerView 2 ?
Александр
привет, есть два RecyclerView один внутри другого как получить item RecyclerView 1 по клику на item RecyclerView 2 ?
1. слушать клики внутреннего адаптера во внешнем 2. через родителя итемвью
Stepan
Народ а как долго гугл ругаетса на HostnameVerifier return true
Stepan
HostnameVerifier Your app(s) are using an unsafe implementation of the HostnameVerifier interface. You can find more information about how resolve the issue in this Google Help Center article.
Stepan
В том что я решил залить апдейт а он отклонен по даной причине
Stepan
Реализацию метода не менял
Сергей
привет, есть два RecyclerView один внутри другого как получить item RecyclerView 1 по клику на item RecyclerView 2 ?
Я такое делал. Э...у меня бул список для показа с именами коллекций и итемов. внешний был по коллекциям, но каждая запись списка знала из какой она коллекции. А вообще просто в конструктор (адаптера) внутреннего ресайклера передать
Александр
Расскажи потом какой вариант посоветуют
По итогам ревью переписал на Application.ActivityLifecycleCallbacks. Хорошая таки тема, да.
Vadim
Хочу создать extenssion для модели fun RegistrationViewModel.createBlank(): RegistrationViewModel { return RegistrationViewModel(someField = "") } почему не могу использовать в return: this
Vadim
Почему же не можешь?
fun RegistrationViewModel.createBlank(): RegistrationViewModel { return this(someField = "") } this же не могу так вместить)
Axbor
fun RegistrationViewModel.createBlank(): RegistrationViewModel { return this(someField = "") } this же не могу так вместить)
Смотри, чтобы пользоваться твоим экстеншном нужно сначало создать объект
Axbor
Смотри, чтобы пользоваться твоим экстеншном нужно сначало создать объект
и потом вызвать экстеншн чтобы получить новый объект ))
Александр
Смотри, чтобы пользоваться твоим экстеншном нужно сначало создать объект
Чёт странно как - то, я думал это как - нибудь оптимизировано там.
Axbor
Чёт странно как - то, я думал это как - нибудь оптимизировано там.
ну это же экстеншн, а чтобы вызвать такую функцию тебе нужно объект класса.
Александр
В примере выше мы экстеншн вызываем на уже существующем экземпляре класса.
Axbor
В примере выше мы экстеншн вызываем на уже существующем экземпляре класса.
я об этом и говорю. Чтобы получить пустой объект нужно сначало создать какой нибуд объект )
Александр
А, ну так получается что если этот объект уже есть, и он создан не только лишь для того чтобы вызвать экстеншн, то юзать такой экстеншн вполне норм. Я на нецелесообразность тригернулся чёт.
Mike
да кто ж знает, чего там автор имел в виду
Александр
А какой кейс? Выглядит намного не ок
Какой у автора кода выше кейс - хз.
Александр
Пусть например такой - есть список объектов, который нужно одновременно и прокинуть куда - нибудь дальше, и смаппить его, чтобы смапленный список тоже куда - нибудь бросить.
Axbor
А, ну так получается что если этот объект уже есть, и он создан не только лишь для того чтобы вызвать экстеншн, то юзать такой экстеншн вполне норм. Я на нецелесообразность тригернулся чёт.
Именно в примере выше экстеншн создает "пустой" объект. createBlank() А это полный бред. Чтобы получить пустой объект нам потребуется любой другой объект )
Vadim
Mike
зато сразу отправили в start)
ну да, человек языка-то не знает
Vadim
Именно в примере выше экстеншн создает "пустой" объект. createBlank() А это полный бред. Чтобы получить пустой объект нам потребуется любой другой объект )
идея в том чтобы создавать пустышку для объекта в onCreate вот сейчас я в presentere пишу что то подобное this.currentViewModel = AuthorizationViewModel( authorizationID = "", authorizationCode = "", title = "", description = "", validSeconds = 0, expiresAt = DateTime(0L), createdAt = DateTime(0L), connectionID = "", connectionName = "", connectionLogoUrl = "", viewMode = if (currentConnectionAndKey == null || authorizationId == null || authorizationId.isEmpty()) ViewMode.UNAVAILABLE else ViewMode.LOADING ) и чтобы не писать такую колбасу, решил создать extension для AuthorizationViewModel