Commit 783457c3 authored by miguelg@chromium.org's avatar miguelg@chromium.org

Extend the translate prefs interface with new methods to clear/check blacklisted sites/languages

Add const to some the  retrieve methods.


BUG=149349


Review URL: https://chromiumcodereview.appspot.com/12221147

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182220 0039d316-1c4b-4281-b951-d872f2087c98
parent c2d9ff76
......@@ -27,7 +27,7 @@ TranslatePrefs::TranslatePrefs(PrefService* user_prefs)
}
bool TranslatePrefs::IsLanguageBlacklisted(
const std::string& original_language) {
const std::string& original_language) const {
return IsValueBlacklisted(kPrefTranslateLanguageBlacklist, original_language);
}
......@@ -40,7 +40,7 @@ void TranslatePrefs::RemoveLanguageFromBlacklist(
RemoveValueFromBlacklist(kPrefTranslateLanguageBlacklist, original_language);
}
bool TranslatePrefs::IsSiteBlacklisted(const std::string& site) {
bool TranslatePrefs::IsSiteBlacklisted(const std::string& site) const {
return IsValueBlacklisted(kPrefTranslateSiteBlacklist, site);
}
......@@ -89,7 +89,24 @@ void TranslatePrefs::RemoveLanguagePairFromWhitelist(
dict->Remove(original_language, NULL);
}
int TranslatePrefs::GetTranslationDeniedCount(const std::string& language) {
bool TranslatePrefs::HasBlacklistedLanguages() const {
return !IsListEmpty(kPrefTranslateLanguageBlacklist);
}
void TranslatePrefs::ClearBlacklistedLanguages() {
prefs_->ClearPref(kPrefTranslateLanguageBlacklist);
}
bool TranslatePrefs::HasBlacklistedSites() {
return !IsListEmpty(kPrefTranslateSiteBlacklist);
}
void TranslatePrefs::ClearBlacklistedSites() {
prefs_->ClearPref(kPrefTranslateSiteBlacklist);
}
int TranslatePrefs::GetTranslationDeniedCount(
const std::string& language) const {
const DictionaryValue* dict =
prefs_->GetDictionary(kPrefTranslateDeniedCount);
int count = 0;
......@@ -210,7 +227,7 @@ void TranslatePrefs::MigrateTranslateWhitelists(PrefService* user_prefs) {
// TranslatePrefs: private: ----------------------------------------------------
bool TranslatePrefs::IsValueInList(const ListValue* list,
const std::string& in_value) {
const std::string& in_value) const {
for (size_t i = 0; i < list->GetSize(); ++i) {
std::string value;
if (list->GetString(i, &value) && value == in_value)
......@@ -220,7 +237,7 @@ bool TranslatePrefs::IsValueInList(const ListValue* list,
}
bool TranslatePrefs::IsValueBlacklisted(const char* pref_id,
const std::string& value) {
const std::string& value) const {
const ListValue* blacklist = prefs_->GetList(pref_id);
return (blacklist && !blacklist->empty() && IsValueInList(blacklist, value));
}
......@@ -251,7 +268,7 @@ void TranslatePrefs::RemoveValueFromBlacklist(const char* pref_id,
}
bool TranslatePrefs::IsLanguageWhitelisted(
const std::string& original_language, std::string* target_language) {
const std::string& original_language, std::string* target_language) const {
const DictionaryValue* dict = prefs_->GetDictionary(kPrefTranslateWhitelists);
if (dict && dict->GetString(original_language, target_language)) {
DCHECK(!target_language->empty());
......@@ -259,3 +276,8 @@ bool TranslatePrefs::IsLanguageWhitelisted(
}
return false;
}
bool TranslatePrefs::IsListEmpty(const char* pref_id) const {
const ListValue* blacklist = prefs_->GetList(pref_id);
return (blacklist == NULL || blacklist->empty());
}
......@@ -27,11 +27,11 @@ class TranslatePrefs {
explicit TranslatePrefs(PrefService* user_prefs);
bool IsLanguageBlacklisted(const std::string& original_language);
bool IsLanguageBlacklisted(const std::string& original_language) const;
void BlacklistLanguage(const std::string& original_language);
void RemoveLanguageFromBlacklist(const std::string& original_language);
bool IsSiteBlacklisted(const std::string& site);
bool IsSiteBlacklisted(const std::string& site) const;
void BlacklistSite(const std::string& site);
void RemoveSiteFromBlacklist(const std::string& site);
......@@ -42,16 +42,24 @@ class TranslatePrefs {
void RemoveLanguagePairFromWhitelist(const std::string& original_language,
const std::string& target_language);
// Will return true if at least one language has been blacklisted.
bool HasBlacklistedLanguages() const;
void ClearBlacklistedLanguages();
// Will return true if at least one site has been blacklisted.
bool HasBlacklistedSites();
void ClearBlacklistedSites();
// These methods are used to track how many times the user has denied the
// translation for a specific language. (So we can present a UI to black-list
// that language if the user keeps denying translations).
int GetTranslationDeniedCount(const std::string& language);
int GetTranslationDeniedCount(const std::string& language) const;
void IncrementTranslationDeniedCount(const std::string& language);
void ResetTranslationDeniedCount(const std::string& language);
// These methods are used to track how many times the user has accepted the
// translation for a specific language. (So we can present a UI to white-list
// that langueg if the user keeps accepting translations).
// that language if the user keeps accepting translations).
int GetTranslationAcceptedCount(const std::string& language);
void IncrementTranslationAcceptedCount(const std::string& language);
void ResetTranslationAcceptedCount(const std::string& language);
......@@ -65,20 +73,21 @@ class TranslatePrefs {
private:
static void MigrateTranslateWhitelists(PrefService* user_prefs);
bool IsValueBlacklisted(const char* pref_id, const std::string& value);
bool IsValueBlacklisted(const char* pref_id, const std::string& value) const;
void BlacklistValue(const char* pref_id, const std::string& value);
void RemoveValueFromBlacklist(const char* pref_id, const std::string& value);
bool IsValueInList(const base::ListValue* list, const std::string& value);
bool IsValueInList(
const base::ListValue* list, const std::string& value) const;
bool IsLanguageWhitelisted(const std::string& original_language,
std::string* target_language);
std::string* target_language) const;
bool IsListEmpty(const char* pref_id) const;
// Retrieves the dictionary mapping the number of times translation has been
// denied for a language, creating it if necessary.
base::DictionaryValue* GetTranslationDeniedCountDictionary();
// Retrieves the dictionary mapping the number of times translation has been
// accepted for a language, creating it if necessary.
base::DictionaryValue* GetTranslationAcceptedCountDictionary();
base::DictionaryValue* GetTranslationAcceptedCountDictionary() const;
PrefService* prefs_; // Weak.
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment