1 // Copyright 2019 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chromeos/services/network_config/public/cpp/cros_network_config_util.h" 6 7 namespace chromeos { 8 namespace network_config { 9 10 // This matches logic in NetworkTypePattern and should be kept in sync. NetworkTypeMatchesType(mojom::NetworkType network_type,mojom::NetworkType match_type)11bool NetworkTypeMatchesType(mojom::NetworkType network_type, 12 mojom::NetworkType match_type) { 13 switch (match_type) { 14 case mojom::NetworkType::kAll: 15 return true; 16 case mojom::NetworkType::kMobile: 17 return network_type == mojom::NetworkType::kCellular || 18 network_type == mojom::NetworkType::kTether; 19 case mojom::NetworkType::kWireless: 20 return network_type == mojom::NetworkType::kCellular || 21 network_type == mojom::NetworkType::kTether || 22 network_type == mojom::NetworkType::kWiFi; 23 case mojom::NetworkType::kCellular: 24 case mojom::NetworkType::kEthernet: 25 case mojom::NetworkType::kTether: 26 case mojom::NetworkType::kVPN: 27 case mojom::NetworkType::kWiFi: 28 return network_type == match_type; 29 } 30 NOTREACHED(); 31 return false; 32 } 33 NetworkStateMatchesType(const mojom::NetworkStateProperties * network,mojom::NetworkType type)34bool NetworkStateMatchesType(const mojom::NetworkStateProperties* network, 35 mojom::NetworkType type) { 36 return NetworkTypeMatchesType(network->type, type); 37 } 38 StateIsConnected(mojom::ConnectionStateType connection_state)39bool StateIsConnected(mojom::ConnectionStateType connection_state) { 40 switch (connection_state) { 41 case mojom::ConnectionStateType::kOnline: 42 case mojom::ConnectionStateType::kConnected: 43 case mojom::ConnectionStateType::kPortal: 44 return true; 45 case mojom::ConnectionStateType::kConnecting: 46 case mojom::ConnectionStateType::kNotConnected: 47 return false; 48 } 49 NOTREACHED(); 50 return false; 51 } 52 GetWirelessSignalStrength(const mojom::NetworkStateProperties * network)53int GetWirelessSignalStrength(const mojom::NetworkStateProperties* network) { 54 switch (network->type) { 55 case mojom::NetworkType::kCellular: 56 return network->type_state->get_cellular()->signal_strength; 57 case mojom::NetworkType::kEthernet: 58 return 0; 59 case mojom::NetworkType::kTether: 60 return network->type_state->get_tether()->signal_strength; 61 case mojom::NetworkType::kVPN: 62 return 0; 63 case mojom::NetworkType::kWiFi: 64 return network->type_state->get_wifi()->signal_strength; 65 case mojom::NetworkType::kAll: 66 case mojom::NetworkType::kMobile: 67 case mojom::NetworkType::kWireless: 68 break; 69 } 70 NOTREACHED(); 71 return 0; 72 } 73 74 } // namespace network_config 75 } // namespace chromeos 76