OSDN Git Service

Migrating to new footer button for fingerprint and face enrolling pages.
authorpastychang <pastychang@google.com>
Tue, 18 Dec 2018 02:53:34 +0000 (10:53 +0800)
committerpastychang <pastychang@google.com>
Wed, 19 Dec 2018 15:24:48 +0000 (23:24 +0800)
Bug: 120805516
Test: RunSettingsRoboTests
Change-Id: I89a5e3674b8ba9ec66945c03c9b783664eee214f

36 files changed:
res/layout-land/fingerprint_enroll_finish.xml
res/layout/face_enroll_enrolling.xml
res/layout/face_enroll_enrolling_footer.xml [deleted file]
res/layout/face_enroll_finish.xml
res/layout/face_enroll_finish_footer.xml [deleted file]
res/layout/face_enroll_introduction.xml
res/layout/face_enroll_introduction_footer.xml [deleted file]
res/layout/fingerprint_enroll_enrolling_base.xml
res/layout/fingerprint_enroll_enrolling_base_footer.xml [deleted file]
res/layout/fingerprint_enroll_find_sensor_base.xml
res/layout/fingerprint_enroll_find_sensor_base_footer.xml [deleted file]
res/layout/fingerprint_enroll_finish_base.xml
res/layout/fingerprint_enroll_finish_base_footer.xml [deleted file]
res/layout/fingerprint_enroll_introduction.xml
res/layout/fingerprint_enroll_introduction_footer.xml [deleted file]
src/com/android/settings/biometrics/BiometricEnrollBase.java
src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java
src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java
src/com/android/settings/biometrics/face/FaceEnrollFinish.java
src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
src/com/android/settings/biometrics/fingerprint/FingerprintSuggestionActivity.java
src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java
src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFinish.java
src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java
tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml
tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensorTest.java
tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSuggestionActivityTest.java
tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensorTest.java
tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinishTest.java
tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroductionTest.java

index 1187c20..97a4de2 100644 (file)
                     android:layout_height="wrap_content"
                     android:text="@string/security_settings_fingerprint_enroll_finish_message"/>
 
-                <Space
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    android:layout_weight="1" />
-
-                <com.google.android.setupdesign.view.ButtonBarLayout
-                    style="@style/SuwGlifButtonBar.Stackable"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="8dp"
-                    android:clipChildren="false"
-                    android:clipToPadding="false">
-
-                    <Button
-                        style="@style/SetupWizardButton.Negative"
-                        android:id="@+id/add_another_button"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_marginEnd="8dp"
-                        android:text="@string/fingerprint_enroll_button_add" />
-
-                    <Space
-                        android:layout_width="0dp"
-                        android:layout_height="0dp"
-                        android:layout_weight="1" />
-
-                    <Button
-                        style="@style/SetupWizardButton.Positive"
-                        android:id="@+id/next_button"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/security_settings_fingerprint_enroll_done" />
-
-                </com.google.android.setupdesign.view.ButtonBarLayout>
-
             </LinearLayout>
 
             <com.google.android.setupdesign.view.FillContentLayout
index e596ff9..7aef9b6 100644 (file)
@@ -21,8 +21,7 @@
     android:id="@+id/setup_wizard_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    style="?attr/face_layout_theme"
-    app:sucFooter="@layout/face_enroll_enrolling_footer">
+    style="?attr/face_layout_theme">
 
     <LinearLayout
         style="@style/SuwContentFrame"
diff --git a/res/layout/face_enroll_enrolling_footer.xml b/res/layout/face_enroll_enrolling_footer.xml
deleted file mode 100644 (file)
index e3c5872..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2018 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
-  -->
-
-<!-- TODO: Use aapt:attr when it is fixed (b/36809755) -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/SuwGlifButtonBar"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <Button
-        style="@style/SuwGlifButton.Secondary"
-        android:id="@+id/skip_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/security_settings_face_enroll_enrolling_skip" />
-
-</LinearLayout>
index 6b3e6ab..df46098 100644 (file)
@@ -21,8 +21,7 @@
     android:id="@+id/setup_wizard_layout"
     style="?attr/face_layout_theme"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:sucFooter="@layout/face_enroll_finish_footer">
+    android:layout_height="match_parent">
 
     <LinearLayout
         style="@style/SuwContentFrame"
diff --git a/res/layout/face_enroll_finish_footer.xml b/res/layout/face_enroll_finish_footer.xml
deleted file mode 100644 (file)
index b33cde7..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2018 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
-  -->
-
-<!-- TODO: Use aapt:attr when it is fixed (b/36809755) -->
-<com.google.android.setupdesign.view.ButtonBarLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/SuwGlifButtonBar.Stackable"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <Space
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_weight="1" />
-
-    <Button
-        style="@style/SuwGlifButton.Primary"
-        android:id="@+id/next_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/security_settings_face_enroll_done" />
-
-</com.google.android.setupdesign.view.ButtonBarLayout>
index 025c239..df3cf72 100644 (file)
@@ -22,8 +22,7 @@
     style="?attr/face_layout_theme"
     android:id="@+id/setup_wizard_layout"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:sucFooter="@layout/face_enroll_introduction_footer">
