...
Соответствие кода ориентации экрана, положения устройства и ориентации экрана приложения приведено в таблице.
Код | Положение устройства | Ориентация экрана приложения |
---|---|---|
1 | Верхняя грань устройства направлена вверх | Приложение запустится в ландшафтной ориентации |
2 | Верхняя грань устройства направлена вниз | Приложение запустится в портретной ориентации (справа налево) |
3 | Левая грань устройства направлена вверх | Приложение запустится в зеркальной портретной ориентации (слева направо) |
4 | Правая грань устройства направлена вверх | Приложение запустится в зеркальной ландшафтной ориентации (вверх ногами) |
Варианты ориентации экрана показаны в следующем порядке:
- верхняя грань сверху;
- верхняя грань снизу;
- левая грань сверху;
- правая грань сверху;
- лицевая сторона сверху;
- лицевая сторона снизу.
Скрипты
Установка ориентации экрана приложения осуществляется с участием следующих скриптов:
/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).
При переключении между приложениями так же происходит проверка необходимости смены ориентации экрана для для активируемого приложения
-> если приложение существует в конфигурационном файле, ему задаётся указанная ориентация экрана, автоматический поворот экрана блокируется
...
Для обычных системных приложений
- В конфигурационный файл /etc/xdg/plasmamobilerc в секцию APPORIENTATION (возможно её придётся создать) требуется добавить имя приложения в системе и указать ориентацию из таблицы.
- Запустить приложение, проверить что ориентация изменилась, а автоповорот заблокировался.
- Произвести переключение между несколькими приложениям в разных ориентациях (в том числе не заблокированных).
...
Для приложений waydroid
- В конфигурационный файл /etc/xdg/plasmamobilerc в секцию APPORIENTATION (возможно её придётся создать) требуется добавить параметр WaydroidDefaultOrientation=# для всех приложений waydroid по умолчанию;
- В конфигурационный файл /etc/xdg/plasmamobilerc в секцию APPORIENTATION требуется добавить имена нескольких приложений waydroid (см команду waydroid app list) с разной ориентацией;
- Произвести запуск указанных приложений (ВНИМАНИЕ! Приложения с разной ориентацией (за исключением зеркальной) одновременно работать не будут!).
...