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