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

Commit 10e732bd authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 8b5913ba a51c9988
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -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) {
+1 −2
Original line number Diff line number Diff line
@@ -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);
+16 −0
Original line number Diff line number Diff line
@@ -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";