1<?xml version="1.0" encoding="utf-8"?>
2<!--
3**
4** Copyright 2023, The Android Open Source Project
5**
6** Licensed under the Apache License, Version 2.0 (the "License")
7** you may not use this file except in compliance with the License.
8** You may obtain a copy of the License at
9**
10**     http://www.apache.org/licenses/LICENSE-2.0
11**
12** Unless required by applicable law or agreed to in writing, software
13** distributed under the License is distributed on an "AS IS" BASIS,
14** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15** See the License for the specific language governing permissions and
16** limitations under the License.
17*/
18-->
19
20<!-- This file is needed when flag lockscreen.enable_landscape is on
21     Required for landscape lockscreen on small screens. -->
22<com.android.keyguard.KeyguardPatternView
23    xmlns:android="http://schemas.android.com/apk/res/android"
24    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
25    android:id="@+id/keyguard_pattern_view"
26    android:layout_width="match_parent"
27    android:layout_height="match_parent"
28    android:layout_gravity="center_horizontal|bottom"
29    android:clipChildren="false"
30    android:clipToPadding="false"
31    android:orientation="vertical">
32
33    <!-- Layout here is visually identical to the previous keyguard_pattern_view.
34             I.E., 'constraints here effectively the same as the previous linear layout' -->
35    <androidx.constraintlayout.motion.widget.MotionLayout
36        android:id="@+id/pattern_container"
37        android:layout_width="match_parent"
38        android:layout_height="match_parent"
39        android:layout_gravity="center_horizontal"
40        android:clipChildren="false"
41        android:clipToPadding="false"
42        android:layoutDirection="ltr"
43        android:orientation="vertical"
44        android:maxWidth = "@dimen/biometric_auth_pattern_view_max_size"
45        androidprv:layoutDescription="@xml/keyguard_pattern_scene">
46
47        <!-- Guideline need to align pattern right of centre,
48        when on small screen landscape layout -->
49        <androidx.constraintlayout.widget.Guideline
50            android:id="@+id/pattern_center_guideline"
51            android:layout_width="wrap_content"
52            android:layout_height="wrap_content"
53            android:orientation="vertical"
54            androidprv:layout_constraintGuide_percent="0.5" />
55
56        <LinearLayout
57            android:id="@+id/keyguard_bouncer_message_container"
58            android:layout_width="match_parent"
59            android:layout_height="wrap_content"
60            android:clipChildren="false"
61            android:clipToPadding="false"
62            android:layoutDirection="ltr"
63            android:orientation="vertical"
64            androidprv:layout_constraintTop_toTopOf="parent">
65
66            <include layout="@layout/keyguard_bouncer_message_area" />
67
68            <com.android.systemui.bouncer.ui.BouncerMessageView
69                android:id="@+id/bouncer_message_view"
70                android:importantForAccessibility="noHideDescendants"
71                android:layout_width="match_parent"
72                android:layout_height="wrap_content"
73                android:orientation="vertical" />
74
75        </LinearLayout>
76
77        <androidx.constraintlayout.widget.Guideline
78            android:id="@+id/pattern_top_guideline"
79            android:layout_width="wrap_content"
80            android:layout_height="wrap_content"
81            android:orientation="horizontal"
82            androidprv:layout_constraintGuide_percent="0" />
83
84        <com.android.internal.widget.LockPatternView
85            android:id="@+id/lockPatternView"
86            android:layout_width="0dp"
87            android:layout_height="0dp"
88            android:layout_marginBottom="8dp"
89            android:focusable="false"
90            androidprv:layout_constraintVertical_bias="1.0"
91            androidprv:layout_constraintDimensionRatio="1.0"
92            androidprv:layout_constraintStart_toStartOf="parent"
93            androidprv:layout_constraintBottom_toTopOf="@+id/keyguard_selector_fade_container"
94            androidprv:layout_constraintEnd_toEndOf="parent"
95            androidprv:layout_constraintVertical_chainStyle="packed"
96            androidprv:layout_constraintTop_toBottomOf="@id/pattern_top_guideline"/>
97
98        <include
99            android:id="@+id/keyguard_selector_fade_container"
100            layout="@layout/keyguard_eca"
101            android:layout_width="match_parent"
102            android:layout_height="wrap_content"
103            android:layout_marginBottom="@dimen/keyguard_eca_bottom_margin"
104            android:layout_marginTop="@dimen/keyguard_eca_top_margin"
105            android:orientation="vertical"
106            androidprv:layout_constraintBottom_toBottomOf="parent"
107            androidprv:layout_constraintTop_toBottomOf="@+id/lockPatternView" />
108
109    </androidx.constraintlayout.motion.widget.MotionLayout>
110
111</com.android.keyguard.KeyguardPatternView>
112