1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/live_caption/live_caption_bubble_settings.h"
#include <memory>
#include <string>
#include <string_view>
#include "base/memory/weak_ptr.h"
#include "components/live_caption/caption_bubble_settings.h"
#include "components/live_caption/pref_names.h"
#include "components/prefs/pref_change_registrar.h"
#include "components/prefs/pref_service.h"
#include "media/base/media_switches.h"
namespace captions {
LiveCaptionBubbleSettings::LiveCaptionBubbleSettings(PrefService* profile_prefs)
: profile_prefs_(profile_prefs) {}
LiveCaptionBubbleSettings::~LiveCaptionBubbleSettings() = default;
void LiveCaptionBubbleSettings::SetObserver(
base::WeakPtr<CaptionBubbleSettings::Observer> observer) {
pref_change_registrar_ = std::make_unique<PrefChangeRegistrar>();
pref_change_registrar_->Init(profile_prefs_);
pref_change_registrar_->Add(
prefs::kLiveTranslateEnabled,
base::BindRepeating(
&CaptionBubbleSettings::Observer::OnLiveTranslateEnabledChanged,
observer));
pref_change_registrar_->Add(
prefs::kLiveCaptionLanguageCode,
base::BindRepeating(
&CaptionBubbleSettings::Observer::OnLiveCaptionLanguageChanged,
observer));
pref_change_registrar_->Add(
prefs::kLiveTranslateTargetLanguageCode,
base::BindRepeating(&CaptionBubbleSettings::Observer::
OnLiveTranslateTargetLanguageChanged,
observer));
}
void LiveCaptionBubbleSettings::RemoveObserver() {
pref_change_registrar_.reset();
}
bool LiveCaptionBubbleSettings::IsLiveTranslateFeatureEnabled() {
return media::IsLiveTranslateEnabled();
}
bool LiveCaptionBubbleSettings::GetLiveCaptionBubbleExpanded() {
return profile_prefs_->GetBoolean(prefs::kLiveCaptionBubbleExpanded);
}
bool LiveCaptionBubbleSettings::GetLiveTranslateEnabled() {
return profile_prefs_->GetBoolean(prefs::kLiveTranslateEnabled);
}
std::string LiveCaptionBubbleSettings::GetLiveCaptionLanguageCode() {
return profile_prefs_->GetString(prefs::kLiveCaptionLanguageCode);
}
std::string LiveCaptionBubbleSettings::GetLiveTranslateTargetLanguageCode() {
return profile_prefs_->GetString(prefs::kLiveTranslateTargetLanguageCode);
}
void LiveCaptionBubbleSettings::SetLiveCaptionEnabled(bool enabled) {
profile_prefs_->SetBoolean(prefs::kLiveCaptionEnabled, enabled);
}
void LiveCaptionBubbleSettings::SetLiveCaptionBubbleExpanded(bool expanded) {
profile_prefs_->SetBoolean(prefs::kLiveCaptionBubbleExpanded, expanded);
}
void LiveCaptionBubbleSettings::SetLiveTranslateTargetLanguageCode(
std::string_view language_code) {
profile_prefs_->SetString(prefs::kLiveTranslateTargetLanguageCode,
language_code);
}
bool LiveCaptionBubbleSettings::ShouldAdjustPositionOnExpand() {
return false;
}
} // namespace captions
|