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

Commit b8fc9160 authored by Caitlin Shkuratov's avatar Caitlin Shkuratov Committed by Android (Google) Code Review
Browse files

Merge "[SB][Wifi] Update content description for instant tether in QS tile." into main

parents 88a5cda2 2d43a03c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -345,6 +345,8 @@
    <string name="accessibility_wifi_three_bars">Wifi three bars.</string>
    <!-- Content description of the WIFI signal when it is full for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
    <string name="accessibility_wifi_signal_full">Wifi signal full.</string>
    <!-- Content description of the WIFI signal when the WIFI is connected using the signal from a different device owned by the user. For accessibility (not shown on the screen) [CHAR LIMIT=NONE] -->
    <string name="accessibility_wifi_other_device">Connected to your device.</string>

    <!-- Content description of the Wi-Fi security type. This message indicates this is an open Wi-Fi (no password needed) [CHAR LIMIT=NONE] -->
    <string name="accessibility_wifi_security_type_none">Open network</string>
+1 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ public class AccessibilityContentDescriptions {
    };

    public static final int WIFI_NO_CONNECTION = R.string.accessibility_no_wifi;
    public static final int WIFI_OTHER_DEVICE_CONNECTION = R.string.accessibility_wifi_other_device;

    public static final int NO_CALLING = R.string.accessibility_no_calling;

+44 −37
Original line number Diff line number Diff line
@@ -22,11 +22,12 @@ import androidx.annotation.StringRes
import androidx.annotation.VisibleForTesting
import com.android.settingslib.AccessibilityContentDescriptions.WIFI_CONNECTION_STRENGTH
import com.android.settingslib.AccessibilityContentDescriptions.WIFI_NO_CONNECTION
import com.android.systemui.res.R
import com.android.settingslib.AccessibilityContentDescriptions.WIFI_OTHER_DEVICE_CONNECTION
import com.android.systemui.common.shared.model.ContentDescription
import com.android.systemui.common.shared.model.Icon
import com.android.systemui.log.table.Diffable
import com.android.systemui.log.table.TableRowLogger
import com.android.systemui.res.R
import com.android.systemui.statusbar.connectivity.WifiIcons
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel

