#ifndef ASH_SYSTEM_NETWORK_NETWORK_UTILS_H_
#define ASH_SYSTEM_NETWORK_NETWORK_UTILS_H_
#include <optional>
#include "ash/ash_export.h"
#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h"
namespace ash {
enum class NetworkRowClickedAction {
kConnectToNetwork = 0,
kOpenNetworkSettingsPage = 1,
kOpenSimUnlockDialog = 2,
kOpenPortalSignin = 3,
kMaxValue = kOpenPortalSignin
};
enum class DetailedViewSection {
kWifiSection = 0,
kMobileSection = 1,
kEthernetSection = 2,
kDetailedSection = 3,
kTetherHostsSection = 4,
kMaxValue = kTetherHostsSection
};
enum NetworkDetailedViewListType { LIST_TYPE_NETWORK, LIST_TYPE_VPN };
ASH_EXPORT void RecordNetworkRowClickedAction(NetworkRowClickedAction action);
ASH_EXPORT void RecordDetailedViewSection(DetailedViewSection section);
ASH_EXPORT void RecordNetworkTypeToggled(
chromeos::network_config::mojom::NetworkType network_type,
bool new_state);
ASH_EXPORT chromeos::network_config::mojom::InhibitReason
GetCellularInhibitReason();
ASH_EXPORT int GetCellularInhibitReasonMessageId(
chromeos::network_config::mojom::InhibitReason inhibit_reason);
ASH_EXPORT std::optional<std::u16string> GetPortalStateSubtext(
const chromeos::network_config::mojom::PortalState& portal_state);
ASH_EXPORT bool IsNetworkDisabled(
const chromeos::network_config::mojom::NetworkStatePropertiesPtr&
network_properties);
ASH_EXPORT bool IsNetworkInhibited(
const chromeos::network_config::mojom::NetworkStatePropertiesPtr&
network_properties);
ASH_EXPORT bool IsCellularDeviceFlashing(
const chromeos::network_config::mojom::NetworkStatePropertiesPtr&
network_properties);
ASH_EXPORT int GetStringIdForNetworkDetailedViewTitleRow(
NetworkDetailedViewListType list_type);
}
#endif