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