Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd269d08 authored by lbill's avatar lbill
Browse files

Apply dark light theme for enrollment activities

Override onApplyThemeResource() and apply SetupWizardPartnerResource
to make the dark light theme activate.

Theme change scope:
1) FingerprintEnrollEnrolling
2) FingerprintEnrollFindSensor
3) SetupFingerprintEnrollEnrolling
4) SetupFingerprintEnrollFindSensor

Bug: 245684949
Test: manual in SUW `adb shell cmd uimode night yes` and check visual
Test: manual in SUW enrolling check timeout dialog apply theme
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      SetupFingerprintEnrollFindSensorTest
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      FingerprintEnrollEnrollingTest
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      FingerprintEnrollFindSensorTest
Change-Id: I16f1070612e3e27546e6aa004fc4cdd3d7947191
parent 74a748ec
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.drawable.Animatable2;
@@ -63,6 +64,7 @@ import androidx.appcompat.app.AlertDialog;

import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.SetupWizardUtils;
import com.android.settings.biometrics.BiometricEnrollSidecar;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.biometrics.BiometricsEnrollEnrolling;
@@ -212,6 +214,13 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
        }
    }

    @Override
    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
        final int newResid = SetupWizardUtils.getTheme(this, getIntent());
        theme.applyStyle(R.style.SetupWizardPartnerResource, true);
        super.onApplyThemeResource(theme, newResid, first);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
+9 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.biometrics.fingerprint;

import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.content.res.Resources;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
import android.os.Bundle;
@@ -31,6 +32,7 @@ import android.view.accessibility.AccessibilityManager;
import androidx.annotation.Nullable;

