Merge "Fix talkback doesn't speak subtext info" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
10e732bd59
@@ -19,6 +19,7 @@ package com.android.settings.applications.manageapplications;
|
|||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -37,9 +38,8 @@ import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
|||||||
|
|
||||||
public class ApplicationViewHolder extends RecyclerView.ViewHolder {
|
public class ApplicationViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
private final TextView mAppName;
|
@VisibleForTesting
|
||||||
private final ImageView mAppIcon;
|
final TextView mAppName;
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final TextView mSummary;
|
final TextView mSummary;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -49,6 +49,8 @@ public class ApplicationViewHolder extends RecyclerView.ViewHolder {
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final Switch mSwitch;
|
final Switch mSwitch;
|
||||||
|
|
||||||
|
private final ImageView mAppIcon;
|
||||||
|
|
||||||
ApplicationViewHolder(View itemView) {
|
ApplicationViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
mAppName = itemView.findViewById(android.R.id.title);
|
mAppName = itemView.findViewById(android.R.id.title);
|
||||||
@@ -95,11 +97,16 @@ public class ApplicationViewHolder extends RecyclerView.ViewHolder {
|
|||||||
itemView.setEnabled(isEnabled);
|
itemView.setEnabled(isEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setTitle(CharSequence title) {
|
void setTitle(CharSequence title, CharSequence contentDescription) {
|
||||||
if (title == null) {
|
if (title == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mAppName.setText(title);
|
mAppName.setText(title);
|
||||||
|
|
||||||
|
if (TextUtils.isEmpty(contentDescription)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mAppName.setContentDescription(contentDescription);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setIcon(int drawableRes) {
|
void setIcon(int drawableRes) {
|
||||||
|
@@ -1422,9 +1422,8 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
// Bind the data efficiently with the holder
|
// Bind the data efficiently with the holder
|
||||||
final ApplicationsState.AppEntry entry = mEntries.get(position);
|
final ApplicationsState.AppEntry entry = mEntries.get(position);
|
||||||
synchronized (entry) {
|
synchronized (entry) {
|
||||||
holder.setTitle(entry.label);
|
|
||||||
mState.ensureLabelDescription(entry);
|
mState.ensureLabelDescription(entry);
|
||||||
holder.itemView.setContentDescription(entry.labelDescription);
|
holder.setTitle(entry.label, entry.labelDescription);
|
||||||
mState.ensureIcon(entry);
|
mState.ensureIcon(entry);
|
||||||
holder.setIcon(entry.icon);
|
holder.setIcon(entry.icon);
|
||||||
updateSummary(holder, entry);
|
updateSummary(holder, entry);
|
||||||
|
@@ -69,6 +69,22 @@ public class ApplicationViewHolderTest {
|
|||||||
assertThat(mHolder.mSummary.getText()).isEqualTo(mContext.getText(R.string.disabled));
|
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
|
@Test
|
||||||
public void updateSize() {
|
public void updateSize() {
|
||||||
final String invalidStr = "invalid";
|
final String invalidStr = "invalid";
|
||||||
|
Reference in New Issue
Block a user