@@ -90,27 +91,21 @@ sealed interface WifiIcon : Diffable<WifiIcon> {
                            )}"
                        )
                    )
                is WifiNetworkModel.Active -> {
                    val levelDesc = context.getString(WIFI_CONNECTION_STRENGTH[model.level])
                    val contentDescription =
                        ContentDescription.Loaded(
                            if (model.isValidated) {
                                (levelDesc)
                            } else {
                                "$levelDesc,${context.getString(NO_INTERNET)}"
                            }
                        )
                    Visible(model.toIcon(showHotspotInfo), contentDescription)
                }
                is WifiNetworkModel.Active -> model.toIcon(showHotspotInfo, context)
            }

        @DrawableRes
        private fun WifiNetworkModel.Active.toIcon(showHotspotInfo: Boolean): Int {
            return if (!showHotspotInfo) {
                this.toBasicIcon()
        private fun WifiNetworkModel.Active.toIcon(
            showHotspotInfo: Boolean,
            context: Context,
        ): Visible {
            return if (
                !showHotspotInfo ||
                    this.hotspotDeviceType == WifiNetworkModel.HotspotDeviceType.NONE
            ) {
                this.toBasicIcon(context)
            } else {
                val icon =
                    when (this.hotspotDeviceType) {
                    WifiNetworkModel.HotspotDeviceType.NONE -> this.toBasicIcon()
                        WifiNetworkModel.HotspotDeviceType.TABLET ->
                            com.android.settingslib.R.drawable.ic_hotspot_tablet
                        WifiNetworkModel.HotspotDeviceType.LAPTOP ->
@@ -124,16 +119,28 @@ sealed interface WifiIcon : Diffable<WifiIcon> {
                        WifiNetworkModel.HotspotDeviceType.UNKNOWN,
                        WifiNetworkModel.HotspotDeviceType.INVALID ->
                            com.android.settingslib.R.drawable.ic_hotspot_phone
                        WifiNetworkModel.HotspotDeviceType.NONE ->
                            throw IllegalStateException("NONE checked earlier")
                    }
                Visible(
                    icon,
                    ContentDescription.Loaded(context.getString(WIFI_OTHER_DEVICE_CONNECTION)),
                )
            }
        }

        @DrawableRes
        private fun WifiNetworkModel.Active.toBasicIcon(): Int {
        private fun WifiNetworkModel.Active.toBasicIcon(context: Context): Visible {
            val levelDesc = context.getString(WIFI_CONNECTION_STRENGTH[this.level])
            return if (this.isValidated) {
                WifiIcons.WIFI_FULL_ICONS[this.level]
                Visible(
                    WifiIcons.WIFI_FULL_ICONS[this.level],
                    ContentDescription.Loaded(levelDesc),
                )
            } else {
                WifiIcons.WIFI_NO_INTERNET_ICONS[this.level]
                Visible(
                    WifiIcons.WIFI_NO_INTERNET_ICONS[this.level],
                    ContentDescription.Loaded("$levelDesc,${context.getString(NO_INTERNET)}"),
                )
            }
        }
    }
+18 −1
Original line number Diff line number Diff line
@@ -17,13 +17,14 @@
package com.android.systemui.statusbar.pipeline.shared.ui.viewmodel

import androidx.test.filters.SmallTest
import com.android.systemui.res.R
import com.android.settingslib.AccessibilityContentDescriptions.WIFI_OTHER_DEVICE_CONNECTION
import com.android.systemui.SysuiTestCase
import com.android.systemui.common.shared.model.ContentDescription.Companion.loadContentDescription
import com.android.systemui.common.shared.model.Text
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.qs.tileimpl.QSTileImpl.ResourceIcon
import com.android.systemui.res.R
import com.android.systemui.statusbar.connectivity.WifiIcons
import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository
import com.android.systemui.statusbar.pipeline.ethernet.domain.EthernetInteractor
@@ -181,6 +182,8 @@ class InternetTileViewModelTest : SysuiTestCase() {

            assertThat(latest?.icon)
                .isEqualTo(ResourceIcon.get(WifiIcons.WIFI_NO_INTERNET_ICONS[4]))
            assertThat(latest?.stateDescription.loadContentDescription(context))
                .doesNotContain(context.getString(WIFI_OTHER_DEVICE_CONNECTION))
        }

    @Test
@@ -192,6 +195,8 @@ class InternetTileViewModelTest : SysuiTestCase() {

            assertThat(latest?.icon)
                .isEqualTo(ResourceIcon.get(com.android.settingslib.R.drawable.ic_hotspot_tablet))
            assertThat(latest?.stateDescription.loadContentDescription(context))
                .isEqualTo(context.getString(WIFI_OTHER_DEVICE_CONNECTION))
        }

    @Test
@@ -203,6 +208,8 @@ class InternetTileViewModelTest : SysuiTestCase() {

            assertThat(latest?.icon)
                .isEqualTo(ResourceIcon.get(com.android.settingslib.R.drawable.ic_hotspot_laptop))
            assertThat(latest?.stateDescription.loadContentDescription(context))
                .isEqualTo(context.getString(WIFI_OTHER_DEVICE_CONNECTION))
        }

    @Test
@@ -214,6 +221,8 @@ class InternetTileViewModelTest : SysuiTestCase() {

            assertThat(latest?.icon)
                .isEqualTo(ResourceIcon.get(com.android.settingslib.R.drawable.ic_hotspot_watch))
            assertThat(latest?.stateDescription.loadContentDescription(context))
                .isEqualTo(context.getString(WIFI_OTHER_DEVICE_CONNECTION))
        }

    @Test
@@ -225,6 +234,8 @@ class InternetTileViewModelTest : SysuiTestCase() {

            assertThat(latest?.icon)
                .isEqualTo(ResourceIcon.get(com.android.settingslib.R.drawable.ic_hotspot_auto))
            assertThat(latest?.stateDescription.loadContentDescription(context))
                .isEqualTo(context.getString(WIFI_OTHER_DEVICE_CONNECTION))
        }

    @Test
@@ -236,6 +247,8 @@ class InternetTileViewModelTest : SysuiTestCase() {

            assertThat(latest?.icon)
                .isEqualTo(ResourceIcon.get(com.android.settingslib.R.drawable.ic_hotspot_phone))
            assertThat(latest?.stateDescription.loadContentDescription(context))
                .isEqualTo(context.getString(WIFI_OTHER_DEVICE_CONNECTION))
        }

    @Test
@@ -247,6 +260,8 @@ class InternetTileViewModelTest : SysuiTestCase() {

            assertThat(latest?.icon)
                .isEqualTo(ResourceIcon.get(com.android.settingslib.R.drawable.ic_hotspot_phone))
            assertThat(latest?.stateDescription.loadContentDescription(context))
                .isEqualTo(context.getString(WIFI_OTHER_DEVICE_CONNECTION))
        }

    @Test
@@ -258,6 +273,8 @@ class InternetTileViewModelTest : SysuiTestCase() {

            assertThat(latest?.icon)
                .isEqualTo(ResourceIcon.get(com.android.settingslib.R.drawable.ic_hotspot_phone))
            assertThat(latest?.stateDescription.loadContentDescription(context))
                .isEqualTo(context.getString(WIFI_OTHER_DEVICE_CONNECTION))
        }

    @Test
+6 −0
Original line number Diff line number Diff line
@@ -18,8 +18,10 @@ package com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel

import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.settingslib.AccessibilityContentDescriptions.WIFI_OTHER_DEVICE_CONNECTION
import com.android.systemui.RoboPilotTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.common.shared.model.ContentDescription.Companion.loadContentDescription
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.statusbar.connectivity.WifiIcons
@@ -136,6 +138,10 @@ class WifiViewModelTest : SysuiTestCase() {
            // is used instead
            assertThat(latest).isInstanceOf(WifiIcon.Visible::class.java)
            assertThat((latest as WifiIcon.Visible).res).isEqualTo(WifiIcons.WIFI_FULL_ICONS[1])
            assertThat(
                    (latest as WifiIcon.Visible).contentDescription.loadContentDescription(context)
                )
                .doesNotContain(context.getString(WIFI_OTHER_DEVICE_CONNECTION))
        }

    @Test