+    android:layout_height="match_parent">
 
     <LinearLayout
         style="@style/SuwContentFrame"
diff --git a/res/layout/face_enroll_introduction_footer.xml b/res/layout/face_enroll_introduction_footer.xml
deleted file mode 100644 (file)
index 15993f0..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2018 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
-  -->
-
-<!-- TODO: Use aapt:attr when it is fixed (b/36809755) -->
-<com.google.android.setupdesign.view.ButtonBarLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/SuwGlifButtonBar.Stackable"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <Button
-        android:id="@+id/face_cancel_button"
-        style="@style/SuwGlifButton.Secondary"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/security_settings_face_enroll_introduction_cancel" />
-
-    <Space
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_weight="1" />
-
-    <Button
-        android:id="@+id/face_next_button"
-        style="@style/SuwGlifButton.Primary"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/wizard_next" />
-
-</com.google.android.setupdesign.view.ButtonBarLayout>
index 5a2b60f..6ca3fdc 100644 (file)
@@ -21,8 +21,7 @@
     android:id="@+id/setup_wizard_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    style="?attr/fingerprint_layout_theme"
-    app:sucFooter="@layout/fingerprint_enroll_enrolling_base_footer">
+    style="?attr/fingerprint_layout_theme">
 
     <LinearLayout
         style="@style/SuwContentFrame"
diff --git a/res/layout/fingerprint_enroll_enrolling_base_footer.xml b/res/layout/fingerprint_enroll_enrolling_base_footer.xml
deleted file mode 100644 (file)
index b4ed37e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (C) 2017 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.
--->
-
-<!-- TODO: Use aapt:attr when it is fixed (b/36809755) -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/SuwGlifButtonBar"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <Button
-        style="@style/SuwGlifButton.Secondary"
-        android:id="@+id/skip_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/security_settings_fingerprint_enroll_enrolling_skip" />
-
-</LinearLayout>
index 18941a2..56d3ea4 100644 (file)
@@ -21,8 +21,7 @@
     android:id="@+id/setup_wizard_layout"
     style="?attr/fingerprint_layout_theme"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:sucFooter="@layout/fingerprint_enroll_find_sensor_base_footer">
+    android:layout_height="match_parent">
 
     <LinearLayout
         android:layout_width="match_parent"
diff --git a/res/layout/fingerprint_enroll_find_sensor_base_footer.xml b/res/layout/fingerprint_enroll_find_sensor_base_footer.xml
deleted file mode 100644 (file)
index e93fae9..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (C) 2017 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.
--->
-
-<!-- TODO: Use aapt:attr when it is fixed (b/36809755) -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/SuwGlifButtonBar"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <Button
-        style="@style/SuwGlifButton.Secondary"
-        android:id="@+id/skip_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/skip_label" />
-
-</LinearLayout>
index 5224dab..7120d90 100644 (file)
@@ -21,8 +21,7 @@
     android:id="@+id/setup_wizard_layout"
     style="?attr/fingerprint_layout_theme"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:sucFooter="@layout/fingerprint_enroll_finish_base_footer">
+    android:layout_height="match_parent">
 
     <LinearLayout
         style="@style/SuwContentFrame"
diff --git a/res/layout/fingerprint_enroll_finish_base_footer.xml b/res/layout/fingerprint_enroll_finish_base_footer.xml
deleted file mode 100644 (file)
index 91164bd..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (C) 2017 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.
--->
-
-<!-- TODO: Use aapt:attr when it is fixed (b/36809755) -->
-<com.google.android.setupdesign.view.ButtonBarLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/SuwGlifButtonBar.Stackable"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <Button
-        style="@style/SuwGlifButton.Secondary"
-        android:id="@+id/add_another_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/fingerprint_enroll_button_add" />
-
-    <Space
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_weight="1" />
-
-    <Button
-        style="@style/SuwGlifButton.Primary"
-        android:id="@+id/next_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/security_settings_fingerprint_enroll_done" />
-
-</com.google.android.setupdesign.view.ButtonBarLayout>
index 701d94a..adb46e5 100644 (file)
@@ -21,8 +21,7 @@
     style="?attr/fingerprint_layout_theme"
     android:id="@+id/setup_wizard_layout"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:sucFooter="@layout/fingerprint_enroll_introduction_footer">
+    android:layout_height="match_parent">
 
     <LinearLayout
         style="@style/SuwContentFrame"
