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

Commit 1b8e7128 authored by Andreas Miko's avatar Andreas Miko Committed by Android (Google) Code Review
Browse files

Merge "Add setting to disable PIN animation and password" into udc-dev

parents 25acb563 12ca3f46
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -170,6 +170,8 @@ public class LockPatternUtils {
    private static final String LOCK_SCREEN_OWNER_INFO_ENABLED =
            Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED;

    private static final String LOCK_PIN_ENHANCED_PRIVACY = "pin_enhanced_privacy";

    private static final String LOCK_SCREEN_DEVICE_OWNER_INFO = "lockscreen.device_owner_info";

    private static final String ENABLED_TRUST_AGENTS = "lockscreen.enabledtrustagents";
@@ -1036,6 +1038,27 @@ public class LockPatternUtils {
        return getString(Settings.Secure.LOCK_PATTERN_VISIBLE, userId) != null;
    }

    /**
     * @return Whether enhanced pin privacy is enabled.
     */
    public boolean isPinEnhancedPrivacyEnabled(int userId) {
        return getBoolean(LOCK_PIN_ENHANCED_PRIVACY, false, userId);
    }

    /**
     * Set whether enhanced pin privacy is enabled.
     */
    public void setPinEnhancedPrivacyEnabled(boolean enabled, int userId) {
        setBoolean(LOCK_PIN_ENHANCED_PRIVACY, enabled, userId);
    }

    /**
     * @return Whether enhanced pin privacy was ever chosen.
     */
    public boolean isPinEnhancedPrivacyEverChosen(int userId) {
        return getString(LOCK_PIN_ENHANCED_PRIVACY, userId) != null;
    }

    /**
     * Set whether the visible password is enabled for cryptkeeper screen.
     */
+9 −0
Original line number Diff line number Diff line
@@ -182,6 +182,8 @@ public class SettingsBackupAgent extends BackupAgentHelper {
            "visible_pattern_enabled";
    private static final String KEY_LOCK_SETTINGS_POWER_BUTTON_INSTANTLY_LOCKS =
            "power_button_instantly_locks";
    private static final String KEY_LOCK_SETTINGS_PIN_ENHANCED_PRIVACY =
            "pin_enhanced_privacy";

    // Name of the temporary file we use during full backup/restore.  This is
    // stored in the full-backup tarfile as well, so should not be changed.
@@ -709,6 +711,10 @@ public class SettingsBackupAgent extends BackupAgentHelper {
                out.writeUTF(KEY_LOCK_SETTINGS_POWER_BUTTON_INSTANTLY_LOCKS);
                out.writeUTF(powerButtonInstantlyLocks ? "1" : "0");
            }
            if (lockPatternUtils.isPinEnhancedPrivacyEverChosen(userId)) {
                out.writeUTF(KEY_LOCK_SETTINGS_PIN_ENHANCED_PRIVACY);
                out.writeUTF(lockPatternUtils.isPinEnhancedPrivacyEnabled(userId) ? "1" : "0");
            }
            // End marker
            out.writeUTF("");
            out.flush();
@@ -961,6 +967,9 @@ public class SettingsBackupAgent extends BackupAgentHelper {
                    case KEY_LOCK_SETTINGS_POWER_BUTTON_INSTANTLY_LOCKS:
                        lockPatternUtils.setPowerButtonInstantlyLocks("1".equals(value), userId);
                        break;
                    case KEY_LOCK_SETTINGS_PIN_ENHANCED_PRIVACY:
                        lockPatternUtils.setPinEnhancedPrivacyEnabled("1".equals(value), userId);
                        break;
                }
            }
            in.close();
+1 −1
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ import java.util.Map;
public abstract class KeyguardAbsKeyInputViewController<T extends KeyguardAbsKeyInputView>
        extends KeyguardInputViewController<T> {
    private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    private final LockPatternUtils mLockPatternUtils;
    protected final LockPatternUtils mLockPatternUtils;
    private final LatencyTracker mLatencyTracker;
    private final FalsingCollector mFalsingCollector;
    private final EmergencyButtonController mEmergencyButtonController;
+9 −8
Original line number Diff line number Diff line
@@ -71,6 +71,9 @@ public abstract class KeyguardPinBasedInputViewController<T extends KeyguardPinB
    protected void onViewAttached() {
        super.onViewAttached();

        boolean showAnimations = !mLockPatternUtils
                .isPinEnhancedPrivacyEnabled(KeyguardUpdateMonitor.getCurrentUser());
        mPasswordEntry.setShowPassword(showAnimations);
        for (NumPadKey button : mView.getButtons()) {
            button.setOnTouchListener((v, event) -> {
                if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
@@ -78,6 +81,7 @@ public abstract class KeyguardPinBasedInputViewController<T extends KeyguardPinB
                }
                return false;
            });
            button.setAnimationEnabled(showAnimations);
        }
        mPasswordEntry.setOnKeyListener(mOnKeyListener);
        mPasswordEntry.setUserActivityListener(this::onUserInput);
@@ -102,13 +106,10 @@ public abstract class KeyguardPinBasedInputViewController<T extends KeyguardPinB
        View okButton = mView.findViewById(R.id.key_enter);
        if (okButton != null) {
            okButton.setOnTouchListener(mActionButtonTouchListener);
            okButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
            okButton.setOnClickListener(v -> {
                if (mPasswordEntry.isEnabled()) {
                    verifyPasswordAndUnlock();
                }
                }
            });
            okButton.setOnHoverListener(mLiftToActivateListener);
        }
+10 −2
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ public class NumPadKey extends ViewGroup implements NumPadAnimationListener {
    private int mDigit = -1;
    private int mTextViewResId;
    private PasswordTextView mTextView;
    private boolean mAnimationsEnabled = true;

    @Nullable
    private NumPadAnimator mAnimator;
@@ -164,11 +165,11 @@ public class NumPadKey extends ViewGroup implements NumPadAnimationListener {
        switch(event.getActionMasked()) {
            case MotionEvent.ACTION_DOWN:
                doHapticKeyClick();
                if (mAnimator != null) mAnimator.expand();
                if (mAnimator != null && mAnimationsEnabled) mAnimator.expand();
                break;
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_CANCEL:
                if (mAnimator != null) mAnimator.contract();
                if (mAnimator != null && mAnimationsEnabled) mAnimator.contract();
                break;
        }
        return super.onTouchEvent(event);
@@ -228,4 +229,11 @@ public class NumPadKey extends ViewGroup implements NumPadAnimationListener {
            mAnimator.setProgress(progress);
        }
    }

    /**
     * Controls the animation when a key is pressed
     */
    public void setAnimationEnabled(boolean enabled) {
        mAnimationsEnabled = enabled;
    }
}
Loading