Add a reverse landscape layout for UDFPS
Bug: 181614043 Test: visual verified 1) Settings -> Security -> Fingerprint 2) Follow the setup flow to find sensor page and enrolling page 3) Rotate your device and see if fingerprint icon is overlapping with the title. Change-Id: Ia1202e9688f2472c8063287164f4fc8f479cdae9
This commit is contained in:
		
							
								
								
									
										95
									
								
								res/layout-land/udfps_enroll_enrolling_land.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								res/layout-land/udfps_enroll_enrolling_land.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,95 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<!--
 | 
			
		||||
  Copyright (C) 2021 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.
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
<com.google.android.setupdesign.GlifLayout
 | 
			
		||||
    xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
    android:id="@+id/setup_wizard_layout"
 | 
			
		||||
    android:layout_width="match_parent"
 | 
			
		||||
    android:layout_height="match_parent"
 | 
			
		||||
    android:layout="@layout/sud_glif_blank_template"
 | 
			
		||||
    style="?attr/fingerprint_layout_theme">
 | 
			
		||||
 | 
			
		||||
    <LinearLayout
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="match_parent"
 | 
			
		||||
        android:orientation="horizontal"
 | 
			
		||||
        android:clipToPadding="false"
 | 
			
		||||
        android:clipChildren="false">
 | 
			
		||||
 | 
			
		||||
        <!-- Both texts are kept as separate text views so it doesn't jump around in portrait.
 | 
			
		||||
            See layouts/fingerprint_enroll_enrolling_base.xml. -->
 | 
			
		||||
        <LinearLayout
 | 
			
		||||
            android:layout_width="0dp"
 | 
			
		||||
            android:layout_weight="1"
 | 
			
		||||
            android:layout_height="match_parent"
 | 
			
		||||
            android:layout_marginStart="?attr/sudMarginStart"
 | 
			
		||||
            android:layout_marginBottom="@dimen/sud_content_frame_padding_bottom"
 | 
			
		||||
            android:clipChildren="false"
 | 
			
		||||
            android:clipToPadding="false"
 | 
			
		||||
            android:orientation="vertical">
 | 
			
		||||
 | 
			
		||||
            <ScrollView
 | 
			
		||||
                android:layout_width="match_parent"
 | 
			
		||||
                android:layout_height="match_parent"
 | 
			
		||||
                android:clipChildren="false"
 | 
			
		||||
                android:clipToPadding="false"
 | 
			
		||||
                android:fillViewport="true">
 | 
			
		||||
 | 
			
		||||
                <LinearLayout
 | 
			
		||||
                    android:layout_width="match_parent"
 | 
			
		||||
                    android:layout_height="wrap_content"
 | 
			
		||||
                    android:orientation="vertical"
 | 
			
		||||
                    android:clipChildren="false"
 | 
			
		||||
                    android:clipToPadding="false">
 | 
			
		||||
 | 
			
		||||
                    <ImageView
 | 
			
		||||
                        android:id="@+id/sud_layout_icon"
 | 
			
		||||
                        style="@style/SudGlifIcon"
 | 
			
		||||
                        android:layout_width="wrap_content"
 | 
			
		||||
                        android:layout_height="wrap_content"
 | 
			
		||||
                        android:layout_gravity="?attr/sudGlifHeaderGravity"
 | 
			
		||||
                        android:layout_marginStart="0dp"
 | 
			
		||||
                        android:layout_marginEnd="0dp"
 | 
			
		||||
                        android:src="@drawable/ic_fingerprint_header" />
 | 
			
		||||
 | 
			
		||||
                    <TextView
 | 
			
		||||
                        android:id="@+id/suc_layout_title"
 | 
			
		||||
                        style="@style/SudGlifHeaderTitle"
 | 
			
		||||
                        android:layout_width="match_parent"
 | 
			
		||||
                        android:layout_height="wrap_content"
 | 
			
		||||
                        android:layout_marginStart="0dp"
 | 
			
		||||
                        android:layout_marginEnd="0dp" />
 | 
			
		||||
 | 
			
		||||
                    <TextView
 | 
			
		||||
                        style="@style/SudDescription.Glif"
 | 
			
		||||
                        android:id="@+id/sud_layout_subtitle"
 | 
			
		||||
                        android:layout_width="match_parent"
 | 
			
		||||
                        android:layout_height="wrap_content"/>
 | 
			
		||||
 | 
			
		||||
                    <Space
 | 
			
		||||
                        android:layout_width="0dp"
 | 
			
		||||
                        android:layout_height="0dp"
 | 
			
		||||
                        android:layout_weight="1" />
 | 
			
		||||
 | 
			
		||||
                </LinearLayout>
 | 
			
		||||
 | 
			
		||||
            </ScrollView>
 | 
			
		||||
 | 
			
		||||
        </LinearLayout>
 | 
			
		||||
 | 
			
		||||
    </LinearLayout>
 | 
			
		||||
