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

Commit d334ebb5 authored by lbill's avatar lbill
Browse files

Fix disruptive announcement on PIN/Password set up

- Do not invoke deprecated announceForAccessibility()
- Define corresponding content description for PIN & Password

Flag: EXEMPT for a11y bug fixinig
Bug: 384607370
Test: Enabled Talkback, Setup Screen Lock PIN/Password,
ensure the "Password is now set up" for set up password, and
the "PIN is now set up" announced without disruptive announcement

Change-Id: I97c2c7fd8824468fccca8526c4e61ce642fd62ac
parent 35e725d4
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -13903,6 +13903,9 @@
    <!-- Content description for setting password complete-->
    <string name="accessibility_setup_password_complete">Password is now set up</string>
    <!-- Content description for setting PIN complete-->
    <string name="accessibility_setup_pin_complete">PIN is now set up</string>
    <!-- Authority of the content provider that support methods restartPhoneProcess and restartRild. Will be overlaid by OEM.-->
    <string name="reset_telephony_stack_content_provider_authority" translatable="false"></string>
+15 −5
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import static android.app.admin.DevicePolicyResources.Strings.Settings.REENTER_W
import static android.app.admin.DevicePolicyResources.Strings.Settings.SET_WORK_PROFILE_PASSWORD_HEADER;
import static android.app.admin.DevicePolicyResources.Strings.Settings.SET_WORK_PROFILE_PIN_HEADER;
import static android.app.admin.DevicePolicyResources.UNDEFINED;
import static android.view.View.ACCESSIBILITY_LIVE_REGION_ASSERTIVE;
import static android.view.View.ACCESSIBILITY_LIVE_REGION_POLITE;

import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_NONE;
@@ -70,6 +71,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityManager;
import android.view.inputmethod.EditorInfo;
import android.widget.CheckBox;
import android.widget.ImeAwareEditText;
@@ -1126,6 +1128,19 @@ public class ChooseLockPassword extends SettingsActivity {

            mPasswordEntry.setText("");

            final AccessibilityManager accessibilityManager =
                    (AccessibilityManager) getActivity().getSystemService(
                            Context.ACCESSIBILITY_SERVICE);

            if (accessibilityManager.isEnabled()) {
                if (mPasswordEntry != null) {
                    mPasswordEntry.setAccessibilityLiveRegion(ACCESSIBILITY_LIVE_REGION_ASSERTIVE);
                    mPasswordEntry.setStateDescription(
                            mIsAlphaMode ? getString(R.string.accessibility_setup_password_complete)
                                    : getString(R.string.accessibility_setup_pin_complete));
                }
            }

            if (!wasSecureBefore) {
                Intent intent = getRedactionInterstitialIntent(getActivity());
                if (intent != null) {
@@ -1133,11 +1148,6 @@ public class ChooseLockPassword extends SettingsActivity {
                }
            }

            if (mLayout != null) {
                mLayout.announceForAccessibility(
                        getString(R.string.accessibility_setup_password_complete));
            }

            getActivity().finish();
        }

+5 −9
Original line number Diff line number Diff line
@@ -743,10 +743,11 @@ public class ChooseLockPattern extends SettingsActivity {
            // header text, footer text, visibility and
            // enabled state all known from the stage
            if (stage == Stage.ChoiceTooShort) {
                layout.setDescriptionText(
                        getResources().getString(
                final String desc = getResources().getString(
                        stage.headerMessage,
                                LockPatternUtils.MIN_LOCK_PATTERN_SIZE));
                        LockPatternUtils.MIN_LOCK_PATTERN_SIZE);
                layout.setDescriptionText(desc);
                layout.setContentDescription(desc);
            } else {
                layout.setDescriptionText(stage.headerMessage);
            }
@@ -887,11 +888,6 @@ public class ChooseLockPattern extends SettingsActivity {
                }
            }

            if (mSudContent != null) {
                mSudContent.announceForAccessibility(
                        getString(R.string.accessibility_setup_password_complete));
            }

            getActivity().finish();
        }