diff --git a/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java b/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java index b0720473de6..e5e9b7df9fa 100644 --- a/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java +++ b/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java @@ -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) { diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java index 7469b710597..d5162a85c2d 100644 --- a/src/com/android/settings/applications/manageapplications/ManageApplications.java +++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java b/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java index c3ae904bb1f..83d74a7e37c 100644 --- a/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java +++ b/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java @@ -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";