| Index: components/translate/core/browser/translate_prefs.cc
|
| diff --git a/components/translate/core/browser/translate_prefs.cc b/components/translate/core/browser/translate_prefs.cc
|
| index bb8dd743df12bf18f9e4eae9e67cd9c5f73dc54c..95ba6412e1ae9679718452cd7e6e9a47b6db7abb 100644
|
| --- a/components/translate/core/browser/translate_prefs.cc
|
| +++ b/components/translate/core/browser/translate_prefs.cc
|
| @@ -27,6 +27,10 @@ const char TranslatePrefs::kPrefTranslateAcceptedCount[] =
|
| "translate_accepted_count";
|
| const char TranslatePrefs::kPrefTranslateBlockedLanguages[] =
|
| "translate_blocked_languages";
|
| +const char TranslatePrefs::kPrefTranslateBubbleLastClosedTime[] =
|
| + "translate_last_closed_time";
|
| +const char TranslatePrefs::kPrefTranslateBubbleHidden[] =
|
| + "translate_bubble_hidden";
|
|
|
| namespace {
|
|
|
| @@ -103,6 +107,9 @@ void TranslatePrefs::ResetToDefaults() {
|
| ResetTranslationAcceptedCount(language);
|
| ResetTranslationDeniedCount(language);
|
| }
|
| +
|
| + prefs_->ClearPref(kPrefTranslateBubbleLastClosedTime);
|
| + prefs_->ClearPref(kPrefTranslateBubbleHidden);
|
| }
|
|
|
| bool TranslatePrefs::IsBlockedLanguage(
|
| @@ -255,6 +262,22 @@ void TranslatePrefs::ResetTranslationAcceptedCount(
|
| update.Get()->SetInteger(language, 0);
|
| }
|
|
|
| +void TranslatePrefs::UpdateBubbleLastClosedTime() {
|
| + if (IsBubbleHidden())
|
| + return;
|
| +
|
| + double time = prefs_->GetDouble(kPrefTranslateBubbleLastClosedTime);
|
| + base::Time last_closed_time = base::Time::FromJsTime(time);
|
| + base::Time now = base::Time::Now();
|
| + prefs_->SetDouble(kPrefTranslateBubbleLastClosedTime, now.ToJsTime());
|
| + if (now - last_closed_time <= base::TimeDelta::FromDays(1))
|
| + prefs_->SetBoolean(kPrefTranslateBubbleHidden, true);
|
| +}
|
| +
|
| +bool TranslatePrefs::IsBubbleHidden() const {
|
| + return prefs_->GetBoolean(kPrefTranslateBubbleHidden);
|
| +}
|
| +
|
| void TranslatePrefs::GetLanguageList(std::vector<std::string>* languages) {
|
| DCHECK(languages);
|
| DCHECK(languages->empty());
|
| @@ -335,6 +358,12 @@ void TranslatePrefs::RegisterProfilePrefs(
|
| user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
| registry->RegisterListPref(kPrefTranslateBlockedLanguages,
|
| user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
| + registry->RegisterDoublePref(
|
| + kPrefTranslateBubbleLastClosedTime, 0,
|
| + user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(
|
| + kPrefTranslateBubbleHidden, false,
|
| + user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
| }
|
|
|
| // static
|
|
|