import com.android.settings.R;
import com.android.settings.SetupWizardUtils;
import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.BiometricEnrollSidecar;
@@ -211,6 +213,13 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
        super.onBackPressed();
    }

    @Override
    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
        final int newResid = SetupWizardUtils.getTheme(this, getIntent());
        theme.applyStyle(R.style.SetupWizardPartnerResource, true);
        super.onApplyThemeResource(theme, newResid, first);
    }

    protected int getContentView() {
        if (mCanAssumeUdfps) {
            return R.layout.udfps_enroll_find_sensor_layout;
+1 −1
Original line number Diff line number Diff line
@@ -77,7 +77,7 @@ public class SetupFingerprintEnrollFindSensor extends FingerprintEnrollFindSenso

        @NonNull
        public AlertDialog.Builder onCreateDialogBuilder() {
            return new AlertDialog.Builder(getActivity(), R.style.GlifV2ThemeAlertDialog)
            return new AlertDialog.Builder(getActivity())
                    .setTitle(R.string.setup_fingerprint_enroll_skip_title)
                    .setPositiveButton(R.string.skip_anyway_button_label, this)
                    .setNegativeButton(R.string.go_back_button_label, this)
+25 −3
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.biometrics.fingerprint;

import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;

import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.KEY_STATE_PREVIOUS_ROTATION;
import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.SFPS_STAGE_NO_ANIMATION;
@@ -37,6 +38,7 @@ import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.hardware.biometrics.ComponentInfoInternal;
import android.hardware.biometrics.SensorProperties;
import android.hardware.fingerprint.FingerprintManager;
@@ -84,6 +86,8 @@ public class FingerprintEnrollEnrollingTest {

    @Mock private Display mMockDisplay;

    @Mock private Resources.Theme mTheme;

    private final int[] mSfpsStageThresholds = new int[]{0, 9, 13, 19, 25};

    private FingerprintEnrollEnrolling mActivity;
@@ -110,7 +114,7 @@ public class FingerprintEnrollEnrollingTest {

    @Test
    public void fingerprintUdfpsEnrollSuccessProgress_shouldNotVibrate() {
        initializeActivityFor(FingerprintSensorProperties.TYPE_UDFPS_OPTICAL);
        initializeActivityFor(TYPE_UDFPS_OPTICAL);

        mActivity.onEnrollmentProgressChange(1, 1);

@@ -128,7 +132,7 @@ public class FingerprintEnrollEnrollingTest {

    @Test
    public void fingerprintUdfpsOverlayEnrollment_gainFocus_shouldNotCancel() {
        initializeActivityFor(FingerprintSensorProperties.TYPE_UDFPS_OPTICAL);
        initializeActivityFor(TYPE_UDFPS_OPTICAL);

        mActivity.onEnrollmentProgressChange(1, 1);
        mActivity.onWindowFocusChanged(true);
@@ -138,7 +142,7 @@ public class FingerprintEnrollEnrollingTest {

    @Test
    public void fingerprintUdfpsOverlayEnrollment_loseFocus_shouldCancel() {
        initializeActivityFor(FingerprintSensorProperties.TYPE_UDFPS_OPTICAL);
        initializeActivityFor(TYPE_UDFPS_OPTICAL);

        mActivity.onEnrollmentProgressChange(1, 1);
        mActivity.onWindowFocusChanged(false);
@@ -232,6 +236,24 @@ public class FingerprintEnrollEnrollingTest {
        verify(mActivity, never()).onCancelEnrollment(anyInt());
    }

    @Test
    public void fingerprintUdfpsEnroll_activityApplyDarkLightStyle() {
        initializeActivityFor(TYPE_UDFPS_OPTICAL);

        mActivity.onApplyThemeResource(mTheme, R.style.GlifTheme, true /* first */);

        verify(mTheme).applyStyle(R.style.SetupWizardPartnerResource, true);
    }

    @Test
    public void fingerprintSfpsEnroll_activityApplyDarkLightStyle() {
        initializeActivityFor(TYPE_POWER_BUTTON);

        mActivity.onApplyThemeResource(mTheme, R.style.GlifTheme, true /* first */);

        verify(mTheme).applyStyle(R.style.SetupWizardPartnerResource, true);
    }

    private void initializeActivityFor(int sensorType) {
        final List<ComponentInfoInternal> componentInfo = new ArrayList<>();
        final FingerprintSensorPropertiesInternal prop =
+23 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.settings.biometrics.fingerprint;

import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_REAR;
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;

@@ -38,6 +39,7 @@ import android.annotation.NonNull;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.res.Resources;
import android.hardware.biometrics.ComponentInfoInternal;
import android.hardware.biometrics.SensorProperties;
import android.hardware.fingerprint.FingerprintManager;
@@ -87,6 +89,9 @@ public class FingerprintEnrollFindSensorTest {
    @Mock
    private FingerprintManager mFingerprintManager;

    @Mock
    private Resources.Theme mTheme;

    private ActivityController<FingerprintEnrollFindSensor> mActivityController;

    private FingerprintEnrollFindSensor mActivity;
@@ -125,6 +130,14 @@ public class FingerprintEnrollFindSensorTest {
        mActivityController.setup();
    }

    private void setupActivity_onSfpsDevice() {
        final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
        props.add(newFingerprintSensorPropertiesInternal(TYPE_POWER_BUTTON));
        doReturn(props).when(mFingerprintManager).getSensorPropertiesInternal();

        mActivityController.setup();
    }

    private FingerprintSensorPropertiesInternal newFingerprintSensorPropertiesInternal(
            @FingerprintSensorProperties.SensorType int sensorType) {
        return new FingerprintSensorPropertiesInternal(
@@ -542,6 +555,16 @@ public class FingerprintEnrollFindSensorTest {
        gotEnrollingResult_recreateActivityAndVerifyResultThenForward(RESULT_TIMEOUT, bundle);
    }

    @Test
    public void fingerprintEnrollFindSensor_activityApplyDarkLightStyle() {
        setupActivity_onSfpsDevice();
        verifySidecar_onRearOrSfpsDevice();

        mActivity.onApplyThemeResource(mActivity.getTheme(), R.style.GlifTheme, true /* first */);

        verify(mTheme).applyStyle(R.style.SetupWizardPartnerResource, true);
    }

    private void triggerEnrollProgressAndError_onRearDevice() {
        EnrollmentCallback enrollmentCallback = verifyAndCaptureEnrollmentCallback();
        enrollmentCallback.onEnrollmentProgress(123);
Loading