From be3db49015a9c7a1e3333adec88f3377f5211e79 Mon Sep 17 00:00:00 2001 From: hai007 Date: Thu, 8 Jan 2026 12:34:55 -0800 Subject: [PATCH] Wi-Fi Direct Service Implementation(9.2) PiperOrigin-RevId: 853845305 --- connections/implementation/mediums/wifi_direct_test.cc | 6 ++++++ connections/implementation/wifi_direct_bwu_test.cc | 10 +++++++++- internal/platform/BUILD | 2 ++ internal/platform/implementation/windows/platform.cc | 3 ++- internal/platform/wifi_direct.h | 9 ++++++++- internal/platform/wifi_direct_test.cc | 6 ++++++ 6 files changed, 33 insertions(+), 3 deletions(-) diff --git a/connections/implementation/mediums/wifi_direct_test.cc b/connections/implementation/mediums/wifi_direct_test.cc index 358df01a..c3056442 100644 --- a/connections/implementation/mediums/wifi_direct_test.cc +++ b/connections/implementation/mediums/wifi_direct_test.cc @@ -20,6 +20,8 @@ #include "gtest/gtest.h" #include "absl/strings/string_view.h" +#include "connections/implementation/flags/nearby_connections_feature_flags.h" +#include "internal/flags/nearby_flags.h" #include "internal/platform/cancellation_flag.h" #include "internal/platform/expected.h" #include "internal/platform/feature_flags.h" @@ -52,6 +54,10 @@ class WifiDirectTest : public testing::TestWithParam { protected: WifiDirectTest() { env_.Stop(); + NearbyFlags::GetInstance().OverrideBoolFlagValue( + connections::config_package_nearby::nearby_connections_feature:: + kEnableWifiDirect, + true); env_.Start(); } ~WifiDirectTest() override { env_.Stop(); } diff --git a/connections/implementation/wifi_direct_bwu_test.cc b/connections/implementation/wifi_direct_bwu_test.cc index 92b06878..f9eed52f 100644 --- a/connections/implementation/wifi_direct_bwu_test.cc +++ b/connections/implementation/wifi_direct_bwu_test.cc @@ -23,9 +23,11 @@ #include "connections/implementation/bwu_handler.h" #include "connections/implementation/client_proxy.h" #include "connections/implementation/endpoint_channel.h" +#include "connections/implementation/flags/nearby_connections_feature_flags.h" #include "connections/implementation/mediums/mediums.h" #include "connections/implementation/offline_frames.h" #include "connections/implementation/wifi_direct_bwu_handler.h" +#include "internal/flags/nearby_flags.h" #include "internal/platform/byte_array.h" #include "internal/platform/count_down_latch.h" #include "internal/platform/exception.h" @@ -50,7 +52,13 @@ constexpr absl::string_view kEndpointID{"WifiDirect_GO"}; class WifiDirectTest : public testing::Test { protected: - WifiDirectTest() { env_.Start(); } + WifiDirectTest() { + NearbyFlags::GetInstance().OverrideBoolFlagValue( + connections::config_package_nearby::nearby_connections_feature:: + kEnableWifiDirect, + true); + env_.Start(); + } ~WifiDirectTest() override { env_.Stop(); } MediumEnvironment& env_{MediumEnvironment::Instance()}; diff --git a/internal/platform/BUILD b/internal/platform/BUILD index 6936352b..38432d23 100644 --- a/internal/platform/BUILD +++ b/internal/platform/BUILD @@ -327,7 +327,9 @@ cc_library( ":mac_address", ":types", ":uuid", + "//connections/implementation/flags:connections_flags", "//internal/base", + "//internal/flags:nearby_flags", "//internal/platform/implementation:account_manager", "//internal/platform/implementation:comm", "//internal/platform/implementation:platform", diff --git a/internal/platform/implementation/windows/platform.cc b/internal/platform/implementation/windows/platform.cc index 4b94715f..ce847292 100644 --- a/internal/platform/implementation/windows/platform.cc +++ b/internal/platform/implementation/windows/platform.cc @@ -58,6 +58,7 @@ #include "internal/platform/implementation/submittable_executor.h" #include "internal/platform/implementation/wifi.h" #include "internal/platform/implementation/wifi_lan.h" +#include "internal/platform/implementation/wifi_hotspot.h" #include "internal/platform/implementation/windows/atomic_boolean.h" #include "internal/platform/implementation/windows/atomic_reference.h" #include "internal/platform/implementation/windows/ble.h" @@ -283,7 +284,7 @@ ImplementationPlatform::CreateWifiHotspotMedium() { std::unique_ptr ImplementationPlatform::CreateWifiDirectMedium() { - return nullptr; + return std::make_unique(); } // TODO(b/261663238) replace with real implementation. diff --git a/internal/platform/wifi_direct.h b/internal/platform/wifi_direct.h index 136e4725..f78339e4 100644 --- a/internal/platform/wifi_direct.h +++ b/internal/platform/wifi_direct.h @@ -24,6 +24,8 @@ #include "absl/base/thread_annotations.h" #include "absl/strings/string_view.h" #include "absl/types/optional.h" +#include "connections/implementation/flags/nearby_connections_feature_flags.h" +#include "internal/flags/nearby_flags.h" #include "internal/platform/cancellation_flag.h" #include "internal/platform/exception.h" #include "internal/platform/implementation/platform.h" @@ -156,7 +158,12 @@ class WifiDirectMedium { using WifiDirectAuthType = ::location::nearby::proto::connections::WifiDirectAuthType; - WifiDirectMedium() : impl_(Platform::CreateWifiDirectMedium()) {} + WifiDirectMedium() + : impl_(NearbyFlags::GetInstance().GetBoolFlag( + connections::config_package_nearby:: + nearby_connections_feature::kEnableWifiDirect) + ? Platform::CreateWifiDirectMedium() + : nullptr) {} ~WifiDirectMedium() = default; // Returns a new WifiDirectSocket by ip address and port. diff --git a/internal/platform/wifi_direct_test.cc b/internal/platform/wifi_direct_test.cc index 2139b0af..b2fa52ad 100644 --- a/internal/platform/wifi_direct_test.cc +++ b/internal/platform/wifi_direct_test.cc @@ -21,6 +21,8 @@ #include "gtest/gtest.h" #include "absl/strings/match.h" #include "absl/strings/string_view.h" +#include "connections/implementation/flags/nearby_connections_feature_flags.h" +#include "internal/flags/nearby_flags.h" #include "internal/platform/byte_array.h" #include "internal/platform/cancellation_flag.h" #include "internal/platform/exception.h" @@ -72,6 +74,10 @@ TEST(WifiDirectCredentialsTest, SetGetPin) { class WifiDirectMediumTest : public testing::TestWithParam { protected: WifiDirectMediumTest() { + NearbyFlags::GetInstance().OverrideBoolFlagValue( + connections::config_package_nearby::nearby_connections_feature:: + kEnableWifiDirect, + true); env_.Stop(); env_.Start(); }