Fix rotate device at face unlock detailed page, device will display
redundant face unlock header.

1. Change the FaceSettings theme style to avoid an action bar
appearing.
2. In AndroidManifest.xml to apply configChanges attribute for
handling device orientation.

Bug: 262497152

Test: manually to do reproduced steps:
Pre-Condition:
1. enroll face
2. enable auto rotate

Procedure:
1.go to settings > security > face & fingerprint unlock
2.enter screen lock
3.click face unlock
4.rotate device into landscape mode and then back to portrait mode
5.check the UI

Test: make RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings
.biometrics.face.FaceSettingsActivityTest"

Change-Id: I4ee1bb4f061ea2d141043405213ba6e60bacd92f
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 3f58e1e..d9e1735 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -657,6 +657,7 @@
         <activity android:name="Settings$FaceSettingsActivity"
             android:label="@string/security_settings_face_preference_title"
             android:exported="true"
+            android:configChanges="orientation|screenSize"
             android:icon="@drawable/ic_face_header">
             <intent-filter>
                 <action android:name="android.settings.FACE_SETTINGS" />
@@ -672,6 +673,7 @@
                   android:label="@string/security_settings_face_preference_title"
                   android:exported="false"
                   android:icon="@drawable/ic_face_header"
+                  android:configChanges="orientation|screenSize"
                   android:taskAffinity="com.android.settings.root">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.biometrics.face.FaceSettings" />
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 990f18a..5b2b983 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -52,9 +52,26 @@
     public static class AssistGestureSettingsActivity extends SettingsActivity { /* empty */}
     public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ }
     public static class CreateShortcutActivity extends SettingsActivity { /* empty */ }
-    public static class FaceSettingsActivity extends SettingsActivity { /* empty */ }
+    public static class FaceSettingsActivity extends SettingsActivity {
+        @Override
+        protected void onCreate(Bundle savedState) {
+            setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+            setTheme(R.style.SettingsPreferenceTheme_SetupWizard);
+            ThemeHelper.trySetDynamicColor(this);
+            super.onCreate(savedState);
+        }
+    }
     /** Container for {@link FaceSettings} to use with a pre-defined task affinity. */
-    public static class FaceSettingsInternalActivity extends SettingsActivity { /* empty */ }
+    public static class FaceSettingsInternalActivity extends SettingsActivity {
+        @Override
+        protected void onCreate(Bundle savedState) {
+            setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+            setTheme(R.style.SettingsPreferenceTheme_SetupWizard);
+            ThemeHelper.trySetDynamicColor(this);
+            super.onCreate(savedState);
+        }
+    }
+
     public static class FingerprintSettingsActivity extends SettingsActivity { /* empty */ }
     public static class CombinedBiometricSettingsActivity extends SettingsActivity { /* empty */ }
     public static class CombinedBiometricProfileSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsActivityTest.java b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsActivityTest.java
new file mode 100644
index 0000000..2a95f4c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsActivityTest.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2023 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
+ */
+
+package com.android.settings.biometrics.face;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+
+import android.content.res.Resources;
+import android.os.Bundle;
+
+import com.android.settings.Settings;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.android.controller.ActivityController;
+
+@RunWith(RobolectricTestRunner.class)
+public class FaceSettingsActivityTest {
+
+    private static final String APPLIED_SETUP_WIZARD_THEME = "SettingsPreferenceTheme.SetupWizard";
+
+    private Settings.FaceSettingsActivity mActivity;
+    private Resources.Theme mTheme;
+
+    @Before
+    public void setUp() {
+        FakeFeatureFactory.setupForTest();
+        mActivity = spy(Settings.FaceSettingsActivity.class);
+    }
+
+    @Test
+    public void verifyFaceSettingsActivity_shouldAppliedSetupWizardTheme() {
+        createActivity();
+
+        assertThat(isThemeApplied(APPLIED_SETUP_WIZARD_THEME)).isTrue();
+    }
+
+    private boolean isThemeApplied(String themeName) {
+        final String [] appliedThemes =  mTheme.getTheme();
+        for (String theme : appliedThemes) {
+            if (theme.contains(themeName)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private void createActivity() {
+        ActivityController.of(mActivity).create(new Bundle());
+        mTheme = mActivity.getTheme();
+    }
+}