Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

Информация
titleДанная статья применима к:

Общие сведения

В данной статье приведено описание настройки фиксированной ориентации экрана для мобильных приложений, а также порядок проверки корректности работы фиксированной ориентации экрана.

Конфигурационный файл

Информация Сведения о конфигурационном файле:

  • расположение: /etc/xdg/plasmamobilerc
  • владелец: root
  • группа: root
  • права доступа: rw-r--r--

Параметр WaydroidDefaultOrientation, задающий ориентацию по умолчанию для всех приложений Waydroid, располагается в секции APPORIENTATION конфигурационного файла:.

Блок кода
[APPORIENTATION]
WaydroidDefaultOrientation=4

Ориентация окна приложения Waydroid задается в этой же секции строкой, содержащей имя приложения и код ориентации экрана:.

Блок кода
[APPORIENTATION]


WaydroidDefaultOrientation=4


waydroid.com.devinterestdev.streamshow=4


waydroid.com.android.calculator2=1


waydroid.org.lineageos.etar=2


waydroid.org.lineageos.jelly=3


fly-camera=1


fly-gallery=2


chromium=4

Соответствие кода ориентации устройства, положения устройства и ориентации экрана приложения приведено в таблице.

Код

Положение устройства

Ориентация экрана приложения

1Верхняя грань устройства направлена вверхПриложение запустится в ландшафтной ориентации
2Верхняя грань устройства направлена внизПриложение запустится в портретной ориентации (справа налево)
3Левая грань устройства направлена вверхПриложение запустится в зеркальной портретной ориентации (слева направо)
4Правая грань устройства направлена вверхПриложение запустится в зеркальной ландшафтной ориентации (вверх ногами)

Варианты ориентации экрана показаны в следующем порядке:

верхняя грань сверху;верхняя грань снизу;левая грань сверху;правая грань сверху;лицевая сторона сверху;
  • лицевая сторона снизу.
  • Image Removed

    ВНИМАНИЕ!
    Предупреждение

    Значения, не входящие в приведенную таблицу, считаются невалидными и могут привести к неправильной работе функционала.

    ВНИМАНИЕ!

    Данное описание применимо

    для устройства

    к устройству Lenovo IdeaPad URU. Для устройств, у которых аппаратно задан другой левый верхний угол, ориентация может быть инвертирована.

    Варианты ориентации устройства приведены на рисунке слева направо:

    • верхняя грань сверху;
    • верхняя грань снизу;
    • левая грань сверху;
    • правая грань сверху;
    • лицевая сторона сверху;
    • лицевая сторона снизу.

    Image Added

    Скрипты

    Установка ориентации экрана приложения осуществляется с участием следующих скриптов:

    • /usr/sbin/astra-mobile-waydroid-watcher-sessionскрипт, управляющий функционалом на уровне сессии по сигналам dbus.

    Требования: права user.

    Принцип работы: ожидает получения команды на перезапуск сессии Waydroid с последующим запуском приложения;

    • /usr/sbin/astra-mobile-waydroid-watcher — скрипт, управляющий функционалом на уровне системы по сигналам dbus.

    Требования: права root.

    Принцип работы: ожидает получения команды на изменение конфигураций разрешения окна Waydroid.

    Алгоритм работы

    Алгоритм определения ориентации экрана приложения:

    • пользователь запускает приложение;
    • производится проверка необходимости смены ориентации экрана для запускаемого приложения;
    • если приложение существует для приложения есть запись в конфигурационном файле, ему задаётся указанная ориентация экрана, а автоматический поворот экрана блокируется;
    • производится проверка, что приложение является приложением Waydroid;
    • если это приложение Waydroid, то в случае различного отличия разрешения в конфигурационном файле (/var/lib/waydroid/waydroid_base.prop) и необходимого для приложенияот разрешения, необходимого данному приложению, производится изменение разрешения в конфигурационном файле и перезапуск сессии Waydroid с повторным запуском указанного приложения (по средствам отправки dbus-сигналов скриптам astra-mobile-waydroid-watcher и astra-mobile-waydroid-watcher-session).

    При переключении между приложениями также происходит проверка необходимости смены ориентации экрана для активируемого приложения:

    • если приложение существует для приложения есть запись в конфигурационном файле, ему задаётся указанная ориентация экрана, автоматический поворот экрана блокируется;
    • если записи для приложения не существуетнет, то ориентация будет установлена в соответствии с текущими показаниями сенсора, а флаг автоматического поворота будет возвращён к предыдущему состоянию до блокировки.

    Методика тестирования

    Для обычных системных приложений

    Порядок тестирования:

    1. В конфигурационный файл/etc/xdg/plasmamobilercв секцию APPORIENTATION (возможно её придётся если она отсутствует — создать) требуется добавить имя приложения в системе и указать ориентацию из таблицы.
    2. Запустить приложение, проверить что ориентация изменилась, а автоповорот был заблокирован;
    3. Произвести переключение между несколькими приложениям в разных ориентациях (в том числе не заблокированных).

    Ожидаемый результат:

    • ориентация фиксированных приложений должна автоматически применяться при запуске и при переключении на него с помощью комбинации клавиш <Alt+Tab> или графического интерфейса;
    • автоматический поворот для фиксированных приложений должен блокироваться и восстанавливать прежнее значение при переключении на не фиксированные приложения.

    Для приложений Waydroid

    Порядок тестирования:

    1. В конфигурационный файл/etc/xdg/plasmamobilercв секцию APPORIENTATION (возможно её придётся если она отсутствует — создать) требуется добавить параметр WaydroidDefaultOrientation=# для всех приложений Waydroid по умолчанию;
    2. В конфигурационный файл/etc/xdg/plasmamobilercв секцию APPORIENTATION требуется   добавить имена нескольких приложений Waydroid с разной ориентацией.
      Примечание. Узнать имя приложения можно с помощью команды waydroid app list;
    3. Произвести запуск указанных приложений.

    ВНИМАНИЕ! Приложения с разной ориентацией (за исключением зеркальной) одновременно работать не будут!

    Ожидаемый результат:

    • ориентация фиксированных приложений должна автоматически применяться при запуске и при переключении на него с помощью комбинации клавиш <Alt+Tab> или графического интерфейса;
    • автоматический поворот для фиксированных приложений должен блокироваться и восстанавливать прежнее значение при переключении на не фиксированные приложения;
    • в случае последовательного запуска приложений с разной (не зеркальной) ориентацией запуск будет проходить дольше обычного т.к. требуется время на повторную инициализацию. Все приложения Waydroid при этом будут закрыты;
    • в случае последовательного запуска приложений с одинаковой или зеркальной ориентацией перезапуска быть не должно и приложение должно открыться за более короткое время.