wifi_v_metroЗапись за 11.03.2017 19:58:49 +0200Вторая бета версия 1.7.5. В этой версии есть несколько экспериментальных изменений, так что осторожность не помешает. Скорее всего, в общий доступ эта версия попадёт во вторник, так как хочу сам её испытать. (хотя я и в прошлый раз так говорил (-_-))
★ Уведомления об ошибках:
* Отключены по умолчанию, так как в большинстве случаев они особой пользы не несут, а только раздражают. Если что-то не работает, их можно включить и посмотреть, что идёт не так.
* Не удаляются после завершения фонового процесса.
После исправления той ошибки с потоками я не предусмотрел того, что фоновый процесс при неудачном подключении моментально завершается и не оставляет уведомлений об ошибках. Теперь они будут оставаться, если их включить в настройках.
UPD: Нужно проверить, останется ли лог после завершения процесса. Это может быть большой проблемой.
* Удаляются при запуске нового фонового процесса.
Это уже следует из предыдущего пункта. Все уведомления предоставляют доступ к одному и тому же логу, так что уведомление об ошибке становится ненужным во время нового подключения.
★ Подключение:
* Ожидание IP теперь бесконечно по умолчанию
Раньше фоновый процесс ждал только 30 секунд, а затем завершался. В итоге сеть могла нормально подключиться, а приложение на это уже никак не реагировало. Теперь приложение будет ждать IP адрес до тех пор, пока его не выдаст сеть, либо пока процесс не будет прерван пользователем или системой.
Вообще, эта настройка полезна только для тех устройств, которые не рассылают сообщения о том, что Wi-Fi отключился. В остальных случаях Android и так решает, сколько ему нужно ожидать ответа от DHCP-сервера. Хотя я ещё не испытывал такой подход на реально медленных сетях.
* Подробный лог значительно расширен для упрощения отладки
В течение некоторого времени существовала отдельная ветка под названием debug, в которую я добавил более подробную информацию в лог подключения. Теперь эти изменения перенесены и в основную ветку, так что мне будет проще понять, что именно привело к проблеме с подключением. До этого в лог попадали только сообщения о самом отключении, а то, что при этом происходило с системой и фоновым процессом, оставалось тайной.
Это изменение также может помочь исправить все проблемы с автоматическим срабатыванием на некоторых устройствах. Я пока не придумал, как ловить ВСЕ события о Wi-Fi, но теперь, по крайней мере, можно будет понять, почему фоновый процесс не завершился при отключении от сети. Для всего этого достаточно открыть ручное подключение и посмотреть, что там происходит.
* Доступ в интернет теперь проверяется через Google
В последние несколько дней мне пришло много писем о том, что алгоритм очень часто не определяется в метро. Раньше он определялся через сайт
wi-fi.ru, но сейчас с ним что-то сделали (возможно, открыли для неавторизованных пользователей). Теперь используется адрес
https://google.com/generate_204. Может Google откроют? :)
И ведь именно в тот момент, когда релиз уже залит и когда я почти дописал этот текст, до меня дошло, что использовать HTTPS для получения перенаправления от провайдера — не очень такая идея. Но работать должно, так как текущая реализация клиента не проверяет подлинность сертификата у сайта.
★ Интерфейс:
+ Кнопки возврата на вложенных экранах настроек
Пришлось добавить пару Activity, но теперь вложенные экраны настроек позволяют возвращаться на уровень выше без физической кнопки "назад". Меня довольно сильно удивило, что PreferenceScreen не позволяет реализовать это без ужасных костылей.
--
Скачать эту версию можно:
1) Из Google Play. Запишитесь на бета-тестирование здесь:
https://play.google.com/apps/testing/pw.thedrhax.mosmetro2) Через встроенную систему обновления (ветка beta)
3) С моего сервера: https://mosmetro.[...]