Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ce1ddff authored by chaviw's avatar chaviw
Browse files

Added WindowMagnification for Accessibility in System UI

Added support for window magnification as an accessibility feature. The
UI can either be dragged to a new a location or arrow controls can move
the window around.

Test: adb shell settings put secure window_magnification 1
Bug: 136250281
Change-Id: If3098df098f2a1b88b2170e773dccc8f86946abf
parent df155220
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -8415,6 +8415,12 @@ public final class Settings {
         */
        public static final String PEOPLE_STRIP = "people_strip";
        /**
         * Controls if window magnification is enabled.
         * @hide
         */
        public static final String WINDOW_MAGNIFICATION = "window_magnification";
        /**
         * Keys we no longer back up under the current schema, but want to continue to
         * process when restoring historical backup datasets.
+2 −1
Original line number Diff line number Diff line
@@ -734,7 +734,8 @@ public class SettingsBackupTest {
                 Settings.Secure.DOZE_WAKE_LOCK_SCREEN_GESTURE,
                 Settings.Secure.DOZE_WAKE_DISPLAY_GESTURE,
                 Settings.Secure.FACE_UNLOCK_RE_ENROLL,
                 Settings.Secure.TAP_GESTURE);
                 Settings.Secure.TAP_GESTURE,
                 Settings.Secure.WINDOW_MAGNIFICATION);

    @Test
    public void systemSettingsBackedUpOrBlacklisted() {
+22 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
    Copyright (C) 2019 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->

<vector android:height="96dp" android:viewportHeight="24"
    android:viewportWidth="24" android:width="96dp" xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="#757575" android:pathData="M15.54,5.54L13.77,7.3 12,5.54 10.23,7.3 8.46,5.54 12,2zM18.46,15.54l-1.76,-1.77L18.46,12l-1.76,-1.77 1.76,-1.77L22,12zM8.46,18.46l1.77,-1.76L12,18.46l1.77,-1.76 1.77,1.76L12,22zM5.54,8.46l1.76,1.77L5.54,12l1.76,1.77 -1.76,1.77L2,12z"/>
    <path android:fillColor="#757575" android:pathData="M12,12m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"/>
</vector>
+65 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2019 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="@dimen/magnification_controls_size"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_height="@dimen/magnification_controls_size"
    android:gravity="center">

  <RelativeLayout
      android:layout_width="wrap_content"
      android:layout_height="wrap_content">

    <ImageView
        android:focusable="true"
        android:id="@+id/controller"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_control_magnification_grey" />

    <View
        android:id="@+id/left_control"
        android:layout_width="@dimen/magnifier_left_right_controls_width"
        android:layout_height="@dimen/magnifier_left_right_controls_height"
        android:layout_alignLeft="@+id/controller"
        android:layout_centerVertical="true" />

    <View
        android:id="@+id/up_control"
        android:layout_width="@dimen/magnifier_up_down_controls_width"
        android:layout_height="@dimen/magnifier_up_down_controls_height"
        android:layout_alignTop="@+id/controller"
        android:layout_centerHorizontal="true" />

    <View
        android:id="@+id/right_control"
        android:layout_width="@dimen/magnifier_left_right_controls_width"
        android:layout_height="@dimen/magnifier_left_right_controls_height"
        android:layout_alignRight="@+id/controller"
        android:layout_centerVertical="true" />

    <View
        android:id="@+id/down_control"
        android:layout_width="@dimen/magnifier_up_down_controls_width"
        android:layout_height="@dimen/magnifier_up_down_controls_height"
        android:layout_alignBottom="@+id/controller"
        android:layout_centerHorizontal="true" />
  </RelativeLayout>

</FrameLayout>
+71 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2019 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <SurfaceView
        android:layout_marginStart="@dimen/magnification_border_size"
        android:layout_marginTop="@dimen/magnification_border_size"
        android:id="@+id/surface_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <View
            android:id="@+id/left_handle"
            android:layout_width="@dimen/magnification_border_size"
            android:layout_height="match_parent"
            android:layout_above="@+id/drag_handle"
            android:background="@color/magnification_border_color" />

        <View
            android:id="@+id/top_handle"
            android:layout_width="match_parent"
            android:layout_height="@dimen/magnification_border_size"
            android:background="@color/magnification_border_color" />

        <View
            android:id="@+id/right_handle"
            android:layout_width="@dimen/magnification_border_size"
            android:layout_height="match_parent"
            android:layout_above="@+id/drag_handle"
            android:layout_alignParentEnd="true"
            android:background="@color/magnification_border_color" />

        <View
            android:id="@+id/bottom_handle"
            android:layout_width="match_parent"
            android:layout_height="@dimen/magnification_border_size"
            android:layout_above="@+id/drag_handle"
            android:background="@color/magnification_border_color" />

        <View
            android:id="@+id/drag_handle"
            android:layout_width="@dimen/magnification_drag_view_width"
            android:layout_height="@dimen/magnification_drag_view_height"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:background="@color/magnification_border_color" />

    </RelativeLayout>
</FrameLayout>
 No newline at end of file
Loading