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

Commit 39175b2f authored by lbill's avatar lbill
Browse files

Do not override SUW Glif theme when onApplyThemeResource() callback

1. Accodring to settings & setupdesign lib theme architecture
Only force apply sytle SetupWizardPartnerResource for current
activity/contextThemeWrapper is sufficient, override GlifV3Theme
again will cause incorrect resource mapping of private attributes.

2. Set Theme_AlertDialog style for AlertDialog in for Material design
- FingerprintEnrollEnrolling
- FingerprintEnrollFindSensor

3. Add test for AlertDialog theme, and fix broken test cases

Fixes: 245684949
Bug: 249789759
Bug: 248994476
Test: manual in SUW `adb shell cmd uimode night yes` and check visual
Test: manual in SUW enrolling check timeout dialog apply theme
Test: manual in SUW enroll UDFPS tips lottie view showing expectedly
Test: manual in SUW enroll UDFPS landscape showing correct layout
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      SetupFingerprintEnrollFindSensorTest
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      FingerprintEnrollEnrollingTest
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      FingerprintEnrollFindSensorTest
Change-Id: I17cbf26e38318e6681ba124d23bf86317a0f1e1d
parent 995dbc4f
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -64,7 +64,6 @@ 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;
@@ -216,9 +215,8 @@ 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);
        super.onApplyThemeResource(theme, resid, first);
    }

    @Override
@@ -1062,7 +1060,8 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
                    R.style.Theme_AlertDialog);
            builder.setTitle(R.string.security_settings_fingerprint_enroll_touch_dialog_title)
                    .setMessage(R.string.security_settings_fingerprint_enroll_touch_dialog_message)
                    .setPositiveButton(R.string.security_settings_fingerprint_enroll_dialog_ok,
+1 −3
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ 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;
@@ -215,9 +214,8 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements

    @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);
        super.onApplyThemeResource(theme, resid, first);
    }

    protected int getContentView() {
+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())
            return new AlertDialog.Builder(getActivity(), R.style.Theme_AlertDialog)
                    .setTitle(R.string.setup_fingerprint_enroll_skip_title)
                    .setPositiveButton(R.string.skip_anyway_button_label, this)
                    .setNegativeButton(R.string.go_back_button_label, this)
+6 −3
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ public class FingerprintEnrollEnrollingTest {

    @Mock private Display mMockDisplay;

    @Mock private Resources.Theme mTheme;
    private Resources.Theme mTheme;

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

@@ -242,7 +242,8 @@ public class FingerprintEnrollEnrollingTest {

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

        verify(mTheme).applyStyle(R.style.SetupWizardPartnerResource, true);
        final String appliedThemes = mTheme.toString();
        assertThat(appliedThemes.contains("SetupWizardPartnerResource")).isTrue();
    }

    @Test
@@ -251,7 +252,8 @@ public class FingerprintEnrollEnrollingTest {

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

        verify(mTheme).applyStyle(R.style.SetupWizardPartnerResource, true);
        final String appliedThemes = mTheme.toString();
        assertThat(appliedThemes.contains("SetupWizardPartnerResource")).isTrue();
    }

    private void initializeActivityFor(int sensorType) {
@@ -291,6 +293,7 @@ public class FingerprintEnrollEnrollingTest {
        }

        ActivityController.of(mActivity).create(savedInstanceState);
        mTheme = mActivity.getTheme();
    }

    private EnrollmentCallback verifyAndCaptureEnrollmentCallback() {
+4 −3
Original line number Diff line number Diff line
@@ -89,7 +89,6 @@ public class FingerprintEnrollFindSensorTest {
    @Mock
    private FingerprintManager mFingerprintManager;

    @Mock
    private Resources.Theme mTheme;

    private ActivityController<FingerprintEnrollFindSensor> mActivityController;
@@ -104,6 +103,7 @@ public class FingerprintEnrollFindSensorTest {
                        .putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, new byte[0])
        );
        mActivity = mActivityController.get();
        mTheme = mActivity.getTheme();
    }

    @Before
@@ -560,9 +560,10 @@ public class FingerprintEnrollFindSensorTest {
        setupActivity_onSfpsDevice();
        verifySidecar_onRearOrSfpsDevice();

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

        verify(mTheme).applyStyle(R.style.SetupWizardPartnerResource, true);
        final String appliedThemes = mTheme.toString();
        assertThat(appliedThemes.contains("SetupWizardPartnerResource")).isTrue();
    }

    private void triggerEnrollProgressAndError_onRearDevice() {
Loading