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.KeyguardPasswordView
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_password_view"
26    android:orientation="vertical"
27    android:layout_width="match_parent"
28    android:layout_height="match_parent"
29    android:layout_gravity="center_horizontal|bottom"
30    android:gravity="bottom">
31
32    <!-- Layout here is visually identical to the previous keyguard_password_view.
33         I.E., 'constraints here effectively the same as the previous linear layout' -->
34    <androidx.constraintlayout.motion.widget.MotionLayout
35        android:id="@+id/password_container"
36        android:layout_width="match_parent"
37        android:layout_height="match_parent"
38        android:maxWidth="@dimen/keyguard_security_width"
39        android:layout_gravity="center_horizontal"
40        android:clipChildren="false"
41        android:clipToPadding="false"
42        android:layoutDirection="ltr"
43        android:orientation="vertical"
44        androidprv:layoutDescription="@xml/keyguard_password_scene">
45
46        <!-- Guideline need to align password right of centre,
47        when on small screen landscape layout -->
48        <androidx.constraintlayout.widget.Guideline
49            android:id="@+id/password_center_guideline"
50            android:layout_width="wrap_content"
51            android:layout_height="wrap_content"
52            android:orientation="vertical"
53            androidprv:layout_constraintGuide_percent="0.5" />
54
55        <LinearLayout
56            android:id="@+id/keyguard_bouncer_message_container"
57            android:layout_width="match_parent"
58            android:layout_height="wrap_content"
59            android:clipChildren="false"
60            android:clipToPadding="false"
61            android:layoutDirection="ltr"
62            android:orientation="vertical"
63            androidprv:layout_constraintTop_toTopOf="parent">
64
65            <include layout="@layout/keyguard_bouncer_message_area" />
66
67            <com.android.systemui.bouncer.ui.BouncerMessageView
68                android:id="@+id/bouncer_message_view"
69                android:importantForAccessibility="noHideDescendants"
70                android:layout_width="match_parent"
71                android:layout_height="wrap_content"
72                android:orientation="vertical" />
73
74        </LinearLayout>
75
76        <FrameLayout
77            android:id="@+id/passwordEntry_container"
78            android:layout_width="280dp"
79            android:layout_height="wrap_content"
80            android:layout_gravity="center_horizontal"
81            android:theme="?attr/passwordStyle"
82            androidprv:layout_constraintBottom_toTopOf="@+id/keyguard_selector_fade_container"
83            androidprv:layout_constraintEnd_toEndOf="parent"
84            androidprv:layout_constraintHorizontal_bias="0.5"
85            androidprv:layout_constraintStart_toStartOf="parent"
86            androidprv:layout_constraintTop_toBottomOf="@+id/keyguard_bouncer_message_container"
87            androidprv:layout_constraintVertical_bias="0.7777">
88
89            <EditText
90                android:id="@+id/passwordEntry"
91                android:layout_width="match_parent"
92                android:layout_height="wrap_content"
93                android:contentDescription="@string/keyguard_accessibility_password"
94                android:gravity="center_horizontal"
95                android:layout_gravity="center"
96                android:imeOptions="flagForceAscii|actionDone"
97                android:inputType="textPassword"
98                android:maxLength="500"
99                android:singleLine="true"
100                android:textAppearance="?android:attr/textAppearanceMedium"
101                android:textCursorDrawable="@null"
102                android:textSize="16sp"
103                android:textStyle="normal" />
104
105            <ImageView
106                android:id="@+id/switch_ime_button"
107                android:layout_width="wrap_content"
108                android:layout_height="wrap_content"
109                android:layout_gravity="end|center_vertical"
110                android:layout_marginBottom="12dp"
111                android:background="?android:attr/selectableItemBackground"
112                android:clickable="true"
113                android:contentDescription="@string/accessibility_ime_switch_button"
114                android:padding="8dip"
115                android:src="@drawable/ic_lockscreen_ime"
116                android:tint="?android:attr/textColorPrimary"
117                android:visibility="gone" />
118        </FrameLayout>
119
120        <include
121            android:id="@+id/keyguard_selector_fade_container"
122            layout="@layout/keyguard_eca"
123            android:layout_width="match_parent"
124            android:layout_height="wrap_content"
125            android:layout_marginBottom="12dp"
126            android:orientation="vertical"
127            androidprv:layout_constraintBottom_toBottomOf="parent" />
128
129    </androidx.constraintlayout.motion.widget.MotionLayout>
130
131</com.android.keyguard.KeyguardPasswordView>
132