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

Commit a4cc6311 authored by Raphael Kim's avatar Raphael Kim
Browse files

[CDM][A11y] Fix talkback behavior for CDM device discovery dialog.

 * As new devices were found, the entire list was updated, which caused Talkback to get repeatedly interrupted while announcing device names. Only updating the newly added devices fixes this issue.
 * Adding accessibility live region to timeout messages allows status message to be automatically announced upon status update.

Bug: 396047983
Bug: 396314903
Test: Manually tested
Flag: EXEMPT bug fix
Change-Id: I32f6e6d75813db8593ed3f079e4a827746f9d9eb
parent 3035ebc0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:visibility="gone"
                        android:accessibilityLiveRegion="polite"
                        style="@style/TimeoutMessage" />

                    <androidx.recyclerview.widget.RecyclerView
+4 −1
Original line number Diff line number Diff line
@@ -339,7 +339,7 @@ public class CompanionAssociationActivity extends FragmentActivity implements
    private void onDiscoveryStateChanged(DiscoveryState newState) {
        switch (newState) {
            case IN_PROGRESS: {
                mTimeoutMessage.setText(null);
                mTimeoutMessage.setVisibility(View.GONE);
                mProgressBar.setIndeterminate(true);
                break;
            }
@@ -351,6 +351,7 @@ public class CompanionAssociationActivity extends FragmentActivity implements
                        R.string.message_discovery_soft_timeout,
                        deviceType, discoveryType, profile);
                mTimeoutMessage.setText(message);
                mTimeoutMessage.setVisibility(View.VISIBLE);
                break;
            }
            case FINISHED_STOPPED: {
@@ -363,6 +364,7 @@ public class CompanionAssociationActivity extends FragmentActivity implements
                        }
                    }
                    mTimeoutMessage.setText(getString(R.string.message_discovery_hard_timeout));
                    mTimeoutMessage.setVisibility(View.VISIBLE);
                }
                mProgressBar.setIndeterminate(false);
                break;
@@ -528,6 +530,7 @@ public class CompanionAssociationActivity extends FragmentActivity implements
        mVendorHeader.setVisibility(View.VISIBLE);
        mProfileIcon.setVisibility(View.GONE);
        mDeviceListRecyclerView.setVisibility(View.GONE);
        mTimeoutMessage.setVisibility(View.GONE);
        mProgressBar.setVisibility(View.GONE);
        mBorderBottom.setVisibility(View.GONE);
    }
+1 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ class DeviceListAdapter extends RecyclerView.Adapter<DeviceListAdapter.ViewHolde

    void setDevices(List<DeviceFilterPair<?>> devices) {
        mDevices = devices;
        notifyDataSetChanged();
        notifyItemRangeInserted(devices.size(), mDevices.size());
    }

    static class ViewHolder extends RecyclerView.ViewHolder {