Index: services/ui/display/screen_manager_ozone_internal.cc |
diff --git a/services/ui/display/screen_manager_ozone_internal.cc b/services/ui/display/screen_manager_ozone_internal.cc |
index 947a3de34ba93619b255aa4d159e9188f4898525..a42d4a4d76495ee1f7703b459a943b8c4c296513 100644 |
--- a/services/ui/display/screen_manager_ozone_internal.cc |
+++ b/services/ui/display/screen_manager_ozone_internal.cc |
@@ -10,6 +10,7 @@ |
#include "base/command_line.h" |
#include "base/memory/ptr_util.h" |
#include "base/threading/thread_task_runner_handle.h" |
+#include "chrome/common/pref_names.h" |
#include "chromeos/system/devicemode.h" |
#include "mojo/public/cpp/bindings/strong_binding.h" |
#include "services/service_manager/public/cpp/interface_registry.h" |
@@ -27,6 +28,15 @@ |
#include "ui/gfx/geometry/rect.h" |
#include "ui/ozone/public/ozone_platform.h" |
+#include "ui/display/manager/display_preferences.h" |
+ |
+#include "services/service_manager/public/cpp/connector.h" |
+ |
+#include "components/prefs/pref_store.h" |
+#include "services/preferences/public/interfaces/preferences.mojom.h" |
+ |
+#include "base/values.h" |
+ |
namespace display { |
namespace { |
@@ -149,7 +159,8 @@ void ScreenManagerOzoneInternal::AddInterfaces( |
registry->AddInterface<mojom::TestDisplayController>(this); |
} |
-void ScreenManagerOzoneInternal::Init(ScreenManagerDelegate* delegate) { |
+void ScreenManagerOzoneInternal::Init(ScreenManagerDelegate* delegate, |
+ service_manager::Connector* connector) { |
DCHECK(delegate); |
delegate_ = delegate; |
@@ -192,6 +203,69 @@ void ScreenManagerOzoneInternal::Init(ScreenManagerDelegate* delegate) { |
touch_transform_controller_ = base::MakeUnique<TouchTransformController>( |
&display_configurator_, display_manager_.get()); |
+ |
+ // base::Value pref_kDisplayRotationLock(prefs::kDisplayRotationLock); |
+ // base::Value pref_kSecondaryDisplays(prefs::kSecondaryDisplays); |
+ // base::Value pref_kDisplayProperties(prefs::kDisplayProperties); |
+ // base::Value pref_kDisplayPowerState(prefs::kDisplayPowerState); |
+ |
+ // auto prefs = base::MakeUnique<base::DictionaryValue>(); |
+ |
+ // prefs->Set(prefs::kDisplayRotationLock, |
+ // pref_kDisplayRotationLock.CreateDeepCopy()); |
+ // prefs->Set(prefs::kSecondaryDisplays, |
+ // pref_kSecondaryDisplays.CreateDeepCopy()); |
+ // prefs->Set(prefs::kDisplayProperties, |
+ // pref_kDisplayProperties.CreateDeepCopy()); |
+ // prefs->Set(prefs::kDisplayPowerState, |
+ // pref_kDisplayPowerState.CreateDeepCopy()); |
+ |
+ connector_ = connector; |
+ connector_->BindInterface(prefs::mojom::kServiceName, &pref_factory_ptr); |
+ pref_client_store_ = |
+ new preferences::PrefClientStore(std::move(pref_factory_ptr)); |
+ |
+ pref_client_store_->AddObserver(this); |
+ |
+ //display::LoadDisplayPreferences(true, &display_configurator_, |
+ //display_manager_.get(), pref_client_store_.get()); |
+ |
+ pref_client_store_->Subscribe( |
+ {prefs::kDisplayRotationLock, prefs::kSecondaryDisplays, |
+ prefs::kDisplayProperties, prefs::kDisplayProperties}); |
+ |
+ // if (pref_client_store_->IsInitializationComplete()) { |
+ // LOG(ERROR) << "display::ScreenManagerOzoneInternal::Init() 6"; |
+ // OnInitializationCompleted(true); |
+ //} |
+ // OnPrefValueChanged(prefs::kDisplayRotationLock); |
+ // OnPrefValueChanged(prefs::kSecondaryDisplays); |
+ // OnPrefValueChanged(prefs::kDisplayProperties); |
+ // OnPrefValueChanged(prefs::kDisplayPowerState); |
+} |
+ |
+void ScreenManagerOzoneInternal::OnInitializationCompleted(bool succeeded) { |
+ DCHECK(!initialization_completed_); |
+ DCHECK(succeeded); |
+ DCHECK(pref_client_store_->IsInitializationComplete()); |
+ initialization_completed_ = true; |
+ |
+ LOG(ERROR) |
+ << "OnInitializationCompleted true----------------------------------"; |
+ pref_client_store_->SetValue(prefs::kDisplayRotationLock, |
+ base::MakeUnique<base::Value>(10), 1); |
+ // LOG(ERROR) << "-------- |
+ // pref_client_store_->GetValue(prefs::kDisplayRotationLock):" << temp; |
+ // display::LoadDisplayPreferences(true, &display_configurator_, |
+ // display_manager_.get(), pref_client_store_.get()); |
+} |
+ |
+void ScreenManagerOzoneInternal::OnPrefValueChanged(const std::string& key) { |
+ const base::Value* value = NULL; |
+ DCHECK(pref_client_store_->GetValue(key, &value)); |
+ LOG(ERROR) << "-------- ScreenManagerOzoneInternal::OnPrefValueChanged: " |
+ << value; |
+ changed_prefs_.Set(key, value->DeepCopy()); |
} |
void ScreenManagerOzoneInternal::RequestCloseDisplay(int64_t display_id) { |