aboutsummaryrefslogtreecommitdiff
path: root/sdk/android/src/jni/android_network_monitor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/android/src/jni/android_network_monitor.cc')
-rw-r--r--sdk/android/src/jni/android_network_monitor.cc19
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) {