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

Commit b6cec0d7 authored by Fan Zhang's avatar Fan Zhang
Browse files

Use raw string when setting wifi preference title.

This is necessary for talkback to correctly recognize content
description on the whole viewgroup.

Change-Id: Ic792102b269b9a8db09c632f7e70d8773048c840
Bug: 65202862
Test: robotests
parent 9e16e1dd
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -155,7 +155,7 @@ public class AccessPointPreference extends Preference {
            drawable.setLevel(mLevel);
        }

        mTitleView = (TextView) view.findViewById(com.android.internal.R.id.title);
        mTitleView = (TextView) view.findViewById(android.R.id.title);
        if (mTitleView != null) {
            // Attach to the end of the title view
            mTitleView.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, mBadge, null);
@@ -224,12 +224,7 @@ public class AccessPointPreference extends Preference {
     * Updates the title and summary; may indirectly call notifyChanged().
     */
    public void refresh() {
        if (mForSavedNetworks) {
            setTitle(mAccessPoint.getConfigName());
        } else {
            setTitle(mAccessPoint.getSsid());
        }

        setTitle(this, mAccessPoint, mForSavedNetworks);
        final Context context = getContext();
        int level = mAccessPoint.getLevel();
        int wifiSpeed = mAccessPoint.getSpeed();
@@ -258,6 +253,15 @@ public class AccessPointPreference extends Preference {
        }
    }

    @VisibleForTesting
    static void setTitle(AccessPointPreference preference, AccessPoint ap, boolean savedNetworks) {
        if (savedNetworks) {
            preference.setTitle(ap.getConfigName());
        } else {
            preference.setTitle(ap.getSsidStr());
        }
    }

    /**
     * Helper method to generate content description string.
     */
+23 −6
Original line number Diff line number Diff line
@@ -18,13 +18,12 @@ package com.android.settingslib.wifi;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;

import android.graphics.drawable.ColorDrawable;

import com.android.settingslib.SettingsLibRobolectricTestRunner;
import com.android.settingslib.TestConfig;

@@ -42,9 +41,12 @@ public class AccessPointPreferenceTest {

    private Context mContext = RuntimeEnvironment.application;

    @Mock private AccessPoint mockAccessPoint;
    @Mock private AccessPointPreference.UserBadgeCache mockUserBadgeCache;
    @Mock private AccessPointPreference.IconInjector mockIconInjector;
    @Mock
    private AccessPoint mockAccessPoint;
    @Mock
    private AccessPointPreference.UserBadgeCache mockUserBadgeCache;
    @Mock
    private AccessPointPreference.IconInjector mockIconInjector;

    private AccessPointPreference createWithAccessPoint(AccessPoint accessPoint) {
        return new AccessPointPreference(accessPoint, mContext, mockUserBadgeCache,
@@ -113,4 +115,19 @@ public class AccessPointPreferenceTest {

        verify(mockIconInjector).getIcon(level);
    }

    @Test
    public void refresh_setTitle_shouldUseSsidString() {
        final String ssid = "ssid";
        final String summary = "connected";
        final int security = AccessPoint.SECURITY_WEP;
        final AccessPoint ap = new TestAccessPointBuilder(mContext)
                .setSsid(ssid)
                .setSecurity(security)
                .build();
        final AccessPointPreference preference = mock(AccessPointPreference.class);

        AccessPointPreference.setTitle(preference, ap, false /* savedNetwork */);
        verify(preference).setTitle(ssid);
    }
}