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

Commit eef72c39 authored by alanv's avatar alanv
Browse files

Announce dynamic content changes in lock confirmation settings.

Also re-orders updateStage() and setText/Selection calls so that text
events don't flush announcements. This does not change functionality.

Bug: 7256500
Change-Id: I8b10d66e9f73c7a630a8c3c5128372e18f26234c
parent a8f3a204
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.accessibility.AccessibilityEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.TextView;
@@ -272,8 +273,15 @@ public class ChooseLockPassword extends PreferenceActivity {
        }

        protected void updateStage(Stage stage) {
            final Stage previousStage = mUiStage;
            mUiStage = stage;
            updateUi();

            // If the stage changed, announce the header for accessibility. This
            // is a no-op when accessibility is disabled.
            if (previousStage != stage) {
                mHeaderText.announceForAccessibility(mHeaderText.getText());
            }
        }

        /**
@@ -378,8 +386,8 @@ public class ChooseLockPassword extends PreferenceActivity {
                errorMsg = validatePassword(pin);
                if (errorMsg == null) {
                    mFirstPin = pin;
                    updateStage(Stage.NeedToConfirm);
                    mPasswordEntry.setText("");
                    updateStage(Stage.NeedToConfirm);
                }
            } else if (mUiStage == Stage.NeedToConfirm) {
                if (mFirstPin.equals(pin)) {
@@ -389,11 +397,11 @@ public class ChooseLockPassword extends PreferenceActivity {
                    mLockPatternUtils.saveLockPassword(pin, mRequestedQuality, isFallback);
                    getActivity().finish();
                } else {
                    updateStage(Stage.ConfirmWrong);
                    CharSequence tmp = mPasswordEntry.getText();
                    if (tmp != null) {
                        Selection.setSelection((Spannable) tmp, 0, tmp.length());
                    }
                    updateStage(Stage.ConfirmWrong);
                }
            }
            if (errorMsg != null) {
@@ -415,6 +423,7 @@ public class ChooseLockPassword extends PreferenceActivity {

        private void showError(String msg, final Stage next) {
            mHeaderText.setText(msg);
            mHeaderText.announceForAccessibility(mHeaderText.getText());
            Message mesg = mHandler.obtainMessage(MSG_SHOW_ERROR, next);
            mHandler.removeMessages(MSG_SHOW_ERROR);
            mHandler.sendMessageDelayed(mesg, ERROR_MESSAGE_TIMEOUT);
+7 −0
Original line number Diff line number Diff line
@@ -429,6 +429,7 @@ public class ChooseLockPattern extends PreferenceActivity {
         * @param stage
         */
        protected void updateStage(Stage stage) {
            final Stage previousStage = mUiStage;

            mUiStage = stage;

@@ -493,6 +494,12 @@ public class ChooseLockPattern extends PreferenceActivity {
                case ChoiceConfirmed:
                    break;
            }

            // If the stage changed, announce the header for accessibility. This
            // is a no-op when accessibility is disabled.
            if (previousStage != stage) {
                mHeaderText.announceForAccessibility(mHeaderText.getText());
            }
        }


+2 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.TextView;
@@ -173,6 +174,7 @@ public class ConfirmLockPassword extends PreferenceActivity {

        private void showError(int msg) {
            mHeaderText.setText(msg);
            mHeaderText.announceForAccessibility(mHeaderText.getText());
            mPasswordEntry.setText(null);
            mHandler.postDelayed(new Runnable() {
                public void run() {
+4 −1
Original line number Diff line number Diff line
@@ -180,7 +180,6 @@ public class ConfirmLockPattern extends PreferenceActivity {
        }

        private void updateStage(Stage stage) {

            switch (stage) {
                case NeedToUnlock:
                    if (mHeaderText != null) {
@@ -220,6 +219,10 @@ public class ConfirmLockPattern extends PreferenceActivity {
                    mLockPatternView.setEnabled(false); // appearance of being disabled
                    break;
            }

            // Always announce the header for accessibility. This is a no-op
            // when accessibility is disabled.
            mHeaderTextView.announceForAccessibility(mHeaderTextView.getText());
        }

        private Runnable mClearPatternRunnable = new Runnable() {