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

Commit f95ea862 authored by Beverly Tai's avatar Beverly Tai
Browse files

Revert "Don't request focus on PIN's passwordView unless view is visible"

This reverts commit a72db652.
This reverts commit I4388975fe231e23d8263ccddd5d5c2c4e881e110.

Reason for revert: Performance regression / punting bug

Bug: 417307529
Flag: com.android.systemui.bouncer_lifecycle_fix

Change-Id: I5f1f71e12e9c1dba9806f1543726ea9833c3424c
parent 6f826d37
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -17,13 +17,11 @@
package com.android.keyguard;

import static com.android.internal.widget.flags.Flags.FLAG_HIDE_LAST_CHAR_WITH_PHYSICAL_INPUT;
import static com.android.systemui.Flags.FLAG_BOUNCER_LIFECYCLE_FIX;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.when;
@@ -144,22 +142,11 @@ public class KeyguardPinBasedInputViewControllerTest extends SysuiTestCase {
    }

    @Test
    @EnableFlags(FLAG_BOUNCER_LIFECYCLE_FIX)
    public void onResume_requestsFocus() {
        when(mPinBasedInputView.isVisibleToUser()).thenReturn(true);
        mKeyguardPinViewController.onResume(KeyguardSecurityView.SCREEN_ON);
        verify(mPasswordEntry).requestFocus();
    }

    @Test
    @EnableFlags(FLAG_BOUNCER_LIFECYCLE_FIX)
    public void onResume_doesNotRequestFocusIfNotVisible() {
        when(mPinBasedInputView.isVisibleToUser()).thenReturn(false);
        mKeyguardPinViewController.onResume(KeyguardSecurityView.SCREEN_ON);
        verify(mPasswordEntry, never()).requestFocus();
    }

    @Test
    public void testGetInitialMessageResId() {
        assertThat(mKeyguardPinViewController.getInitialMessageResId()).isNotEqualTo(0);
    }
+3 −7
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import static com.android.keyguard.KeyguardSecurityView.PROMPT_REASON_RESTART_FO
import static com.android.keyguard.KeyguardSecurityView.PROMPT_REASON_TIMEOUT;
import static com.android.keyguard.KeyguardSecurityView.PROMPT_REASON_TRUSTAGENT_EXPIRED;
import static com.android.keyguard.KeyguardSecurityView.PROMPT_REASON_USER_REQUEST;
import static com.android.systemui.Flags.bouncerLifecycleFix;
import static com.android.systemui.Flags.pinInputFieldStyledFocusState;

import android.animation.Animator;
@@ -80,8 +79,7 @@ public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView
    protected void setPasswordEntryEnabled(boolean enabled) {
        mPasswordEntry.setEnabled(enabled);
        mOkButton.setEnabled(enabled);
        if (enabled && !mPasswordEntry.hasFocus()
                && (!bouncerLifecycleFix() || isVisibleToUser())) {
        if (enabled && !mPasswordEntry.hasFocus()) {
            mPasswordEntry.requestFocus();
        }
    }
@@ -90,7 +88,7 @@ public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView
    protected void setPasswordEntryInputEnabled(boolean enabled) {
        mPasswordEntry.setEnabled(enabled);
        mOkButton.setEnabled(enabled);
        if (enabled && (!bouncerLifecycleFix() || isVisibleToUser())) {
        if (enabled) {
            mPasswordEntry.requestFocus();
        }
    }
@@ -203,9 +201,7 @@ public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView
        mButtons[8] = findViewById(R.id.key8);
        mButtons[9] = findViewById(R.id.key9);

        if ((!bouncerLifecycleFix() || isVisibleToUser())) {
        mPasswordEntry.requestFocus();
        }
        super.onFinishInflate();
        reloadColors();
    }
+0 −7
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.keyguard;
import static android.view.accessibility.AccessibilityEvent.TYPE_VIEW_FOCUSED;

import static com.android.internal.widget.flags.Flags.hideLastCharWithPhysicalInput;
import static com.android.systemui.Flags.bouncerLifecycleFix;
import static com.android.systemui.Flags.pinInputFieldStyledFocusState;
import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow;

@@ -263,12 +262,6 @@ public abstract class KeyguardPinBasedInputViewController<T extends KeyguardPinB
    @Override
    public void onResume(int reason) {
        super.onResume(reason);

        if (bouncerLifecycleFix() && !mView.isVisibleToUser()) {
            // don't request focus if view isn't visible
            return;
        }

        // It's possible to reach a state here where mPasswordEntry believes it is focused
        // but it is not actually focused. This state will prevent the view from gaining focus,
        // as requestFocus will no-op since the focus flag is already set. By clearing focus first,