From 24ff4a2110a459e8744f4f45f189709b3db326a4 Mon Sep 17 00:00:00 2001 From: Yanting Yang Date: Wed, 27 Feb 2019 18:58:58 +0800 Subject: [PATCH] Fix Hotspot condition string truncated Update hotspot condition title and summary and remove unused string. Fixes: 125914006 Test: visual, robotests Change-Id: I2a41c0d1840c9a21f86bd62495b404b02d8a865e --- res/values/strings.xml | 5 +- .../conditional/HotspotConditionController.java | 6 +- .../HotspotConditionControllerTest.java | 76 ++++++++++++++++++++++ .../testutils/shadow/ShadowWifiManager.java | 12 ++++ 4 files changed, 90 insertions(+), 9 deletions(-) create mode 100644 tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java diff --git a/res/values/strings.xml b/res/values/strings.xml index 0d6eaeb252..fe492d63f8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -9204,10 +9204,7 @@ Hide - Hotspot - - - %1$s on + Hotspot is active Airplane mode is on diff --git a/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java index fe5bc933e4..3557e49d2f 100644 --- a/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java +++ b/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java @@ -97,7 +97,7 @@ public class HotspotConditionController implements ConditionalCardController { .setName(mAppContext.getPackageName() + "/" + mAppContext.getText(R.string.condition_hotspot_title)) .setTitleText(mAppContext.getText(R.string.condition_hotspot_title).toString()) - .setSummaryText(getSummary().toString()) + .setSummaryText(getSsid().toString()) .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_hotspot)) .setViewType(ConditionContextualCardRenderer.VIEW_TYPE_HALF_WIDTH) .build(); @@ -113,10 +113,6 @@ public class HotspotConditionController implements ConditionalCardController { mAppContext.unregisterReceiver(mReceiver); } - public CharSequence getSummary() { - return mAppContext.getString(R.string.condition_hotspot_summary, getSsid()); - } - private CharSequence getSsid() { WifiConfiguration wifiConfig = mWifiManager.getWifiApConfiguration(); if (wifiConfig == null) { diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java new file mode 100644 index 0000000000..8663d0bcbb --- /dev/null +++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.homepage.contextualcards.conditional; + +import static com.google.common.truth.Truth.assertThat; + +import android.content.Context; +import android.net.wifi.WifiConfiguration; +import android.net.wifi.WifiManager; + +import com.android.settings.homepage.contextualcards.ContextualCard; +import com.android.settings.testutils.shadow.ShadowWifiManager; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; + +@RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowWifiManager.class}) +public class HotspotConditionControllerTest { + + private static final String WIFI_AP_SSID = "Test Hotspot"; + + @Mock + private ConditionManager mConditionManager; + + private Context mContext; + private HotspotConditionController mController; + + @Before + public void setUp() { + mContext = RuntimeEnvironment.application; + mController = new HotspotConditionController(mContext, mConditionManager); + } + + @Test + public void buildContextualCard_hasWifiAp_shouldHaveWifiApSsid() { + setupWifiApConfiguration(); + + final ContextualCard card = mController.buildContextualCard(); + + assertThat(card.getSummaryText()).isEqualTo(WIFI_AP_SSID); + } + + @Test + public void buildContextualCard_noWifiAp_shouldHaveDefaultSsid() { + final ContextualCard card = mController.buildContextualCard(); + + assertThat(card.getSummaryText()).isEqualTo( + mContext.getText(com.android.internal.R.string.wifi_tether_configure_ssid_default)); + } + + private void setupWifiApConfiguration() { + final WifiConfiguration wifiApConfig = new WifiConfiguration(); + wifiApConfig.SSID = WIFI_AP_SSID; + mContext.getSystemService(WifiManager.class).setWifiApConfiguration(wifiApConfig); + } +} diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java index 19cdfe327a..b69af2ea43 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java @@ -34,6 +34,18 @@ import java.util.List; public class ShadowWifiManager extends org.robolectric.shadows.ShadowWifiManager { public WifiConfiguration savedWifiConfig; + private WifiConfiguration mSavedApConfig; + + @Implementation + protected WifiConfiguration getWifiApConfiguration() { + return mSavedApConfig; + } + + @Implementation + protected boolean setWifiApConfiguration(WifiConfiguration wifiConfig) { + mSavedApConfig = wifiConfig; + return true; + } @HiddenApi // @SystemApi @Implementation -- 2.11.0