Merge "Fix talkback doesn't speak subtext info" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-05-21 08:08:44 +00:00
committed by Android (Google) Code Review
3 changed files with 28 additions and 6 deletions

View File

@@ -19,6 +19,7 @@ package com.android.settings.applications.manageapplications;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -37,9 +38,8 @@ import com.android.settingslib.applications.ApplicationsState.AppEntry;
public class ApplicationViewHolder extends RecyclerView.ViewHolder {
private final TextView mAppName;
private final ImageView mAppIcon;
@VisibleForTesting
final TextView mAppName;
@VisibleForTesting
final TextView mSummary;
@VisibleForTesting
@@ -49,6 +49,8 @@ public class ApplicationViewHolder extends RecyclerView.ViewHolder {
@VisibleForTesting
final Switch mSwitch;
private final ImageView mAppIcon;
ApplicationViewHolder(View itemView) {
super(itemView);
mAppName = itemView.findViewById(android.R.id.title);
@@ -95,11 +97,16 @@ public class ApplicationViewHolder extends RecyclerView.ViewHolder {
itemView.setEnabled(isEnabled);
}
void setTitle(CharSequence title) {
void setTitle(CharSequence title, CharSequence contentDescription) {
if (title == null) {
return;
}
mAppName.setText(title);
if (TextUtils.isEmpty(contentDescription)) {
return;
}
mAppName.setContentDescription(contentDescription);
}
void setIcon(int drawableRes) {

View File

@@ -1422,9 +1422,8 @@ public class ManageApplications extends InstrumentedFragment
// Bind the data efficiently with the holder
final ApplicationsState.AppEntry entry = mEntries.get(position);
synchronized (entry) {
holder.setTitle(entry.label);
mState.ensureLabelDescription(entry);
holder.itemView.setContentDescription(entry.labelDescription);
holder.setTitle(entry.label, entry.labelDescription);
mState.ensureIcon(entry);
holder.setIcon(entry.icon);
updateSummary(holder, entry);

View File

@@ -69,6 +69,22 @@ public class ApplicationViewHolderTest {
assertThat(mHolder.mSummary.getText()).isEqualTo(mContext.getText(R.string.disabled));
}
@Test
public void setTitle_titleIsNotEmptyAndContentIsNotEmpty_shouldSetTitleAndContentDescription() {
mHolder.setTitle("title", "content");
assertThat(mHolder.mAppName).isEqualTo("title");
assertThat(mHolder.mAppName.getContentDescription()).isEqualTo("content");
}
@Test
public void setTitle_titleIsNotEmptyButContentIsEmpty_shouldSetTitle() {
mHolder.setTitle("title", "");
assertThat(mHolder.mAppName).isEqualTo("title");
assertThat(mHolder.mAppName.getContentDescription()).isEqualTo("title");
}
@Test
public void updateSize() {
final String invalidStr = "invalid";