#include "components/language/content/browser/ulp_language_code_locator/ulp_language_code_locator.h"
#include <memory>
#include "base/values.h"
#include "components/language/content/browser/ulp_language_code_locator/s2langquadtree.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
#include "components/prefs/scoped_user_pref_update.h"
#include "third_party/s2cellid/src/s2/s2cellid.h"
#include "third_party/s2cellid/src/s2/s2latlng.h"
namespace {
constexpr char kCellTokenKey[] = …;
constexpr char kLanguageKey[] = …;
std::optional<std::string> GetLangFromCache(const base::Value::Dict& cache,
const S2CellId& cell) { … }
std::pair<int, std::string> GetLevelAndLangFromTree(
const SerializedLanguageTree* serialized_langtree,
const S2CellId& cell) { … }
}
namespace language {
const char UlpLanguageCodeLocator::kCachedGeoLanguagesPref[] = …;
UlpLanguageCodeLocator::UlpLanguageCodeLocator(
std::vector<std::unique_ptr<SerializedLanguageTree>>&& serialized_langtrees,
PrefService* prefs)
: … { … }
UlpLanguageCodeLocator::~UlpLanguageCodeLocator() = default;
void UlpLanguageCodeLocator::RegisterLocalStatePrefs(
PrefRegistrySimple* const registry) { … }
std::vector<std::string> UlpLanguageCodeLocator::GetLanguageCodes(
double latitude,
double longitude) const { … }
}