[Regional Preference] Add description for checked/not checked

Bug: 288223637
Test: make RunSettingsRoboTests -j128 ROBOTEST_FILTER=LocaleListEditorTest
Change-Id: I0d1a2de93ad2911c555acef2f4e00cd715c62f17
This commit is contained in:
Zoey Chen
2023-07-31 07:25:05 +00:00
parent b042f81e34
commit 0f70d8d690
2 changed files with 68 additions and 4 deletions

View File

@@ -31,6 +31,7 @@ import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import androidx.annotation.VisibleForTesting;
import androidx.core.view.MotionEventCompat;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView;
@@ -178,17 +179,33 @@ class LocaleDragAndDropAdapter
// clear listener before setChecked() in case another item already bind to
// current ViewHolder and checked event is triggered on stale listener mistakenly.
checkbox.setOnCheckedChangeListener(null);
checkbox.setChecked(mRemoveMode ? feedItem.getChecked() : false);
boolean isChecked = mRemoveMode ? feedItem.getChecked() : false;
checkbox.setChecked(isChecked);
setCheckBoxDescription(dragCell, checkbox, isChecked);
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
LocaleStore.LocaleInfo feedItem =
(LocaleStore.LocaleInfo) dragCell.getTag();
feedItem.setChecked(isChecked);
setCheckBoxDescription(dragCell, checkbox, isChecked);
}
});
}
@VisibleForTesting
protected void setCheckBoxDescription(LocaleDragCell dragCell, CheckBox checkbox,
boolean isChecked) {
CharSequence checkedStatus = mContext.getText(
isChecked ? com.android.internal.R.string.checked
: com.android.internal.R.string.not_checked);
// Talkback
dragCell.setStateDescription(checkedStatus);
// Select to Speak
checkbox.setContentDescription(checkedStatus);
}
@Override
public int getItemCount() {
int itemCount = (null != mFeedItemList ? mFeedItemList.size() : 0);