From adb0a0aa9cf789cdbdbcb48a270995f161cefd30 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Thu, 12 Aug 2021 16:51:53 +0000 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Ief2472f56a6e34856ec2d7cbbab480d4404bf628 --- service/res/values-te/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/res/values-te/strings.xml b/service/res/values-te/strings.xml index bfeafaade..f6ac827f9 100644 --- a/service/res/values-te/strings.xml +++ b/service/res/values-te/strings.xml @@ -40,7 +40,7 @@ "కనెక్ట్ చేయి" "కనెక్ట్ చేయవద్దు" "Wi‑Fi ఆటోమేటిక్‌గా ఆన్ అవుతుంది" - "మీరు అధిక నాణ్యత గల సేవ్ చేసిన నెట్‌వర్క్‌కు సమీపంగా ఉన్నప్పుడు" + "మీరు అధిక క్వాలిటీ గల సేవ్ చేసిన నెట్‌వర్క్‌కు సమీపంగా ఉన్నప్పుడు" "తిరిగి ఆన్ చేయవద్దు" "Wi‑Fi ఆటోమేటిక్‌గా ఆన్ చేయబడింది" "మీరు సేవ్ చేసిన నెట్‌వర్క్‌కి సమీపంలో ఉన్నారు: %1$s" -- cgit v1.2.3 From 8ab8def02a4e5dcbdac7f7ddcf0559a094cd69a3 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Tue, 17 Aug 2021 14:34:22 -0700 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I2f0d5a17531a58c0b4824516d3d4421ca658cda0 --- libs/WifiTrackerLib/res/values-te/arrays.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/WifiTrackerLib/res/values-te/arrays.xml b/libs/WifiTrackerLib/res/values-te/arrays.xml index 9c26bf728..58d67b88a 100644 --- a/libs/WifiTrackerLib/res/values-te/arrays.xml +++ b/libs/WifiTrackerLib/res/values-te/arrays.xml @@ -25,7 +25,7 @@ "స్కాన్ చేస్తోంది…" "కనెక్ట్ అవుతోంది…" "ప్రామాణీకరిస్తోంది…" - "IP చిరునామాను పొందుతోంది…" + "IP అడ్రస్‌ను పొందుతోంది…" "కనెక్ట్ చేయబడింది" "తాత్కాలికంగా రద్దు చేయబడింది" "డిస్‌కనెక్ట్ చేస్తోంది…" -- cgit v1.2.3 From 9d9456611d47656d15d8c627e7acb3dd411b34e6 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Tue, 17 Aug 2021 14:41:00 -0700 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I2fea886e75d3e3b48d5b20de7c50afe04f6e0790 --- libs/WifiTrackerLib/res/values-te/arrays.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/WifiTrackerLib/res/values-te/arrays.xml b/libs/WifiTrackerLib/res/values-te/arrays.xml index 9c26bf728..58d67b88a 100644 --- a/libs/WifiTrackerLib/res/values-te/arrays.xml +++ b/libs/WifiTrackerLib/res/values-te/arrays.xml @@ -25,7 +25,7 @@ "స్కాన్ చేస్తోంది…" "కనెక్ట్ అవుతోంది…" "ప్రామాణీకరిస్తోంది…" - "IP చిరునామాను పొందుతోంది…" + "IP అడ్రస్‌ను పొందుతోంది…" "కనెక్ట్ చేయబడింది" "తాత్కాలికంగా రద్దు చేయబడింది" "డిస్‌కనెక్ట్ చేస్తోంది…" -- cgit v1.2.3 From e0cbf04736b17a2a3a746b32a76dba624d2a8391 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Tue, 17 Aug 2021 14:45:56 -0700 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I74650223415090ee53241afd78a6f76f4ede3873 --- service/res/values-te/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/res/values-te/strings.xml b/service/res/values-te/strings.xml index f6ac827f9..4c7ab912c 100644 --- a/service/res/values-te/strings.xml +++ b/service/res/values-te/strings.xml @@ -65,7 +65,7 @@ "%1$sకు కనెక్ట్ చేయడం సాధ్యపడదు" "మీ గోప్యతా సెట్టింగ్‌లను మార్చడానికి నొక్కి, మళ్లీ ప్రయత్నించండి" "గోప్యతా సెట్టింగ్‌ను మార్చాలా?" - "కనెక్ట్ చేయడానికి, %1$s అనేది ప్రత్యేకమైన ఐడెంటిఫయర్ అయిన మీ పరికరం యొక్క MAC చిరునామాను ఉపయోగించాల్సి ఉంటుంది. ప్రస్తుతం, ఈ నెట్‌వర్క్ కోసం మీ గోప్యతా సెట్టింగ్ యాదృచ్ఛిక ఐడెంటిఫయర్‌ను ఉపయోగిస్తుంది. \n\nఈ మార్పు వలన మీ పరికర లొకేషన్‌ను ట్రాక్ చేయడానికి సమీప పరికరాలకు అనుమతి లభించవచ్చు." + "కనెక్ట్ చేయడానికి, %1$s అనేది ప్రత్యేకమైన ఐడెంటిఫయర్ అయిన మీ పరికరం యొక్క MAC అడ్రస్‌ను ఉపయోగించాల్సి ఉంటుంది. ప్రస్తుతం, ఈ నెట్‌వర్క్ కోసం మీ గోప్యతా సెట్టింగ్ యాదృచ్ఛిక ఐడెంటిఫయర్‌ను ఉపయోగిస్తుంది. \n\nఈ మార్పు వలన మీ పరికర లొకేషన్‌ను ట్రాక్ చేయడానికి సమీప పరికరాలకు అనుమతి లభించవచ్చు." "సెట్టింగ్‌ను మార్చండి" "సెట్టింగ్ అప్‌డేట్ చేయబడింది. మళ్లీ కనెక్ట్ చేయడానికి ట్రై చేయండి." "గోప్యతా సెట్టింగ్‌లను మార్చడం సాధ్యం కాదు" -- cgit v1.2.3 From e4ee8ddad1629e3b76a8116fe05dd3ec7de71804 Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Thu, 26 Aug 2021 09:57:56 -0700 Subject: WifiTracker: Add NetworkCapabilities to WifiEntry.ConnectedInfo Add a NetworkCapabilites field to WifiEntry.ConnectedInfo so that Car Settings can detect OEM-paid networks. Bug: 197862863 Test: build Change-Id: I8b9577cb0681e1552a9f0a20730a3ec865e727af (cherry picked from commit ea7cddcf659609298cb229fb7e9ec676650796b4) --- libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java index 6ec5d8ba3..15edf8a18 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java @@ -476,6 +476,7 @@ public class WifiEntry implements Comparable { public String gateway; public String subnetMask; public int wifiStandard = ScanResult.WIFI_STANDARD_UNKNOWN; + public NetworkCapabilities networkCapabilities; /** * Creates an empty ConnectedInfo @@ -495,6 +496,7 @@ public class WifiEntry implements Comparable { gateway = other.gateway; subnetMask = other.subnetMask; wifiStandard = other.wifiStandard; + networkCapabilities = other.networkCapabilities; } } @@ -952,6 +954,7 @@ public class WifiEntry implements Comparable { if (mConnectedInfo == null) { return; } + mConnectedInfo.networkCapabilities = mNetworkCapabilities; mIsValidated = mNetworkCapabilities != null && mNetworkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); notifyOnUpdated(); -- cgit v1.2.3 From 5488ba8f2cb63d3fbb55fd7a096e1edf483f0e1a Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Wed, 18 Aug 2021 15:11:58 -0700 Subject: WifiTrackerLib: Populate network request scans after initiation NetworkRequestEntry scans should be populated immediately after initiation. This is because the NetworkRequestEntry is created once WifiManager.getConnectionInfo() indicates a connection to a network request. Since the connected WifiInfo will have invalid RSSI for a short period and we might not trigger a scan update for another several seconds, we should populate the entry with the scans we already have in order to display a non-empty RSSI. Bug: 195986350 Test: manual shell command to add network request for glob SSID with wrong password, tap on network in network request dialog, and verify RSSI remains non-empty. Change-Id: I083a18ef7305f161a121634fd0f0f4833a417783 (cherry picked from commit f34270dc4beef0cfc010e3c222422fa222085e60) Merged-In: I083a18ef7305f161a121634fd0f0f4833a417783 --- .../WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java | 1 + 1 file changed, 1 insertion(+) diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java index d76a80a0a..469e43ce9 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java @@ -821,6 +821,7 @@ public class WifiPickerTracker extends BaseWifiTracker { mNetworkRequestEntry = new NetworkRequestEntry(mContext, mMainHandler, entryKey, mWifiManager, mWifiNetworkScoreCache, false /* forSavedNetworksPage */); mNetworkRequestEntry.updateConfig(matchingConfigs); + updateNetworkRequestEntryScans(mScanResultUpdater.getScanResults()); } mNetworkRequestEntry.updateConnectionInfo(wifiInfo, networkInfo); } -- cgit v1.2.3 From 1bd8a0967c762fa431143e40c1008519e783b47c Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Thu, 26 Aug 2021 08:21:45 -0700 Subject: WifiTracker: Add showToast parameter to MergedCarrierEntry#connect() Add a boolean "showToast" parameter to MergedCarrierEntry#connect() to control whether or not to show the "Wi-Fi won't autoconnect for now" toast. This is intended for Internet Panel to supply their own SystemUIToast of this message to display over Quick Settings, which cannot have normal toasts appear over it. Bug: 192923855 Test: build Change-Id: Id8ae5237712979b75ce0a04c7a40962f5d2c218c (cherry picked from commit 83a2d8d700f6689e85eeea58658cd273980cbd5e) Merged-In: Id8ae5237712979b75ce0a04c7a40962f5d2c218c --- .../android/wifitrackerlib/MergedCarrierEntry.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java index 5dea44c9a..1930cf919 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java @@ -102,12 +102,27 @@ public class MergedCarrierEntry extends WifiEntry { return getConnectedState() == CONNECTED_STATE_DISCONNECTED && !mIsCellDefaultRoute; } + /** + * Connect to this merged carrier network and show the "Wi-Fi won't autoconnect for now" toast. + * @param callback callback for the connect result + */ @Override public synchronized void connect(@Nullable ConnectCallback callback) { + connect(callback, true); + } + + /** + * Connect to this merged carrier network. + * @param callback callback for the connect result + * @param showToast show the "Wi-Fi won't autoconnect for now" toast if {@code true} + */ + public synchronized void connect(@Nullable ConnectCallback callback, boolean showToast) { mConnectCallback = callback; mWifiManager.startRestrictingAutoJoinToSubscriptionId(mSubscriptionId); - Toast.makeText(mContext, - R.string.wifitrackerlib_wifi_wont_autoconnect_for_now, Toast.LENGTH_SHORT).show(); + if (showToast) { + Toast.makeText(mContext, R.string.wifitrackerlib_wifi_wont_autoconnect_for_now, + Toast.LENGTH_SHORT).show(); + } if (mConnectCallback != null) { mCallbackHandler.post(() -> { final ConnectCallback connectCallback = mConnectCallback; -- cgit v1.2.3 From 72352b1f532e736e12a8ec43286e3e150bac37c7 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 3 Sep 2021 04:43:36 +0000 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I4a99583fd24a42399595e2e293e3f3f5bfd98c49 --- libs/WifiTrackerLib/res/values-in/arrays.xml | 2 +- libs/WifiTrackerLib/res/values-in/strings.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/WifiTrackerLib/res/values-in/arrays.xml b/libs/WifiTrackerLib/res/values-in/arrays.xml index a6cd10ee1..05bc9c2db 100644 --- a/libs/WifiTrackerLib/res/values-in/arrays.xml +++ b/libs/WifiTrackerLib/res/values-in/arrays.xml @@ -26,7 +26,7 @@ "Menyambungkan…" "Mengautentikasi…" "Mendapatkan alamat IP…" - "Tersambung" + "Terhubung" "Ditangguhkan" "Memutus sambungan..." "Terputus" diff --git a/libs/WifiTrackerLib/res/values-in/strings.xml b/libs/WifiTrackerLib/res/values-in/strings.xml index e0a6e8772..bc839a49b 100644 --- a/libs/WifiTrackerLib/res/values-in/strings.xml +++ b/libs/WifiTrackerLib/res/values-in/strings.xml @@ -30,10 +30,10 @@ "Disimpan" "Berbayar" "Tidak berbayar" - "Tersambung melalui %1$s" + "Terhubung melalui %1$s" "Tersedia melalui %1$s" "Terhubung otomatis melalui %1$s" - "Otomatis tersambung melalui penyedia rating jaringan" + "Otomatis terhubung melalui penyedia rating jaringan" "Koneksi terbatas" "Server DNS pribadi tidak dapat diakses" "Tidak ada internet" -- cgit v1.2.3 From f393865fe5dbd42df6906dcd5cdc3cc509abd3d9 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Sat, 11 Sep 2021 02:35:48 +0000 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: If7c479b5f2e141f8e53a3bda691700dabf735263 --- libs/WifiTrackerLib/res/values-da/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/WifiTrackerLib/res/values-da/strings.xml b/libs/WifiTrackerLib/res/values-da/strings.xml index 415b9b46a..fd089a113 100644 --- a/libs/WifiTrackerLib/res/values-da/strings.xml +++ b/libs/WifiTrackerLib/res/values-da/strings.xml @@ -52,7 +52,7 @@ "Fuldfører registrering…" "Registreringen kunne ikke fuldføres. Tryk for at prøve igen." "Registreringen er fuldført. Opretter forbindelse…" - "Dette netværk kræver et SIM-id, der kan bruges til at spore enhedens placering. ""Få flere oplysninger" + "Dette netværk kræver et SIM-id, der kan bruges til at spore enhedens lokation. ""Få flere oplysninger" "Meget langsom" "Langsom" "OK" -- cgit v1.2.3 From 8fd534152e9e671da672296b7c95f88b751468e1 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Sat, 11 Sep 2021 02:38:05 +0000 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Ia872d83cbb151674699803346419375ab4c7126f --- libs/WifiTrackerLib/res/values-da/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/WifiTrackerLib/res/values-da/strings.xml b/libs/WifiTrackerLib/res/values-da/strings.xml index 415b9b46a..fd089a113 100644 --- a/libs/WifiTrackerLib/res/values-da/strings.xml +++ b/libs/WifiTrackerLib/res/values-da/strings.xml @@ -52,7 +52,7 @@ "Fuldfører registrering…" "Registreringen kunne ikke fuldføres. Tryk for at prøve igen." "Registreringen er fuldført. Opretter forbindelse…" - "Dette netværk kræver et SIM-id, der kan bruges til at spore enhedens placering. ""Få flere oplysninger" + "Dette netværk kræver et SIM-id, der kan bruges til at spore enhedens lokation. ""Få flere oplysninger" "Meget langsom" "Langsom" "OK" -- cgit v1.2.3 From f801a292176965ddb265007680445a02309d2c7f Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Wed, 8 Sep 2021 10:29:38 -0700 Subject: WifiTracker: Detect VCN over WIFI as WIFI default route Whyen the default route is VCN over WIFI, treat it as WIFI default route so that MergedCarrierEntry becomes the default network. Bug: 197007842 Test: atest WifiPickerTrackerTest Change-Id: I5d20d7dfba91eb55cfef7735f450966af6351571 (cherry picked from commit 2c29b261eba0c5c881ba2b09072267224d3bb7c2) Merged-In: I5d20d7dfba91eb55cfef7735f450966af6351571 --- .../android/wifitrackerlib/BaseWifiTracker.java | 13 ++++++-- .../wifitrackerlib/WifiPickerTrackerTest.java | 38 ++++++++++++++++++++++ 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java index b0415411b..2b9bc78f7 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java @@ -35,6 +35,7 @@ import android.net.NetworkRequest; import android.net.NetworkScoreManager; import android.net.ScoredNetwork; import android.net.TransportInfo; +import android.net.vcn.VcnTransportInfo; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.net.wifi.WifiNetworkScoreCache; @@ -225,9 +226,15 @@ public class BaseWifiTracker implements LifecycleObserver { } final boolean oldWifiDefault = mIsWifiDefaultRoute; final boolean oldCellDefault = mIsCellDefaultRoute; - // raw Wifi or VPN-over-Wifi is default => Wifi is default. - mIsWifiDefaultRoute = networkCapabilities.hasTransport(TRANSPORT_WIFI); - mIsCellDefaultRoute = networkCapabilities.hasTransport(TRANSPORT_CELLULAR); + TransportInfo transportInfo = networkCapabilities.getTransportInfo(); + final boolean isVcnOverWifi = transportInfo != null + && transportInfo instanceof VcnTransportInfo + && ((VcnTransportInfo) transportInfo).getWifiInfo() != null; + // raw Wifi or VPN-over-Wifi or VCN-over-Wifi is default => Wifi is default. + mIsWifiDefaultRoute = networkCapabilities.hasTransport(TRANSPORT_WIFI) + || isVcnOverWifi; + mIsCellDefaultRoute = !mIsWifiDefaultRoute + && networkCapabilities.hasTransport(TRANSPORT_CELLULAR); if (mIsWifiDefaultRoute != oldWifiDefault || mIsCellDefaultRoute != oldCellDefault) { if (isVerboseLoggingEnabled()) { diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java index 858075e1c..122d4b6f9 100644 --- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java +++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java @@ -25,6 +25,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.atLeastOnce; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -38,6 +39,7 @@ import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.net.NetworkScoreManager; +import android.net.vcn.VcnTransportInfo; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; @@ -1244,4 +1246,40 @@ public class WifiPickerTrackerTest { // Now Wifi is default, so isDefaultNetwork returns true assertThat(mergedCarrierEntry.isDefaultNetwork()).isTrue(); } + + /** + * Tests that the MergedCarrierEntry is the default network when it is connected and + * VCN-over-Wifi is the default network. + */ + @Test + public void testGetMergedCarrierEntry_vcnWifiIsDefault_entryIsDefaultNetwork() { + final int subId = 1; + when(mMockWifiInfo.isCarrierMerged()).thenReturn(true); + when(mMockWifiInfo.getSubscriptionId()).thenReturn(subId); + when(mMockNetworkInfo.getDetailedState()).thenReturn(NetworkInfo.DetailedState.CONNECTED); + final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker(); + wifiPickerTracker.onStart(); + mTestLooper.dispatchAll(); + verify(mMockContext).registerReceiver(mBroadcastReceiverCaptor.capture(), + any(), any(), any()); + final Intent intent = new Intent(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED); + intent.putExtra("subscription", subId); + mBroadcastReceiverCaptor.getValue().onReceive(mMockContext, intent); + verify(mMockConnectivityManager) + .registerDefaultNetworkCallback(mDefaultNetworkCallbackCaptor.capture(), any()); + MergedCarrierEntry mergedCarrierEntry = wifiPickerTracker.getMergedCarrierEntry(); + assertThat(mergedCarrierEntry.getConnectedState()) + .isEqualTo(WifiEntry.CONNECTED_STATE_CONNECTED); + // Wifi isn't default yet, so isDefaultNetwork returns false + assertThat(mergedCarrierEntry.isDefaultNetwork()).isFalse(); + + mDefaultNetworkCallbackCaptor.getValue().onCapabilitiesChanged(mMockNetwork, + new NetworkCapabilities.Builder() + .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR) + .setTransportInfo(new VcnTransportInfo(new WifiInfo.Builder().build())) + .build()); + + // Now VCN-over-Wifi is default, so isDefaultNetwork returns true + assertThat(mergedCarrierEntry.isDefaultNetwork()).isTrue(); + } } -- cgit v1.2.3 From 731bcb99abc489f1bcab3740be91b321328c6976 Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Tue, 7 Sep 2021 16:03:41 -0700 Subject: WifiTracker: Update suggestion user shareablilty after scan Suggestion entries created without scan results should update their user shareability once scans are availible to query it. Bug: 191730857 Test: atest WifiPickerTrackerTest, manual verification that suggestion created before scans are available remains in picker list after disconnection Change-Id: I0996e109726e856f48337531b0ca8f49ee4763f1 (cherry picked from commit f23dc921f360bc62c143c7ee3f670be2c81b27f3) Merged-In: I0996e109726e856f48337531b0ca8f49ee4763f1 --- .../android/wifitrackerlib/WifiPickerTracker.java | 15 +++++--- .../wifitrackerlib/WifiPickerTrackerTest.java | 44 ++++++++++++++++++++++ 2 files changed, 53 insertions(+), 6 deletions(-) diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java index 469e43ce9..e97aa28b6 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java @@ -500,25 +500,28 @@ public class WifiPickerTracker extends BaseWifiTracker { private void updateSuggestedWifiEntryScans(@NonNull List scanResults) { checkNotNull(scanResults, "Scan Result list should not be null!"); + // Get every ScanResultKey that is user shareable + final Set userSharedEntryKeys = + mWifiManager.getWifiConfigForMatchedNetworkSuggestionsSharedWithUser(scanResults) + .stream() + .map(StandardWifiEntryKey::new) + .collect(Collectors.toSet()); + // Group scans by ScanResultKey key final Map> scanResultsByKey = scanResults.stream() .filter(scan -> !TextUtils.isEmpty(scan.SSID)) .collect(Collectors.groupingBy(ScanResultKey::new)); - // Iterate through current entries and update each entry's scan results + // Iterate through current entries and update each entry's scan results and shareability. final Set seenEntryKeys = new ArraySet<>(); mSuggestedWifiEntryCache.forEach(entry -> { final StandardWifiEntryKey entryKey = entry.getStandardWifiEntryKey(); seenEntryKeys.add(entryKey); // Update scan results if available, or set to null. entry.updateScanResultInfo(scanResultsByKey.get(entryKey.getScanResultKey())); + entry.setUserShareable(userSharedEntryKeys.contains(entryKey)); }); // Create new StandardWifiEntry objects for each leftover config with scan results. - final Set userSharedEntryKeys = - mWifiManager.getWifiConfigForMatchedNetworkSuggestionsSharedWithUser(scanResults) - .stream() - .map(StandardWifiEntryKey::new) - .collect(Collectors.toSet()); for (StandardWifiEntryKey entryKey : mSuggestedConfigCache.keySet()) { final ScanResultKey scanKey = entryKey.getScanResultKey(); if (seenEntryKeys.contains(entryKey) diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java index 122d4b6f9..dd487e9f6 100644 --- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java +++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java @@ -852,6 +852,50 @@ public class WifiPickerTrackerTest { .count()).isEqualTo(1); } + /** + * Tests that a suggestion entry created before scan results are available will be updated to + * user shareable after scans become available. + */ + @Test + public void testGetWifiEntries_preConnectedSuggestion_becomesUserShareable() { + WifiConfiguration suggestionConfig = new WifiConfiguration(); + suggestionConfig.SSID = "\"ssid\""; + suggestionConfig.networkId = 1; + suggestionConfig.creatorName = "creator"; + suggestionConfig.carrierId = 1; + suggestionConfig.subscriptionId = 1; + suggestionConfig.fromWifiNetworkSuggestion = true; + // Initial entries + when(mMockWifiManager.getPrivilegedConfiguredNetworks()).thenReturn( + Arrays.asList(suggestionConfig)); + when(mMockWifiInfo.getNetworkId()).thenReturn(suggestionConfig.networkId); + when(mMockWifiInfo.getRssi()).thenReturn(-50); + when(mMockNetworkInfo.getDetailedState()).thenReturn(NetworkInfo.DetailedState.CONNECTED); + final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker(); + wifiPickerTracker.onStart(); + verify(mMockContext).registerReceiver(mBroadcastReceiverCaptor.capture(), + any(), any(), any()); + mTestLooper.dispatchAll(); + WifiEntry suggestionEntry = wifiPickerTracker.getConnectedWifiEntry(); + assertThat(suggestionEntry).isNotNull(); + + // Update with user-shareable scan results for the suggestion + when(mMockWifiManager.getScanResults()).thenReturn(Collections.singletonList( + buildScanResult("ssid", "bssid", START_MILLIS))); + when(mMockWifiManager.getWifiConfigForMatchedNetworkSuggestionsSharedWithUser(any())) + .thenReturn(Arrays.asList(suggestionConfig)); + mBroadcastReceiverCaptor.getValue().onReceive(mMockContext, + new Intent(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); + // Disconnect from network to verify its usershareability in the picker list + mBroadcastReceiverCaptor.getValue().onReceive(mMockContext, + new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION)); + mTestLooper.dispatchAll(); + + // Suggestion entry should be in picker list now + suggestionEntry = wifiPickerTracker.getWifiEntries().get(0); + assertThat(suggestionEntry.isSuggestion()).isTrue(); + } + @Test public void testGetConnectedEntry_alreadyConnectedToPasspoint_returnsPasspointEntry() { final String fqdn = "fqdn"; -- cgit v1.2.3 From 58d44b5266336d2490fc945a22d6f76f62f5e167 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 24 Sep 2021 05:31:59 +0000 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Icd37d5dfee1484c4032bdaf43b57080b032368a2 --- libs/WifiTrackerLib/res/values-fr/strings.xml | 2 +- libs/WifiTrackerLib/res/values-gu/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/WifiTrackerLib/res/values-fr/strings.xml b/libs/WifiTrackerLib/res/values-fr/strings.xml index 4d89d6134..eab74316b 100644 --- a/libs/WifiTrackerLib/res/values-fr/strings.xml +++ b/libs/WifiTrackerLib/res/values-fr/strings.xml @@ -34,7 +34,7 @@ "Déconnecté" "Enregistré" "Facturé à l\'usage" - "Non facturé à l\'usage" + "Sans compteur" "Connecté via %1$s" "Disponible via %1$s" "Connecté automatiquement via %1$s" diff --git a/libs/WifiTrackerLib/res/values-gu/strings.xml b/libs/WifiTrackerLib/res/values-gu/strings.xml index 231b96ec9..47984acbc 100644 --- a/libs/WifiTrackerLib/res/values-gu/strings.xml +++ b/libs/WifiTrackerLib/res/values-gu/strings.xml @@ -26,7 +26,7 @@ "IP ગોઠવણીમાં નિષ્ફળતા" "બંધ છે" "ઍક્સેસ પૉઇન્ટમાં હંગામી રૂપે જગ્યા નથી" - "હંગામી રૂપે નેટવર્કની નબળી પરિસ્થિતિ" + "હંગામી રીતે નેટવર્કની નબળી સ્થિતિ" "નબળું સિગ્નલ. રાઉટરની નજીક જઈને પ્રયાસ કરી જુઓ." "નેટવર્ક પર ક્ષમતા કરતાં વધારે લોડ છે. થોડા સમય પછી ફરી પ્રયાસ કરો." "કનેક્ટ કરી શકાતું નથી. થોડા સમય પછી ફરી પ્રયાસ કરો." -- cgit v1.2.3 From ad2893ad99308ce89492a5f247775d556305bce2 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 24 Sep 2021 05:34:13 +0000 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Icd848f5ab9da871052351c57051bb90d6f8beca9 --- libs/WifiTrackerLib/res/values-fr/strings.xml | 2 +- libs/WifiTrackerLib/res/values-gu/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/WifiTrackerLib/res/values-fr/strings.xml b/libs/WifiTrackerLib/res/values-fr/strings.xml index 4d89d6134..eab74316b 100644 --- a/libs/WifiTrackerLib/res/values-fr/strings.xml +++ b/libs/WifiTrackerLib/res/values-fr/strings.xml @@ -34,7 +34,7 @@ "Déconnecté" "Enregistré" "Facturé à l\'usage" - "Non facturé à l\'usage" + "Sans compteur" "Connecté via %1$s" "Disponible via %1$s" "Connecté automatiquement via %1$s" diff --git a/libs/WifiTrackerLib/res/values-gu/strings.xml b/libs/WifiTrackerLib/res/values-gu/strings.xml index 231b96ec9..47984acbc 100644 --- a/libs/WifiTrackerLib/res/values-gu/strings.xml +++ b/libs/WifiTrackerLib/res/values-gu/strings.xml @@ -26,7 +26,7 @@ "IP ગોઠવણીમાં નિષ્ફળતા" "બંધ છે" "ઍક્સેસ પૉઇન્ટમાં હંગામી રૂપે જગ્યા નથી" - "હંગામી રૂપે નેટવર્કની નબળી પરિસ્થિતિ" + "હંગામી રીતે નેટવર્કની નબળી સ્થિતિ" "નબળું સિગ્નલ. રાઉટરની નજીક જઈને પ્રયાસ કરી જુઓ." "નેટવર્ક પર ક્ષમતા કરતાં વધારે લોડ છે. થોડા સમય પછી ફરી પ્રયાસ કરો." "કનેક્ટ કરી શકાતું નથી. થોડા સમય પછી ફરી પ્રયાસ કરો." -- cgit v1.2.3