Index: chrome/browser/chromeos/arc/settings_bridge.cc |
diff --git a/chrome/browser/chromeos/arc/arc_settings_bridge.cc b/chrome/browser/chromeos/arc/settings_bridge.cc |
similarity index 63% |
rename from chrome/browser/chromeos/arc/arc_settings_bridge.cc |
rename to chrome/browser/chromeos/arc/settings_bridge.cc |
index 1fbdb7c12af6507dbaf8838fc27bce35a0fa69a1..567944524fe09a82d43807f35ae8c4e3b77d2e0d 100644 |
--- a/chrome/browser/chromeos/arc/arc_settings_bridge.cc |
+++ b/chrome/browser/chromeos/arc/settings_bridge.cc |
@@ -2,16 +2,14 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/chromeos/arc/arc_settings_bridge.h" |
+#include "chrome/browser/chromeos/arc/settings_bridge.h" |
#include <algorithm> |
-#include "base/json/json_writer.h" |
#include "base/prefs/pref_service.h" |
#include "base/strings/stringprintf.h" |
#include "chrome/browser/profiles/profile_manager.h" |
#include "chrome/common/pref_names.h" |
-#include "components/arc/common/settings.mojom.h" |
using ::chromeos::system::TimezoneSettings; |
@@ -44,16 +42,18 @@ double ConvertFontSizeChromeToAndroid(int default_size, |
} // namespace fontsizes |
-ArcSettingsBridge::ArcSettingsBridge(ArcBridgeService* bridge_service) |
- : ArcService(bridge_service) { |
- arc_bridge_service()->AddObserver(this); |
+SettingsBridge::SettingsBridge(SettingsBridge::Delegate* delegate) |
+ : delegate_(delegate) { |
+ DCHECK(delegate_); |
+ StartObservingSettingsChanges(); |
+ SyncAllPrefs(); |
} |
-ArcSettingsBridge::~ArcSettingsBridge() { |
- arc_bridge_service()->RemoveObserver(this); |
+SettingsBridge::~SettingsBridge() { |
+ StopObservingSettingsChanges(); |
} |
-void ArcSettingsBridge::StartObservingSettingsChanges() { |
+void SettingsBridge::StartObservingSettingsChanges() { |
Profile* profile = ProfileManager::GetActiveUserProfile(); |
registrar_.Init(profile->GetPrefs()); |
@@ -65,25 +65,25 @@ void ArcSettingsBridge::StartObservingSettingsChanges() { |
TimezoneSettings::GetInstance()->AddObserver(this); |
} |
-void ArcSettingsBridge::SyncAllPrefs() const { |
+void SettingsBridge::SyncAllPrefs() const { |
SyncFontSize(); |
SyncLocale(); |
SyncSpokenFeedbackEnabled(); |
SyncTimeZone(); |
} |
-void ArcSettingsBridge::StopObservingSettingsChanges() { |
+void SettingsBridge::StopObservingSettingsChanges() { |
registrar_.RemoveAll(); |
TimezoneSettings::GetInstance()->RemoveObserver(this); |
} |
-void ArcSettingsBridge::AddPrefToObserve(const std::string& pref_name) { |
- registrar_.Add(pref_name, base::Bind(&ArcSettingsBridge::OnPrefChanged, |
+void SettingsBridge::AddPrefToObserve(const std::string& pref_name) { |
+ registrar_.Add(pref_name, base::Bind(&SettingsBridge::OnPrefChanged, |
base::Unretained(this))); |
} |
-void ArcSettingsBridge::OnPrefChanged(const std::string& pref_name) const { |
+void SettingsBridge::OnPrefChanged(const std::string& pref_name) const { |
if (pref_name == prefs::kAccessibilitySpokenFeedbackEnabled) { |
SyncSpokenFeedbackEnabled(); |
} else if (pref_name == prefs::kWebKitDefaultFixedFontSize || |
@@ -95,24 +95,11 @@ void ArcSettingsBridge::OnPrefChanged(const std::string& pref_name) const { |
} |
} |
-void ArcSettingsBridge::OnStateChanged(ArcBridgeService::State state) { |
- // ArcBridgeService::State::READY is emitted before ArcSettings app is ready |
- // to send broadcasts. Instead we wait for the SettingsInstance to be ready. |
- if (state == ArcBridgeService::State::STOPPING) { |
- StopObservingSettingsChanges(); |
- } |
-} |
- |
-void ArcSettingsBridge::OnSettingsInstanceReady() { |
- StartObservingSettingsChanges(); |
- SyncAllPrefs(); |
-} |
- |
-void ArcSettingsBridge::TimezoneChanged(const icu::TimeZone& timezone) { |
+void SettingsBridge::TimezoneChanged(const icu::TimeZone& timezone) { |
SyncTimeZone(); |
} |
-int ArcSettingsBridge::GetIntegerPref(const std::string& pref_name) const { |
+int SettingsBridge::GetIntegerPref(const std::string& pref_name) const { |
const PrefService::Preference* pref = |
registrar_.prefs()->FindPreference(pref_name); |
DCHECK(pref); |
@@ -122,7 +109,7 @@ int ArcSettingsBridge::GetIntegerPref(const std::string& pref_name) const { |
return val; |
} |
-void ArcSettingsBridge::SyncFontSize() const { |
+void SettingsBridge::SyncFontSize() const { |
int default_size = GetIntegerPref(prefs::kWebKitDefaultFontSize); |
int default_fixed_size = GetIntegerPref(prefs::kWebKitDefaultFixedFontSize); |
int minimum_size = GetIntegerPref(prefs::kWebKitMinimumFontSize); |
@@ -132,10 +119,11 @@ void ArcSettingsBridge::SyncFontSize() const { |
base::DictionaryValue extras; |
extras.SetDouble("scale", android_scale); |
- SendSettingsBroadcast("org.chromium.arc.settings.SET_FONT_SCALE", extras); |
+ SendSettingsBroadcast("org.chromium.arc.intent_helper.SET_FONT_SCALE", |
+ extras); |
} |
-void ArcSettingsBridge::SyncSpokenFeedbackEnabled() const { |
+void SettingsBridge::SyncSpokenFeedbackEnabled() const { |
const PrefService::Preference* pref = registrar_.prefs()->FindPreference( |
prefs::kAccessibilitySpokenFeedbackEnabled); |
DCHECK(pref); |
@@ -144,11 +132,11 @@ void ArcSettingsBridge::SyncSpokenFeedbackEnabled() const { |
DCHECK(value_exists); |
base::DictionaryValue extras; |
extras.SetBoolean("enabled", enabled); |
- SendSettingsBroadcast("org.chromium.arc.settings.SET_SPOKEN_FEEDBACK_ENABLED", |
- extras); |
+ SendSettingsBroadcast( |
+ "org.chromium.arc.intent_helper.SET_SPOKEN_FEEDBACK_ENABLED", extras); |
} |
-void ArcSettingsBridge::SyncLocale() const { |
+void SettingsBridge::SyncLocale() const { |
const PrefService::Preference* pref = |
registrar_.prefs()->FindPreference(prefs::kApplicationLocale); |
DCHECK(pref); |
@@ -157,33 +145,21 @@ void ArcSettingsBridge::SyncLocale() const { |
DCHECK(value_exists); |
base::DictionaryValue extras; |
extras.SetString("locale", locale); |
- SendSettingsBroadcast("org.chromium.arc.settings.SET_LOCALE", extras); |
+ SendSettingsBroadcast("org.chromium.arc.intent_helper.SET_LOCALE", extras); |
} |
-void ArcSettingsBridge::SyncTimeZone() const { |
+void SettingsBridge::SyncTimeZone() const { |
TimezoneSettings* timezone_settings = TimezoneSettings::GetInstance(); |
base::string16 timezoneID = timezone_settings->GetCurrentTimezoneID(); |
base::DictionaryValue extras; |
extras.SetString("olsonTimeZone", timezoneID); |
- SendSettingsBroadcast("org.chromium.arc.settings.SET_TIME_ZONE", extras); |
+ SendSettingsBroadcast("org.chromium.arc.intent_helper.SET_TIME_ZONE", extras); |
} |
-void ArcSettingsBridge::SendSettingsBroadcast( |
+void SettingsBridge::SendSettingsBroadcast( |
const std::string& action, |
const base::DictionaryValue& extras) const { |
- SettingsInstance* settings_instance = |
- arc_bridge_service()->settings_instance(); |
- if (!settings_instance) { |
- LOG(ERROR) << "Bridge service is not ready."; |
- return; |
- } |
- |
- std::string extras_json; |
- bool write_success = base::JSONWriter::Write(extras, &extras_json); |
- DCHECK(write_success); |
- settings_instance->SendBroadcast(action, "org.chromium.arc.settings", |
- "org.chromium.arc.settings.SettingsReceiver", |
- extras_json); |
+ delegate_->OnBroadcastNeeded(action, extras); |
} |
} // namespace arc |