dovecoteescapee / ByeDPIAndroid

App to bypass censorship on Android
https://ntc.party/c/community-software/byedpi
GNU General Public License v3.0
3k stars 130 forks source link

add AndroidTV icon #86

Closed Viktor45 closed 3 months ago

Viktor45 commented 3 months ago

Basic AndroidTV leanback support for not to use sideload launcher at AndroidTV, still needed to make settings gear selectable by D-pad.

Базово добавляет поддержку иконки приложения в Android TV с плиткой для запуска, никак не влияя на функции приложения на обычном Android, при этом не требует от пользователя использовать sideload launcher для запуска приложения на AndroidTV. Но это только базовая поддержка связанная с одной иконкой, для того чтобы запустить приложение на AndroidTV c главного экрана. Для полного счастья, чтобы пользователь не использовал пульт-аэромышь для настроек необходимо еще доработать возможность открытия шестеренки настроек с D-pad. Опции приложения и выбор пунктов настроек, изменения настроек, ввод параметров командной строки - все это нормально работает с D-Pad

fixes #13

dovecoteescapee commented 3 months ago

С одной стороны, если добавить баннер, у пользователя будет создаваться впечатление поддержки Android TV, а там в настройки нормально не перейти. Плюс, по ощущениям, я получаю сообщения о том, что при включённом приложении пропадает интернет, чаще с упоминанием телевизоров, чем других устройств. Не знаю, связано ли это с какими-то особенностями Android TV.

С другой, люди всё равно ставят его на телевизоры. Так что не знаю, хотелось бы хотя бы рабочую навигацию иметь, если добавлять баннер.

Viktor45 commented 3 months ago

я получаю сообщения о том, что при включённом приложении пропадает интернет, Не знаю, связано ли это с какими-то особенностями Android TV.

у меня тоже пропадает интернет в режиме приложения VPN когда я использую ваше приложение, я иду просто в настройки сети и заново получаю DHCP адрес на устройство и тогда все работает, но такой способ конечно костыли (возможно какойто баг tun2socks для androidtv что локальное vpn теряет адрес), по крайней мере помог вам иконкой, теперь осталась только шестеренка для полного счастья, кстати приятный сюрприз, что ваше приложение полностью в части интерфейса в остальных частях полностью работоспособно, только шестеренка не получает фокус для D-pad (на нее нельзя перейти, чтобы выбрать, только аэромышью пока)

dovecoteescapee commented 3 months ago

я иду просто в настройки сети и заново получаю DHCP адрес на устройство

Спасибо за информацию. Могу я попросить вас ответить на эти вопросы?

ropucyka commented 3 months ago

там в настройки нормально не перейти

Блютуз мышкой прекрасно настраивется всё. Те кто это ставят готовы к трудностям.

Viktor45 commented 3 months ago

там в настройки нормально не перейти

Блютуз мышкой прекрасно настраивется всё. Те кто это ставят готовы к трудностям.

возможно просто можно решить проблему по другому сделать кнопку "настройки" под кнопкой connect такой же кнопкой, с которой проблем нет, не меню, она будет нажиматься с пульта d-pad

Viktor45 commented 3 months ago

AndroidTV settings button for D-Pad added

На AndroidTV приложение покажет кнопку настроек, выбираемую с D-Pad )

Viktor45 commented 3 months ago
android-tv-screen-banner
dovecoteescapee commented 3 months ago

Такой визуал меня совершенно не устраивает. К тому же кнопка видна не только на телевизорах, а на всех устройствах в горизонтальном положении

dovecoteescapee commented 3 months ago

Давайте смерджу версию без кнопки, а фикс навигации оставим на потом, хорошо?

Viktor45 commented 3 months ago

а на всех устройствах в горизонтальном положении

ну хорошо, буду искать как спрятать шестеренку на androidTV дальше или сделать ее фокусируемой

dovecoteescapee commented 3 months ago

ну хорошо, буду искать как спрятать шестеренку на androidTV дальше или сделать ее фокусируемой

Я потратил немного времени в попытках это сделать, можно как-то так:

  1. Заменить устаревший ActionBar на Toolbar (androidx.appcompat.widget.Toolbar)
  2. Для поддержки навигации у Toolbar должен быть атрибут android:touchscreenBlocksFocus="false"

В таком варианте вроде бы навигация везде работает, кроме одного места — с основной страницы настроек не перейти на тулбар. Фокус как будто упирается в заголовок категории (если убрать категорию, то вроде всё хорошо). Причём, если отмотать вниз и зажать вверх, то он проскочет на тулбар. В общем, не очень дружит всё это добро с D-Pad, но вроде как-то работает

Viktor45 commented 3 months ago

тулбар

Тогда это хороший вариант, все манулы прям подчеркивают, что еще все обвешать свойствами

    android:focusable="true"
    android:focusableInTouchMode="true"

чтобы элементы могли фокус получать принудительно

Viktor45 commented 3 months ago

Проверил сегодня на физическом AndroidTV . Шестеренка настроек в версии 1.0.2 фокус получает по нажатии вверх-вниз на D-pad, а вот на эмуляторе такого поведения нет. Предлагаю выпустить тестовую версию с одной иконкой для обратной связи, возможно все не так плохо как кажется.

Viktor45 commented 3 months ago

Сейчас вернул изменения только на поддержку иконки на AndroidTV

dovecoteescapee commented 3 months ago

Спасибо