This patch enables support for Vibration client callbacks.
Reference: https://review.tizen.org/gerrit/c/278431
Change-Id: Ia0fc9221ecfbb448efeb185a2425d3b51d9b03bc
Signed-off-by: Bakka Uday Kiran <b.kiran@samsung.com>
import("//build/config/features.gni")
import("//mojo/public/tools/bindings/mojom.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/services/device/vibration/vibration_efl.gni")
+}
# On android, VibrationManager mojo interface is implemented directly in Java.
if (!is_android) {
public_deps = [ "//services/device/public/mojom" ]
+ if (use_efl) {
+ sources += external_device_vibration_efl_sources
+ sources -= external_exclude_device_vibration_efl_sources
+ }
+
deps = [
"//base",
"//base/third_party/dynamic_annotations",
+++ /dev/null
-# Copyright (c) 2015 Samsung Electronics. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-external_device_vibration_efl_sources = [
- "//tizen_src/chromium_impl/device/vibration/vibration_manager_impl_efl.cc",
- "//tizen_src/chromium_impl/device/vibration/vibration_manager_impl_efl.h",
- "//tizen_src/chromium_impl/device/vibration/vibration_provider_client.h",
-]
-
-external_exclude_device_vibration_efl_sources =
- [ "vibration_manager_impl_default.cc" ]
+++ /dev/null
-// Copyright 2015 Samsung Electronics. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "device/vibration/vibration_manager_impl_efl.h"
-
-#include "base/bind.h"
-
-namespace device {
-
-VibrationManagerImplEfl::VibrationManagerImplEfl() {}
-
-VibrationManagerImplEfl::~VibrationManagerImplEfl() {}
-
-std::unique_ptr<VibrationProviderClient> VibrationManagerImplEfl::provider_client_ = std::unique_ptr<VibrationProviderClient>();
-
-void VibrationManagerImplEfl::Vibrate(int64_t milliseconds, const VibrateCallback& callback) {
- if (provider_client_.get())
- provider_client_->Vibrate(milliseconds);
- callback.Run();
-}
-
-void VibrationManagerImplEfl::Cancel(const CancelCallback& callback) {
- if (provider_client_.get())
- provider_client_->CancelVibration();
- callback.Run();
-}
-
-// static
-void VibrationManagerImplEfl::RegisterProviderClient(VibrationProviderClient* provider_client) {
- provider_client_.reset(provider_client);
-}
-
-// static
-void VibrationManagerImpl::Create(
- mojo::InterfaceRequest<VibrationManager> request) {
- new VibrationManagerImplEfl();
-}
-
-} // namespace device
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_device_vibration_efl_sources = [
+ "//tizen_src/chromium_impl/services/device/vibration/vibration_manager_impl_efl.cc",
+ "//tizen_src/chromium_impl/services/device/vibration/vibration_manager_impl_efl.h",
+ "//tizen_src/chromium_impl/services/device/vibration/vibration_provider_client.h",
+]
+
+external_exclude_device_vibration_efl_sources = [ "vibration_manager_impl_default.cc" ]
--- /dev/null
+// Copyright 2015 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/device/vibration/vibration_manager_impl_efl.h"
+
+#include "mojo/public/cpp/bindings/self_owned_receiver.h"
+
+namespace device {
+
+VibrationManagerImplEfl::VibrationManagerImplEfl() {}
+
+VibrationManagerImplEfl::~VibrationManagerImplEfl() {}
+
+std::unique_ptr<VibrationProviderClient>
+ VibrationManagerImplEfl::provider_client_ =
+ std::unique_ptr<VibrationProviderClient>();
+
+void VibrationManagerImplEfl::Vibrate(int64_t milliseconds,
+ VibrateCallback callback) {
+ if (provider_client_.get())
+ provider_client_->Vibrate(milliseconds);
+ std::move(callback).Run();
+}
+
+void VibrationManagerImplEfl::Cancel(CancelCallback callback) {
+ if (provider_client_.get())
+ provider_client_->CancelVibration();
+ std::move(callback).Run();
+}
+
+// static
+void VibrationManagerImplEfl::RegisterProviderClient(
+ VibrationProviderClient* provider_client) {
+ provider_client_.reset(provider_client);
+}
+
+// static
+void VibrationManagerImpl::Create(
+ mojo::PendingReceiver<mojom::VibrationManager> receiver) {
+ mojo::MakeSelfOwnedReceiver(std::make_unique<VibrationManagerImplEfl>(),
+ std::move(receiver));
+}
+
+} // namespace device
#include "services/device/vibration/vibration_manager_impl.h"
-#include "mojo/public/cpp/bindings/strong_binding.h"
-#include "services/device/vibration/vibration_export.h"
#include "services/device/vibration/vibration_provider_client.h"
namespace device {
-class DEVICE_VIBRATION_EXPORT VibrationManagerImplEfl : public VibrationManager {
+class VibrationManagerImplEfl : public mojom::VibrationManager {
public:
VibrationManagerImplEfl();
- ~VibrationManagerImplEfl() override {}
+ ~VibrationManagerImplEfl() override;
- void Vibrate(int64_t milliseconds, const VibrateCallback& callback) override;
- void Cancel(const CancelCallback& callback) override;
+ VibrationManagerImplEfl(const VibrationManagerImplEfl&) = delete;
+ VibrationManagerImplEfl& operator=(const VibrationManagerImplEfl&) = delete;
+
+ void Vibrate(int64_t milliseconds, VibrateCallback callback) override;
+ void Cancel(CancelCallback callback) override;
static void RegisterProviderClient(VibrationProviderClient* provider_client);
private:
-
static std::unique_ptr<VibrationProviderClient> provider_client_;
};
} // namespace device
-#endif // VIBRATION_MANAGER_IMPL_EFL_H
+#endif // VIBRATION_MANAGER_IMPL_EFL_H
virtual ~VibrationProviderClient() {}
};
-}
+} // namespace device
-#endif // VIBRATION_PROVIDER_CLIENT_H
+#endif // VIBRATION_PROVIDER_CLIENT_H
# FIXME: Followings are guarded just for bringup.
if (ewk_bringup) {
sources -= [
- "browser/vibration/vibration_provider_client.cc",
- "browser/vibration/vibration_provider_client.h",
"permission_popup_manager.cc",
"permission_popup_manager.h",
]
#include "browser/vibration/vibration_provider_client.h"
-#include "device/vibration/vibration_manager_impl_efl.h"
+#include "services/device/vibration/vibration_manager_impl_efl.h"
VibrationProviderClientEwk* VibrationProviderClientEwk::GetInstance() {
static VibrationProviderClientEwk* vibration_provider_client = NULL;
#ifndef Vibration_Provider_Client_h
#define Vibration_Provider_Client_h
-#include "device/vibration/vibration_provider_client.h"
#include "public/ewk_context_internal.h"
+#include "services/device/vibration/vibration_provider_client.h"
class VibrationProviderClientEwk: public device::VibrationProviderClient {
public:
Ewk_Vibration_Client_Vibration_Cancel_Cb cancel,
void* data)
{
-#if !defined(EWK_BRINGUP)
VibrationProviderClientEwk* vibra_client = VibrationProviderClientEwk::GetInstance();
vibra_client->SetVibrationClientCallbacks(vibrate, cancel, data);
-#endif
}
Eina_Bool ewk_context_tizen_extensible_api_string_set(Ewk_Context* context, const char* extensible_api, Eina_Bool enable)