Index: blimp/client/core/context/blimp_client_context_impl.cc |
diff --git a/blimp/client/core/context/blimp_client_context_impl.cc b/blimp/client/core/context/blimp_client_context_impl.cc |
index 9ffe8d37e16e4438120b3f7d0420881788e26112..e6261240351f4980986032c4ecd77014baee57bd 100644 |
--- a/blimp/client/core/context/blimp_client_context_impl.cc |
+++ b/blimp/client/core/context/blimp_client_context_impl.cc |
@@ -35,6 +35,7 @@ |
#if defined(OS_ANDROID) |
#include "blimp/client/core/context/android/blimp_client_context_impl_android.h" |
+#include "blimp/client/core/settings/android/settings_android.h" |
#endif // OS_ANDROID |
namespace blimp { |
@@ -67,13 +68,15 @@ BlimpClientContext* BlimpClientContext::Create( |
std::unique_ptr<CompositorDependencies> compositor_dependencies, |
PrefService* local_state) { |
#if defined(OS_ANDROID) |
+ auto settings = base::MakeUnique<SettingsAndroid>(local_state); |
return new BlimpClientContextImplAndroid( |
io_thread_task_runner, file_thread_task_runner, |
- std::move(compositor_dependencies), local_state); |
+ std::move(compositor_dependencies), std::move(settings)); |
#else |
+ auto settings = base::MakeUnique<Settings>(local_state); |
return new BlimpClientContextImpl( |
io_thread_task_runner, file_thread_task_runner, |
- std::move(compositor_dependencies), local_state); |
+ std::move(compositor_dependencies), std::move(settings)); |
#endif // defined(OS_ANDROID) |
} |
@@ -99,14 +102,14 @@ BlimpClientContextImpl::BlimpClientContextImpl( |
scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner, |
scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner, |
std::unique_ptr<CompositorDependencies> compositor_dependencies, |
- PrefService* local_state) |
+ std::unique_ptr<Settings> settings) |
: BlimpClientContext(), |
io_thread_task_runner_(io_thread_task_runner), |
file_thread_task_runner_(file_thread_task_runner), |
blimp_compositor_dependencies_( |
base::MakeUnique<BlimpCompositorDependencies>( |
std::move(compositor_dependencies))), |
- settings_(base::MakeUnique<Settings>(local_state)), |
+ settings_(std::move(settings)), |
blob_channel_feature_(new BlobChannelFeature(this)), |
geolocation_feature_(base::MakeUnique<GeolocationFeature>( |
base::MakeUnique<device::LocationArbitrator>( |
@@ -155,7 +158,7 @@ BlimpClientContextImpl::~BlimpClientContextImpl() { |
} |
void BlimpClientContextImpl::SetDelegate(BlimpClientContextDelegate* delegate) { |
- DCHECK(!delegate_ || !delegate); |
+ DCHECK(!delegate_ && delegate); |
delegate_ = delegate; |
// TODO(xingliu): Pass the IdentityProvider needed by |assignment_fetcher_| |
@@ -181,6 +184,7 @@ std::unique_ptr<BlimpContents> BlimpClientContextImpl::CreateBlimpContents( |
} |
void BlimpClientContextImpl::Connect() { |
+ DCHECK(delegate_); |
DCHECK(assignment_fetcher_); |
assignment_fetcher_->Fetch(); |
} |
@@ -199,6 +203,7 @@ BlimpClientContextImpl::CreateFeedbackData() { |
} |
IdentitySource* BlimpClientContextImpl::GetIdentitySource() { |
+ DCHECK(delegate_); |
DCHECK(assignment_fetcher_); |
return assignment_fetcher_->GetIdentitySource(); |
} |