</com.google.android.setupdesign.GlifLayout>
 | 
			
		||||
							
								
								
									
										94
									
								
								res/layout-land/udfps_enroll_find_sensor_land.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								res/layout-land/udfps_enroll_find_sensor_land.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,94 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<!--
 | 
			
		||||
  Copyright (C) 2021 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.
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
<com.google.android.setupdesign.GlifLayout
 | 
			
		||||
    xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
    android:id="@+id/setup_wizard_layout"
 | 
			
		||||
    android:layout_width="match_parent"
 | 
			
		||||
    android:layout_height="match_parent"
 | 
			
		||||
    android:layout="@layout/sud_glif_blank_template"
 | 
			
		||||
    style="?attr/fingerprint_layout_theme">
 | 
			
		||||
 | 
			
		||||
    <LinearLayout
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="match_parent"
 | 
			
		||||
        android:orientation="horizontal"
 | 
			
		||||
        android:clipToPadding="false"
 | 
			
		||||
        android:clipChildren="false">
 | 
			
		||||
 | 
			
		||||
        <LinearLayout
 | 
			
		||||
            android:layout_width="0dp"
 | 
			
		||||
            android:layout_weight="1"
 | 
			
		||||
            android:layout_height="match_parent"
 | 
			
		||||
            android:layout_marginStart="?attr/sudMarginStart"
 | 
			
		||||
            android:layout_marginBottom="@dimen/sud_content_frame_padding_bottom"
 | 
			
		||||
            android:clipChildren="false"
 | 
			
		||||
            android:clipToPadding="false"
 | 
			
		||||
            android:orientation="vertical">
 | 
			
		||||
 | 
			
		||||
            <ScrollView
 | 
			
		||||
                android:layout_width="match_parent"
 | 
			
		||||
                android:layout_height="match_parent"
 | 
			
		||||
                android:clipChildren="false"
 | 
			
		||||
                android:clipToPadding="false"
 | 
			
		||||
                android:fillViewport="true">
 | 
			
		||||
 | 
			
		||||
                <LinearLayout
 | 
			
		||||
                    android:layout_width="match_parent"
 | 
			
		||||
                    android:layout_height="wrap_content"
 | 
			
		||||
                    android:orientation="vertical"
 | 
			
		||||
                    android:clipChildren="false"
 | 
			
		||||
                    android:clipToPadding="false">
 | 
			
		||||
 | 
			
		||||
                    <ImageView
 | 
			
		||||
                        android:id="@+id/sud_layout_icon"
 | 
			
		||||
                        style="@style/SudGlifIcon"
 | 
			
		||||
                        android:layout_width="wrap_content"
 | 
			
		||||
                        android:layout_height="wrap_content"
 | 
			
		||||
                        android:layout_gravity="?attr/sudGlifHeaderGravity"
 | 
			
		||||
                        android:layout_marginStart="0dp"
 | 
			
		||||
                        android:layout_marginEnd="0dp"
 | 
			
		||||
                        android:src="@drawable/ic_fingerprint_header" />
 | 
			
		||||
 | 
			
		||||
                    <TextView
 | 
			
		||||
                        android:id="@+id/suc_layout_title"
 | 
			
		||||
                        style="@style/SudGlifHeaderTitle"
 | 
			
		||||
                        android:layout_width="match_parent"
 | 
			
		||||
                        android:layout_height="wrap_content"
 | 
			
		||||
                        android:layout_marginStart="0dp"
 | 
			
		||||
                        android:layout_marginEnd="0dp" />
 | 
			
		||||
 | 
			
		||||
                    <TextView
 | 
			
		||||
                        android:id="@+id/sud_layout_subtitle"
 | 
			
		||||
                        style="@style/SudDescription.Glif"
 | 
			
		||||
                        android:layout_width="match_parent"
 | 
			
		||||
                        android:layout_height="wrap_content"/>
 | 
			
		||||
 | 
			
		||||
                    <Space
 | 
			
		||||
                        android:layout_width="0dp"
 | 
			
		||||
                        android:layout_height="0dp"
 | 
			
		||||
                        android:layout_weight="1" />
 | 
			
		||||
 | 
			
		||||
                </LinearLayout>
 | 
			
		||||
 | 
			
		||||
            </ScrollView>
 | 
			
		||||
 | 
			
		||||
        </LinearLayout>
 | 
			
		||||
 | 
			
		||||
    </LinearLayout>
 | 
			
		||||
 | 
			
		||||
