diff options
Diffstat (limited to 'sdk/android/src/jni/android_network_monitor.cc')
-rw-r--r-- | sdk/android/src/jni/android_network_monitor.cc | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/sdk/android/src/jni/android_network_monitor.cc b/sdk/android/src/jni/android_network_monitor.cc index 0f02d179e7..69e89564e3 100644 --- a/sdk/android/src/jni/android_network_monitor.cc +++ b/sdk/android/src/jni/android_network_monitor.cc @@ -76,7 +76,9 @@ static NetworkType GetNetworkTypeFromJava( return NetworkType::NETWORK_UNKNOWN; } -static rtc::AdapterType AdapterTypeFromNetworkType(NetworkType network_type) { +static rtc::AdapterType AdapterTypeFromNetworkType( + NetworkType network_type, + bool surface_cellular_types) { switch (network_type) { case NETWORK_UNKNOWN: return rtc::ADAPTER_TYPE_UNKNOWN; @@ -85,9 +87,17 @@ static rtc::AdapterType AdapterTypeFromNetworkType(NetworkType network_type) { case NETWORK_WIFI: return rtc::ADAPTER_TYPE_WIFI; case NETWORK_5G: + return surface_cellular_types ? rtc::ADAPTER_TYPE_CELLULAR_5G + : rtc::ADAPTER_TYPE_CELLULAR; case NETWORK_4G: + return surface_cellular_types ? rtc::ADAPTER_TYPE_CELLULAR_4G + : rtc::ADAPTER_TYPE_CELLULAR; case NETWORK_3G: + return surface_cellular_types ? rtc::ADAPTER_TYPE_CELLULAR_3G + : rtc::ADAPTER_TYPE_CELLULAR; case NETWORK_2G: + return surface_cellular_types ? rtc::ADAPTER_TYPE_CELLULAR_2G + : rtc::ADAPTER_TYPE_CELLULAR; case NETWORK_UNKNOWN_CELLULAR: return rtc::ADAPTER_TYPE_CELLULAR; case NETWORK_VPN: @@ -196,6 +206,8 @@ void AndroidNetworkMonitor::Start() { return; } started_ = true; + surface_cellular_types_ = + webrtc::field_trial::IsEnabled("WebRTC-SurfaceCellularTypes"); find_network_handle_without_ipv6_temporary_part_ = webrtc::field_trial::IsEnabled( "WebRTC-FindNetworkHandleWithoutIpv6TemporaryPart"); @@ -347,10 +359,11 @@ void AndroidNetworkMonitor::OnNetworkConnected_w( const NetworkInformation& network_info) { RTC_LOG(LS_INFO) << "Network connected: " << network_info.ToString(); adapter_type_by_name_[network_info.interface_name] = - AdapterTypeFromNetworkType(network_info.type); + AdapterTypeFromNetworkType(network_info.type, surface_cellular_types_); if (network_info.type == NETWORK_VPN) { vpn_underlying_adapter_type_by_name_[network_info.interface_name] = - AdapterTypeFromNetworkType(network_info.underlying_type_for_vpn); + AdapterTypeFromNetworkType(network_info.underlying_type_for_vpn, + surface_cellular_types_); } network_info_by_handle_[network_info.handle] = network_info; for (const rtc::IPAddress& address : network_info.ip_addresses) { |