diff --git a/res/layout/fingerprint_enroll_introduction_footer.xml b/res/layout/fingerprint_enroll_introduction_footer.xml
deleted file mode 100644 (file)
index 47d7657..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (C) 2017 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
--->
-
-<!-- TODO: Use aapt:attr when it is fixed (b/36809755) -->
-<com.google.android.setupdesign.view.ButtonBarLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/SuwGlifButtonBar.Stackable"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <Button
-        android:id="@+id/fingerprint_cancel_button"
-        style="@style/SuwGlifButton.Secondary"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/security_settings_fingerprint_enroll_introduction_cancel" />
-
-    <Space
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_weight="1" />
-
-    <Button
-        android:id="@+id/fingerprint_next_button"
-        style="@style/SuwGlifButton.Primary"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/wizard_next" />
-
-</com.google.android.setupdesign.view.ButtonBarLayout>
index 7a06671..4b1c9bc 100644 (file)
@@ -24,7 +24,6 @@ import android.os.Bundle;
 import android.os.UserHandle;
 import android.text.TextUtils;
 import android.view.View;
-import android.widget.Button;
 import android.widget.TextView;
 
 import com.android.settings.R;
@@ -33,13 +32,14 @@ import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling;
 import com.android.settings.core.InstrumentedActivity;
 import com.android.settings.password.ChooseLockSettingsHelper;
 
+import com.google.android.setupcompat.item.FooterButton;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
 import com.google.android.setupdesign.GlifLayout;
 
 /**
  * Base activity for all biometric enrollment steps.
  */