</com.google.android.setupdesign.GlifLayout>
 | 
			
		||||
@@ -24,6 +24,7 @@ import android.content.Intent;
 | 
			
		||||
import android.content.IntentSender;
 | 
			
		||||
import android.os.storage.StorageManager;
 | 
			
		||||
import android.util.Log;
 | 
			
		||||
import android.view.Surface;
 | 
			
		||||
 | 
			
		||||
import androidx.annotation.NonNull;
 | 
			
		||||
import androidx.annotation.Nullable;
 | 
			
		||||
@@ -241,4 +242,14 @@ public class BiometricUtils {
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns {@code true} if the screen is going into a landscape mode and the angle is equal to
 | 
			
		||||
     * 270.
 | 
			
		||||
     * @param context Context that we use to get the display this context is associated with
 | 
			
		||||
     * @return True if the angle of the rotation is equal to 270.
 | 
			
		||||
     */
 | 
			
		||||
    public static boolean isReverseLandscape(@NonNull Context context) {
 | 
			
		||||
        return context.getDisplay().getRotation() == Surface.ROTATION_270;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -47,6 +47,7 @@ import androidx.appcompat.app.AlertDialog;
 | 
			
		||||
import com.android.settings.R;
 | 
			
		||||
import com.android.settings.biometrics.BiometricEnrollSidecar;
 | 
			
		||||
import com.android.settings.biometrics.BiometricErrorDialog;
 | 
			
		||||
import com.android.settings.biometrics.BiometricUtils;
 | 
			
		||||
import com.android.settings.biometrics.BiometricsEnrollEnrolling;
 | 
			
		||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 | 
			
		||||
 | 
			
		||||
@@ -98,6 +99,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
 | 
			
		||||
    private boolean mCanAssumeUdfps;
 | 
			
		||||
    @Nullable private ProgressBar mProgressBar;
 | 
			
		||||
    private ObjectAnimator mProgressAnim;
 | 
			
		||||
    private TextView mDescriptionText;
 | 
			
		||||
    private TextView mErrorText;
 | 
			
		||||
    private Interpolator mFastOutSlowInInterpolator;
 | 
			
		||||
    private Interpolator mLinearOutSlowInInterpolator;
 | 
			
		||||
@@ -145,7 +147,11 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
 | 
			
		||||
        mCanAssumeUdfps = props.size() == 1 && props.get(0).isAnyUdfpsType();
 | 
			
		||||
 | 
			
		||||
        if (mCanAssumeUdfps) {
 | 
			
		||||
            if (BiometricUtils.isReverseLandscape(getApplicationContext())) {
 | 
			
		||||
                setContentView(R.layout.udfps_enroll_enrolling_land);
 | 
			
		||||
            } else {
 | 
			
		||||
                setContentView(R.layout.udfps_enroll_enrolling);
 | 
			
		||||
            }
 | 
			
		||||
            setDescriptionText(R.string.security_settings_udfps_enroll_start_message);
 | 
			
		||||
        } else {
 | 
			
		||||
            setContentView(R.layout.fingerprint_enroll_enrolling);
 | 
			
		||||
 
 | 
			
		||||
@@ -112,8 +112,12 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase {
 | 
			
		||||
 | 
			
		||||
    protected int getContentView() {
 | 
			
		||||
        if (mCanAssumeUdfps) {
 | 
			
		||||
            if (BiometricUtils.isReverseLandscape(getApplicationContext())) {
 | 
			
		||||
                return R.layout.udfps_enroll_find_sensor_land;
 | 
			
		||||
            } else {
 | 
			
		||||
                return R.layout.udfps_enroll_find_sensor_layout;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return R.layout.fingerprint_enroll_find_sensor;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user