Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 4 Следующий »

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

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

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

Все остальные параметры являются именем приложения в системе.

Пример системных приложений:
fly-camera=#
fly-gallery=#

Пример приложений waydroid (см. команду waydroid app list):
waydroid.com.android.calculator2=#
waydroid.org.lineageos.etar=#
waydroid.org.lineageos.jelly=#
waydroid.com.devinterestdev.streamshow=#

где # — код ориентации экрана.

Пример минимального конфигурационного файла:

[APPORIENTATION]
WaydroidDefaultOrientation=4

Пример дополненного конфигурационного файла:

[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Правая грань устройства направлена вверхПриложение запустится в зеркальной ландшафтной ориентации (вверх ногами)

ВНИМАНИЕ! Данное описание эффектов применимо для устройства Lenovo IdeaPad URU. Для устройств, у которых аппаратно задан другой левый верхний угол, указанные эффекты могут быть инвертированы.
ВНИМАНИЕ! Значения, не входящие в приведенную таблицу, считаются невалидными и могут привести к неправильной работе функционала.

Используемые скрипты:

Основные:

Расположение: /usr/sbin

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

Требования:

  1. Права user;

Принцип работы:

Ожидает получения команды на перезапуск сессии waydroid с последующим запуском приложения.

Расположение: /usr/sbin

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

Требования:

  1. Права 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 при этом будут закрыты;
В случаи последовательного запуска приложений с одинаковой или зеркальной ориентацией перезапуска быть не должно и приложение должно открыться за более короткое время.

  • Нет меток