Еще в попилку https://github.com/metalabdesign/AsyncAwait
Библиотека, которую мы начали разрабатывать немного раньше описанной в статье. Предоставляет много больше возможностей как `awaitWithProgress`, избавляет от утечек памяти при уничтожении активити, обработку ошибок и пр.
Очень много разработок из Лунда (в Швеции) вынесли в Индию и прочее. Контакты и Телефон были одни из первых. Уже около года. Потому я до сих пор на Z3 Compact.
Сейчас пишу qwerty поиск в AppDialer-е частично на Kotlin. Это праздник какой-то. Компилится быстро, поддержка в IDEA шикарная, gradle собирается на раз два. Получается очень плотный код. Что мне особенно понравилось пока что:
Extensions. Получаю float из xml ресурсов через «отсутствующий» API Resources.getFloat(resId)
//Define somewhere
public fun Resources.getFloat(resourceId: Int): Float {
val outValue = TypedValue() ;
getValue(resourceId, outValue, true)
return outValue.getFloat() ;
}
//Use
val w = resources.getFloat(R.fraction.qw_extra_space_along_edges)
Lambdas. Получить из массива хитрый HashMap вместо пол страницы кода на Java
keys.toMap { it }.mapValues {
it.value.toString()
.plus(keyMapEn[it.key])
.toCharArray()
}
Elvis operator.Использовать пустую строку если переменная null
Только после этого пользователи жалуются что у них самопроизвольно включается экран. Проверено :) Без рута никуда. А с рутом уже и другие методы запроса могут быть — через АТ команды модема.
И еще сюрпрайз сюрпрайз, при включении хотя бы одного accessibility services пропадает переключатель языка на самсунговской стандартной клавиатуре! Казалось бы как это связано? Чинится только установкой другой клавиатуры. Но сколько гневных отзывов было оставлено — не счесть.
Да, именно таким образом работает поддержка ussd в piBalance. Но подводных камней очень много, правда. Начиная от того, как парсить несколько таких диалогов если устройство заблокировано (на разных устройствах это работает по разному) до того что на разных аппаратах как класс диалога так и layout внутри диалога у всех разные. А еще на разные ussd запросы может приходить ответ ожидающий ввода от пользователя. И так далее. Особенно большая чехарда на китайских аппаратах.
Кроме того, пользователи с 2.x гораздо реже вообще скачивают новые приложения. Вижу по статистике для своих новых приложений. Основной локомотив это те, кто перешел на 4+. Если приложение хоть немного расчитано на продвинутую аудиторию, то вообще уже не вижу смысла делать поддержку 2.x.
C таким экраном вы его лишний раз в руки не возьмете, разве что позвонить. От того он и жить долго будет. У меня есть сенсорная читалка Nook Simple Touch на андроиде (eink). Она живет неделю, но браузить на ней можно с трудом, разве что книжку скачать. Ютуб смотрится прикольно как в газете напечатанный. Но пользоваться реально только для того чтобы книжки читать. Набирать текст на специализированной клавиатуре вполне комфортно.
Кстати, просто в тему:
1. Пин-код может быть не только 4-х символьный. Это устоявшаяся практика, не более;
2. Пин-коды генерируются в процессинговых центрах банков в так называемых HSM-ах;
3. Количество попыток ввода неверного пин-кода зависит от политик процессингового центра, и уж точно не зависит от того где он вводится (терминал/банкомат). Обычно уже на третьей неверной попытке банкомат карточку положит в свой внутренний лоточек и ее вы больше не увидите.
Для запуска навигатора можно было бы сделать так. В течении 30 сек. отслеживать заранее заданный угол (на подставке в машине). Если он не изменялся на протяжении этого времени тогда и запускать. Минус — постоянно дергать датчики батарейке не понравится.
Не знал, что Раскин был отстранен от работы над Маком.
Именно его книга «Интерфейс:..» с многочисленными примерами из интерфейса Мака раскрыла мне глаза на интерфейсы вообще. А уже в 2005 году его не стало…
Не согласен. Почта приходит и подкасты у меня скачиваются даже если я не пользуюсь Gmail и Pocket Casts прямо сейчас. То-же и с новыми фотками, которые отправляются на Гуглоплюсик после их создания.
Вся эта кухня отмирает сама при пониженном заряде батарейки. И это здорово.
Библиотека, которую мы начали разрабатывать немного раньше описанной в статье. Предоставляет много больше возможностей как `awaitWithProgress`, избавляет от утечек памяти при уничтожении активити, обработку ошибок и пр.
Все примеры прямо из проекта. Пробовал и Scala еще до серьезного развития Kotlin. Но Scala в Android как Винни в Кроликовой норе.
1. Пин-код может быть не только 4-х символьный. Это устоявшаяся практика, не более;
2. Пин-коды генерируются в процессинговых центрах банков в так называемых HSM-ах;
3. Количество попыток ввода неверного пин-кода зависит от политик процессингового центра, и уж точно не зависит от того где он вводится (терминал/банкомат). Обычно уже на третьей неверной попытке банкомат карточку положит в свой внутренний лоточек и ее вы больше не увидите.
Именно его книга «Интерфейс:..» с многочисленными примерами из интерфейса Мака раскрыла мне глаза на интерфейсы вообще. А уже в 2005 году его не стало…
Вся эта кухня отмирает сама при пониженном заряде батарейки. И это здорово.