-public abstract class BiometricEnrollBase extends InstrumentedActivity
-        implements View.OnClickListener {
+public abstract class BiometricEnrollBase extends InstrumentedActivity {
 
     public static final String EXTRA_KEY_LAUNCHED_CONFIRM = "launched_confirm_lock";
     public static final String EXTRA_KEY_REQUIRE_VISION = "accessibility_vision";
@@ -78,6 +78,7 @@ public abstract class BiometricEnrollBase extends InstrumentedActivity
     protected boolean mLaunchedConfirmLock;
     protected byte[] mToken;
     protected int mUserId;
+    protected ButtonFooterMixin mButtonFooterMixin;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -112,10 +113,6 @@ public abstract class BiometricEnrollBase extends InstrumentedActivity
 
     protected void initViews() {
         getWindow().setStatusBarColor(Color.TRANSPARENT);
-        Button nextButton = getNextButton();
-        if (nextButton != null) {
-            nextButton.setOnClickListener(this);
-        }
     }
 
     protected GlifLayout getLayout() {
@@ -139,18 +136,14 @@ public abstract class BiometricEnrollBase extends InstrumentedActivity
         setHeaderText(resId, false /* force */);
     }
 
-    protected Button getNextButton() {
-        return (Button) findViewById(R.id.next_button);
-    }
-
-    @Override
-    public void onClick(View v) {
-        if (v == getNextButton()) {
-            onNextButtonClick();
+    protected FooterButton getNextButton() {
+        if (mButtonFooterMixin != null) {
+            return mButtonFooterMixin.getPrimaryButton();
         }
+        return null;
     }
 
-    protected void onNextButtonClick() {
+    protected void onNextButtonClick(View view) {
     }
 
     protected Intent getFingerprintEnrollingIntent() {
index 8a2a8ec..0ddc1fc 100644 (file)
@@ -22,13 +22,13 @@ import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.view.View;
-import android.widget.Button;
 import android.widget.TextView;
 
 import com.android.settings.R;
 import com.android.settings.password.ChooseLockGeneric;
 import com.android.settings.password.ChooseLockSettingsHelper;
 
+import com.google.android.setupcompat.item.FooterButton;
 import com.google.android.setupdesign.span.LinkSpan;
 
 /**
@@ -70,12 +70,12 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
     /**
      * @return the cancel button
      */
-    protected abstract Button getCancelButton();
+    protected abstract FooterButton getCancelButton();
 
     /**
      * @return the next button
      */
-    protected abstract Button getNextButton();
+    protected abstract FooterButton getNextButton();
 
     /**
      * @return the error TextView
@@ -127,9 +127,6 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
             setHeaderText(getHeaderResDefault());
         }
 
-        Button cancelButton = getCancelButton();
-        cancelButton.setOnClickListener(v -> onCancelButtonClick());
-
         mErrorText = getErrorTextView();
 
         mUserManager = UserManager.get(this);
@@ -164,7 +161,7 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
     }
 
     @Override
-    protected void onNextButtonClick() {
+    protected void onNextButtonClick(View view) {
         // Lock thingy is already set up, launch directly to the next page
         launchNextEnrollingActivity(mToken);
     }
@@ -234,7 +231,7 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
         super.onActivityResult(requestCode, resultCode, data);
     }
 
-    protected void onCancelButtonClick() {
+    protected void onCancelButtonClick(View view) {
         finish();
     }
 
index 033fb4b..7ad2d17 100644 (file)
@@ -85,16 +85,9 @@ public abstract class BiometricsEnrollEnrolling extends BiometricEnrollBase
         super.onBackPressed();
     }
 
-    @Override
-    public void onClick(View v) {
-        switch (v.getId()) {
-            case R.id.skip_button:
-                setResult(RESULT_SKIP);
-                finish();
-                break;
-            default:
-                super.onClick(v);
-        }
+    protected void onSkipButtonClick(View view) {
+        setResult(RESULT_SKIP);
+        finish();
     }
 
     public void startEnrollment() {
index 990eef4..9ef04cb 100644 (file)
@@ -24,7 +24,6 @@ import android.util.Log;
 import android.view.View;
 import android.view.animation.AnimationUtils;
 import android.view.animation.Interpolator;
-import android.widget.Button;
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto;
@@ -36,6 +35,8 @@ import com.android.settings.biometrics.BiometricsEnrollEnrolling;
 
 import java.util.ArrayList;
 
+import com.google.android.setupcompat.item.FooterButton;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
 
 public class FaceEnrollEnrolling extends BiometricsEnrollEnrolling {
 
@@ -91,8 +92,15 @@ public class FaceEnrollEnrolling extends BiometricsEnrollEnrolling {
         mLinearOutSlowInInterpolator = AnimationUtils.loadInterpolator(
                 this, android.R.interpolator.linear_out_slow_in);
 
-        Button skipButton = findViewById(R.id.skip_button);
-        skipButton.setOnClickListener(this);
+        mButtonFooterMixin = getLayout().getMixin(ButtonFooterMixin.class);
+        mButtonFooterMixin.setSecondaryButton(
+                new FooterButton(
+                        this,
+                        R.string.security_settings_face_enroll_enrolling_skip,
+                        this::onSkipButtonClick,
+                        FooterButton.ButtonType.SKIP,
+                        R.style.SuwGlifButton_Secondary)
+        );
 
         if (!getIntent().getBooleanExtra(BiometricEnrollBase.EXTRA_KEY_REQUIRE_DIVERSITY, true)) {
             mDisabledFeatures.add(FaceManager.FEATURE_REQUIRE_REQUIRE_DIVERSITY);
index 7062fe3..f0ff523 100644 (file)
 package com.android.settings.biometrics.face;
 
 import android.os.Bundle;
+import android.view.View;
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.biometrics.BiometricEnrollBase;
 
+import com.google.android.setupcompat.item.FooterButton;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
+
 /**
  * Activity which concludes face enrollment.
  */
@@ -32,6 +36,16 @@ public class FaceEnrollFinish extends BiometricEnrollBase {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.face_enroll_finish);
         setHeaderText(R.string.security_settings_face_enroll_finish_title);
+
+        mButtonFooterMixin = getLayout().getMixin(ButtonFooterMixin.class);
+        mButtonFooterMixin.setPrimaryButton(
+                new FooterButton(
+                        this,
+                        R.string.security_settings_face_enroll_done,
+                        this::onNextButtonClick,
+                        FooterButton.ButtonType.NEXT,
+                        R.style.SuwGlifButton_Primary)
+        );
     }
 
     @Override
@@ -40,7 +54,7 @@ public class FaceEnrollFinish extends BiometricEnrollBase {
     }
 
     @Override
-    public void onNextButtonClick() {
+    public void onNextButtonClick(View view) {
         setResult(RESULT_FINISHED);
         finish();
     }
index e221c96..1c36ea8 100644 (file)
@@ -32,6 +32,8 @@ import com.android.settings.biometrics.BiometricEnrollIntroduction;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 
+import com.google.android.setupcompat.item.FooterButton;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
 import com.google.android.setupdesign.span.LinkSpan;
 
 public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
@@ -55,6 +57,25 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
 
         mSwitchVision = findViewById(R.id.toggle_vision);
         mSwitchDiversity = findViewById(R.id.toggle_diversity);
+
+        mButtonFooterMixin = getLayout().getMixin(ButtonFooterMixin.class);
+        mButtonFooterMixin.setSecondaryButton(
+                new FooterButton(
+                        this,
+                        R.string.security_settings_face_enroll_introduction_cancel,
+                        this::onCancelButtonClick,
+                        FooterButton.ButtonType.SKIP,
+                        R.style.SuwGlifButton_Secondary)
+        );
+
+        mButtonFooterMixin.setPrimaryButton(
+                new FooterButton(
+                        this,
+                        R.string.wizard_next,
+                        this::onNextButtonClick,
+                        FooterButton.ButtonType.NEXT,
+                        R.style.SuwGlifButton_Primary)
+        );
     }
 
     @Override
@@ -84,13 +105,19 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
     }
 
     @Override
-    protected Button getCancelButton() {
-        return findViewById(R.id.face_cancel_button);
+    protected FooterButton getCancelButton() {
+        if (mButtonFooterMixin != null) {
+            return mButtonFooterMixin.getSecondaryButton();
+        }
+        return null;
     }
 
     @Override
-    protected Button getNextButton() {
-        return findViewById(R.id.face_next_button);
+    protected FooterButton getNextButton() {
+        if (mButtonFooterMixin != null) {
+            return mButtonFooterMixin.getPrimaryButton();
+        }
+        return null;
     }
 
     @Override
index fb6a221..5953c10 100644 (file)
@@ -35,7 +35,6 @@ import android.view.MotionEvent;
 import android.view.View;
 import android.view.animation.AnimationUtils;
 import android.view.animation.Interpolator;
-import android.widget.Button;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
@@ -48,6 +47,9 @@ import com.android.settings.biometrics.BiometricErrorDialog;
 import com.android.settings.biometrics.BiometricsEnrollEnrolling;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 
+import com.google.android.setupcompat.item.FooterButton;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
+
 /**
  * Activity which handles the actual enrolling for fingerprint.
  */
@@ -135,8 +137,15 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
         mProgressBar = (ProgressBar) findViewById(R.id.fingerprint_progress_bar);
         mVibrator = getSystemService(Vibrator.class);
 
-        Button skipButton = findViewById(R.id.skip_button);
-        skipButton.setOnClickListener(this);
+        mButtonFooterMixin = getLayout().getMixin(ButtonFooterMixin.class);
+        mButtonFooterMixin.setSecondaryButton(
+                new FooterButton(
+                        this,
+                        R.string.security_settings_fingerprint_enroll_enrolling_skip,
+                        this::onSkipButtonClick,
+                        FooterButton.ButtonType.SKIP,
+                        R.style.SuwGlifButton_Secondary)
+        );
 
         final LayerDrawable fingerprintDrawable = (LayerDrawable) mProgressBar.getBackground();
         mIconAnimationDrawable = (AnimatedVectorDrawable)
index 0772c66..b8a0f40 100644 (file)
@@ -20,7 +20,6 @@ import android.content.Intent;
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.Bundle;
 import android.view.View;
-import android.widget.Button;
 
 import androidx.annotation.Nullable;
 
@@ -30,6 +29,8 @@ import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricEnrollSidecar.Listener;
 import com.android.settings.password.ChooseLockSettingsHelper;
+import com.google.android.setupcompat.item.FooterButton;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
 
 /**
  * Activity explaining the fingerprint sensor location for fingerprint enrollment.
@@ -46,8 +47,15 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(getContentView());
-        Button skipButton = findViewById(R.id.skip_button);
-        skipButton.setOnClickListener(this);
+        mButtonFooterMixin = getLayout().getMixin(ButtonFooterMixin.class);
+        mButtonFooterMixin.setSecondaryButton(
+                new FooterButton(
+                        this,
+                        R.string.skip_label,
+                        this::onSkipButtonClick,
+                        FooterButton.ButtonType.SKIP,
+                        R.style.SuwGlifButton_Secondary)
+        );
 
         setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
 
@@ -120,18 +128,7 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase {
         }
     }
 
-    @Override
-    public void onClick(View v) {
-        switch (v.getId()) {
-            case R.id.skip_button:
-                onSkipButtonClick();
-                break;
-            default:
-                super.onClick(v);
-        }
-    }
-
-    protected void onSkipButtonClick() {
+    protected void onSkipButtonClick(View view) {
         setResult(RESULT_SKIP);
         finish();
     }
index db6b5bc..76f1d1f 100644 (file)
@@ -20,13 +20,15 @@ import android.content.Intent;
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.Bundle;
 import android.view.View;
-import android.widget.Button;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricEnrollBase;
 
+import com.google.android.setupcompat.item.FooterButton;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
+
 /**
  * Activity which concludes fingerprint enrollment.
  */
@@ -39,13 +41,32 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.fingerprint_enroll_finish);
         setHeaderText(R.string.security_settings_fingerprint_enroll_finish_title);
+
+        mButtonFooterMixin = getLayout().getMixin(ButtonFooterMixin.class);
+        mButtonFooterMixin.setSecondaryButton(
+                new FooterButton(
+                        this,
+                        R.string.fingerprint_enroll_button_add,
+                        null,
+                        FooterButton.ButtonType.SKIP,
+                        R.style.SuwGlifButton_Secondary)
+        );
+
+        mButtonFooterMixin.setPrimaryButton(
+                new FooterButton(
+                        this,
+                        R.string.security_settings_fingerprint_enroll_done,
+                        this::onNextButtonClick,
+                        FooterButton.ButtonType.NEXT,
+                        R.style.SuwGlifButton_Primary)
+        );
     }
 
     @Override
     protected void onResume() {
         super.onResume();
 
-        Button addButton = (Button) findViewById(R.id.add_another_button);
+        FooterButton addButton = mButtonFooterMixin.getSecondaryButton();
 
         final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
         boolean hideAddAnother = false;
@@ -59,22 +80,18 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {
             // Don't show "Add" button if too many fingerprints already added
             addButton.setVisibility(View.INVISIBLE);
         } else {
-            addButton.setOnClickListener(this);
+            addButton.setOnClickListener(this::onAddAnotherButtonClick);
         }
     }
 
     @Override
-    protected void onNextButtonClick() {
+    protected void onNextButtonClick(View view) {
         setResult(RESULT_FINISHED);
         finish();
     }
 
-    @Override
-    public void onClick(View v) {
-        if (v.getId() == R.id.add_another_button) {
-            startActivityForResult(getFingerprintEnrollingIntent(), REQUEST_ADD_ANOTHER);
-        }
-        super.onClick(v);
+    private void onAddAnotherButtonClick(View view) {
+        startActivityForResult(getFingerprintEnrollingIntent(), REQUEST_ADD_ANOTHER);
     }
 
     @Override
index 61c67a5..4eca87d 100644 (file)
@@ -22,7 +22,6 @@ import android.content.Intent;
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.Bundle;
 import android.util.Log;
-import android.widget.Button;
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto;
@@ -33,6 +32,8 @@ import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 
+import com.google.android.setupcompat.item.FooterButton;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
 import com.google.android.setupdesign.span.LinkSpan;
 
 public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
@@ -45,6 +46,25 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mFingerprintManager = Utils.getFingerprintManagerOrNull(this);
+
+        mButtonFooterMixin = getLayout().getMixin(ButtonFooterMixin.class);
+        mButtonFooterMixin.setSecondaryButton(
+                new FooterButton(
+                        this,
+                        R.string.security_settings_face_enroll_introduction_cancel,
+                        this::onCancelButtonClick,
+                        FooterButton.ButtonType.SKIP,
+                        R.style.SuwGlifButton_Secondary)
+        );
+
+        mButtonFooterMixin.setPrimaryButton(
+                new FooterButton(
+                        this,
+                        R.string.wizard_next,
+                        this::onNextButtonClick,
+                        FooterButton.ButtonType.NEXT,
+                        R.style.SuwGlifButton_Primary)
+        );
     }
 
     @Override
@@ -74,13 +94,19 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
     }
 
     @Override
-    protected Button getCancelButton() {
-        return findViewById(R.id.fingerprint_cancel_button);
+    protected FooterButton getCancelButton() {
+        if (mButtonFooterMixin != null) {
+            return mButtonFooterMixin.getSecondaryButton();
+        }
+        return null;
     }
 
     @Override
-    protected Button getNextButton() {
-        return findViewById(R.id.fingerprint_next_button);
+    protected FooterButton getNextButton() {
+        if (mButtonFooterMixin != null) {
+            return mButtonFooterMixin.getPrimaryButton();
+        }
+        return null;
     }
 
     @Override
index f5fe92b..704ed13 100644 (file)
@@ -19,19 +19,21 @@ package com.android.settings.biometrics.fingerprint;
 import android.app.admin.DevicePolicyManager;
 import android.content.Context;
 import android.hardware.fingerprint.FingerprintManager;
-import android.widget.Button;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
 
+import com.google.android.setupcompat.item.FooterButton;
+
 public class FingerprintSuggestionActivity extends SetupFingerprintEnrollIntroduction {
 
     @Override
     protected void initViews() {
         super.initViews();
 
-        final Button cancelButton = findViewById(R.id.fingerprint_cancel_button);
-        cancelButton.setText(R.string.security_settings_fingerprint_enroll_introduction_cancel);
+        final FooterButton cancelButton = getCancelButton();
+        cancelButton.setText(
+                this, R.string.security_settings_fingerprint_enroll_introduction_cancel);
     }
 
     @Override
index 8ab9252..5f1a240 100644 (file)
@@ -22,6 +22,7 @@ import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.UserHandle;
+import android.view.View;
 
 import androidx.annotation.NonNull;
 import androidx.appcompat.app.AlertDialog;
@@ -53,7 +54,7 @@ public class SetupFingerprintEnrollFindSensor extends FingerprintEnrollFindSenso
     }
 
     @Override
-    protected void onSkipButtonClick() {
+    protected void onSkipButtonClick(View view) {
         new SkipFingerprintDialog().show(getSupportFragmentManager());
     }
 
index 49eac16..6afbb84 100644 (file)
@@ -25,6 +25,8 @@ import com.android.settings.R;
 import com.android.settings.SetupWizardUtils;
 import com.android.settings.password.ChooseLockSettingsHelper;
 
+import com.google.android.setupcompat.item.FooterButton;
+
 public class SetupFingerprintEnrollFinish extends FingerprintEnrollFinish {
 
     @Override
@@ -41,8 +43,8 @@ public class SetupFingerprintEnrollFinish extends FingerprintEnrollFinish {
     @Override
     protected void initViews() {
         super.initViews();
-        Button nextButton = findViewById(R.id.next_button);
-        nextButton.setText(R.string.next_label);
+        FooterButton nextButton = getNextButton();
+        nextButton.setText(this, R.string.next_label);
     }
 
     @Override
index 08f5c7e..a74bbba 100644 (file)
@@ -23,7 +23,7 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.storage.StorageManager;
-import android.widget.Button;
+import android.view.View;
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -34,6 +34,8 @@ import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment
 import com.android.settings.password.SetupChooseLockGeneric;
 import com.android.settings.password.SetupSkipDialog;
 
+import com.google.android.setupcompat.item.FooterButton;
+
 public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntroduction {
     private static final String KEY_LOCK_SCREEN_PRESENT = "wasLockScreenPresent";
     private boolean mAlreadyHadLockScreenSetup = false;
@@ -84,13 +86,13 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu
         description.setText(
                 R.string.security_settings_fingerprint_enroll_introduction_message_setup);
 
-        Button nextButton = getNextButton();
+        FooterButton nextButton = getNextButton();
         nextButton.setText(
-                R.string.security_settings_fingerprint_enroll_introduction_continue_setup);
+                this, R.string.security_settings_fingerprint_enroll_introduction_continue_setup);
 
-        final Button cancelButton = (Button) findViewById(R.id.fingerprint_cancel_button);
+        final FooterButton cancelButton = getCancelButton();
         cancelButton.setText(
-                R.string.security_settings_fingerprint_enroll_introduction_cancel_setup);
+                this, R.string.security_settings_fingerprint_enroll_introduction_cancel_setup);
     }
 
     @Override
@@ -116,7 +118,7 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu
     }
 
     @Override
-    protected void onCancelButtonClick() {
+    protected void onCancelButtonClick(View view) {
         if (isKeyguardSecure()) {
             // If the keyguard is already set up securely (maybe the user added a backup screen
             // lock and skipped fingerprint), return RESULT_SKIP directly.
index 50e2a37..83eb781 100644 (file)
@@ -21,8 +21,7 @@
     android:id="@+id/setup_wizard_layout"
     style="?attr/fingerprint_layout_theme"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:sucFooter="@layout/fingerprint_enroll_find_sensor_base_footer">
+    android:layout_height="match_parent">
 
     <FrameLayout
         android:layout_width="match_parent"
index d6adb5c..67c03d5 100644 (file)
@@ -37,6 +37,9 @@ import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowUtils;
 
+import com.google.android.setupcompat.PartnerCustomizationLayout;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -133,8 +136,8 @@ public class FingerprintEnrollFindSensorTest {
 
     @Test
     public void clickSkip_shouldReturnResultSkip() {
-        Button skipButton = mActivity.findViewById(R.id.skip_button);
-        skipButton.performClick();
+        PartnerCustomizationLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
+        layout.getMixin(ButtonFooterMixin.class).getSecondaryButtonView().performClick();
 
         ShadowActivity shadowActivity = Shadows.shadowOf(mActivity);
         assertThat(shadowActivity.getResultCode()).named("result code")
index 76dc736..82124f9 100644 (file)
@@ -31,6 +31,9 @@ import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 
+import com.google.android.setupcompat.PartnerCustomizationLayout;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -62,7 +65,10 @@ public class FingerprintSuggestionActivityTest {
 
         mController.create().resume();
 
-        final Button cancelButton = mController.get().findViewById(R.id.fingerprint_cancel_button);
+        PartnerCustomizationLayout layout =
+                mController.get().findViewById(R.id.setup_wizard_layout);
+        final Button cancelButton =
+                layout.getMixin(ButtonFooterMixin.class).getSecondaryButtonView();
         assertThat(cancelButton.getText().toString()).isEqualTo("Cancel");
         assertThat(cancelButton.getVisibility()).named("Cancel visible").isEqualTo(View.VISIBLE);
         cancelButton.performClick();
index 7e97149..b112c8a 100644 (file)
@@ -32,6 +32,9 @@ import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
 import com.android.settings.testutils.shadow.ShadowUtils;
 
+import com.google.android.setupcompat.PartnerCustomizationLayout;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -71,8 +74,8 @@ public class SetupFingerprintEnrollFindSensorTest {
                 Robolectric.buildActivity(SetupFingerprintEnrollFindSensor.class,
                         intent).setup().get();
 
-        final Button skipButton = activity.findViewById(R.id.skip_button);
-        skipButton.performClick();
+        PartnerCustomizationLayout layout = activity.findViewById(R.id.setup_wizard_layout);
+        layout.getMixin(ButtonFooterMixin.class).getSecondaryButtonView().performClick();
 
         final AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(alertDialog).isNotNull();
index d9d9197..12bf1e2 100644 (file)
@@ -37,6 +37,9 @@ import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowStorageManager;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 
+import com.google.android.setupcompat.PartnerCustomizationLayout;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -83,7 +86,10 @@ public class SetupFingerprintEnrollIntroductionTest {
 
         mController.create().resume();
 
-        final Button skipButton = mController.get().findViewById(R.id.fingerprint_cancel_button);
+        PartnerCustomizationLayout layout =
+                mController.get().findViewById(R.id.setup_wizard_layout);
+        final Button skipButton =
+                layout.getMixin(ButtonFooterMixin.class).getSecondaryButtonView();
         assertThat(skipButton.getVisibility()).named("Skip visible").isEqualTo(View.VISIBLE);
         skipButton.performClick();
 
@@ -99,7 +105,10 @@ public class SetupFingerprintEnrollIntroductionTest {
 
         mController.create().resume();
 
-        final Button skipButton = mController.get().findViewById(R.id.fingerprint_cancel_button);
+        PartnerCustomizationLayout layout =
+                mController.get().findViewById(R.id.setup_wizard_layout);
+        final Button skipButton =
+                layout.getMixin(ButtonFooterMixin.class).getSecondaryButtonView();
         assertThat(skipButton.getVisibility()).named("Skip visible").isEqualTo(View.VISIBLE);
         skipButton.performClick();
 
@@ -141,7 +150,9 @@ public class SetupFingerprintEnrollIntroductionTest {
         getShadowKeyguardManager().setIsKeyguardSecure(false);
 
         SetupFingerprintEnrollIntroduction activity = mController.create().resume().get();
-        final Button skipButton = activity.findViewById(R.id.fingerprint_cancel_button);
+        PartnerCustomizationLayout layout = activity.findViewById(R.id.setup_wizard_layout);
+        final Button skipButton =
+                layout.getMixin(ButtonFooterMixin.class).getSecondaryButtonView();
         getShadowKeyguardManager().setIsKeyguardSecure(true);
         skipButton.performClick();
 
@@ -156,7 +167,9 @@ public class SetupFingerprintEnrollIntroductionTest {
         getShadowKeyguardManager().setIsKeyguardSecure(true);
 
         SetupFingerprintEnrollIntroduction activity = mController.create().resume().get();
-        final Button skipButton = activity.findViewById(R.id.fingerprint_cancel_button);
+        PartnerCustomizationLayout layout = activity.findViewById(R.id.setup_wizard_layout);
+        final Button skipButton =
+                layout.getMixin(ButtonFooterMixin.class).getSecondaryButtonView();
         skipButton.performClick();
 
         ShadowActivity shadowActivity = Shadows.shadowOf(activity);
@@ -199,8 +212,9 @@ public class SetupFingerprintEnrollIntroductionTest {
 
         SetupFingerprintEnrollIntroduction activity = mController.get();
 
-        final Button nextButton = activity.findViewById(R.id.fingerprint_next_button);
-        nextButton.performClick();
+        PartnerCustomizationLayout layout = activity.findViewById(R.id.setup_wizard_layout);
+        layout.getMixin(ButtonFooterMixin.class).getPrimaryButtonView().performClick();
+
 
         ShadowActivity shadowActivity = Shadows.shadowOf(activity);
         IntentForResult startedActivity = shadowActivity.getNextStartedActivityForResult();
index 3a88873..0a46403 100644 (file)
@@ -36,6 +36,9 @@ import androidx.test.runner.AndroidJUnit4;
 
 import com.android.settings.R;
 
+import com.google.android.setupcompat.PartnerCustomizationLayout;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
+
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -57,7 +60,9 @@ public class FingerprintEnrollFinishTest {
         intending(hasComponent(enrollingComponent))
                 .respondWith(new ActivityResult(Activity.RESULT_CANCELED, null));
 
-        onView(withId(R.id.add_another_button)).perform(click());
+        PartnerCustomizationLayout layout =
+                mActivityRule.getActivity().findViewById(R.id.setup_wizard_layout);
+        layout.getMixin(ButtonFooterMixin.class).getPrimaryButtonView().performClick();
 
         intended(hasComponent(enrollingComponent));
         assertFalse(mActivityRule.getActivity().isFinishing());
@@ -72,7 +77,9 @@ public class FingerprintEnrollFinishTest {
         intending(hasComponent(enrollingComponent))
                 .respondWith(new ActivityResult(Activity.RESULT_OK, null));
 
-        onView(withId(R.id.add_another_button)).perform(click());
+        PartnerCustomizationLayout layout =
+                mActivityRule.getActivity().findViewById(R.id.setup_wizard_layout);
+        layout.getMixin(ButtonFooterMixin.class).getPrimaryButtonView().performClick();
 
         intended(hasComponent(enrollingComponent));
         assertTrue(mActivityRule.getActivity().isFinishing());
index e937b7f..5078cc2 100644 (file)
@@ -32,6 +32,9 @@ import android.widget.TextView;
 
 import com.android.settings.R;
 
+import com.google.android.setupcompat.PartnerCustomizationLayout;
+import com.google.android.setupcompat.template.ButtonFooterMixin;
+
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
@@ -80,7 +83,8 @@ public class FingerprintEnrollIntroductionTest
         final TextView errorTextView = (TextView) mActivity.findViewById(R.id.error_text);
         assertNotNull(errorTextView.getText().toString());
 
-        final Button nextButton = (Button) mActivity.findViewById(R.id.fingerprint_next_button);
+        PartnerCustomizationLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
+        final Button nextButton = layout.getMixin(ButtonFooterMixin.class).getPrimaryButtonView();
         assertEquals(View.GONE, nextButton.getVisibility());
     }