// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_ANDROID_RADIO_UTILS_H_ #define BASE_ANDROID_RADIO_UTILS_H_ #include #include "base/android/jni_android.h" namespace base { namespace android { // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. Keep in sync with RadioSignalLevel // in //tools/metrics/histograms/enums.xml. enum class RadioSignalLevel { kNoneOrUnknown = 0, kPoor = 1, kModerate = 2, kGood = 3, kGreat = 4, kMaxValue = kGreat, }; enum class RadioDataActivity { kNone = 0, kIn = 1, kOut = 2, kInOut = 3, kDormant = 4, }; enum class RadioConnectionType { kUnknown = 0, kWifi = 1, kCell = 2, }; class BASE_EXPORT RadioUtils { public: class OverrideForTesting { public: OverrideForTesting(); ~OverrideForTesting(); void SetConnectionTypeForTesting(RadioConnectionType connection_type) { connection_type_ = connection_type; } RadioConnectionType GetConnectionType() { return connection_type_; } private: RadioConnectionType connection_type_; }; static bool IsSupported(); static RadioConnectionType GetConnectionType(); static std::optional GetCellSignalLevel(); static std::optional GetCellDataActivity(); }; } // namespace android } // namespace base #endif // BASE_ANDROID_RADIO_UTILS_H_