blob: 422593679737ad68084bc839e88ea272611f537f [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/ui/settings/language/language_settings_app_interface.h"
#include "base/strings/sys_string_conversions.h"
#include "components/language/core/browser/pref_names.h"
#include "components/translate/core/browser/translate_pref_names.h"
#include "components/translate/core/browser/translate_prefs.h"
#import "ios/chrome/browser/browser_state/chrome_browser_state.h"
#import "ios/chrome/browser/translate/chrome_ios_translate_client.h"
#import "ios/chrome/test/app/chrome_test_util.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
namespace {
std::unique_ptr<translate::TranslatePrefs> CreateTranslatePrefs() {
return ChromeIOSTranslateClient::CreateTranslatePrefs(
chrome_test_util::GetOriginalBrowserState()->GetPrefs());
}
} // namespace
@implementation LanguageSettingsAppInterface : NSObject
+ (void)removeAllLanguages {
auto translatePrefs = CreateTranslatePrefs();
std::vector<std::string> languages;
translatePrefs->GetLanguageList(&languages);
for (const auto& language : languages) {
translatePrefs->RemoveFromLanguageList(language);
}
}
+ (NSString*)languages {
return base::SysUTF8ToNSString(
chrome_test_util::GetOriginalBrowserState()->GetPrefs()->GetString(
language::prefs::kAcceptLanguages));
}
+ (void)addLanguage:(NSString*)language {
CreateTranslatePrefs()->AddToLanguageList(base::SysNSStringToUTF8(language),
/*force_blocked=*/false);
}
+ (BOOL)offersTranslation {
return CreateTranslatePrefs()->IsOfferTranslateEnabled();
}
+ (BOOL)isBlockedLanguage:(NSString*)language {
return CreateTranslatePrefs()->IsBlockedLanguage(
base::SysNSStringToUTF8(language));
}
+ (void)setRecentTargetLanguage:(NSString*)language {
return CreateTranslatePrefs()->SetRecentTargetLanguage(
base::SysNSStringToUTF8(language));
}
@end