From 8d14ce45ad85f39aab268ae60e20d02e90c72c99 Mon Sep 17 00:00:00 2001 From: zengqingyu Date: Fri, 24 Jun 2022 15:04:13 +0800 Subject: [PATCH] fix screen js enum usages Signed-off-by: zengqingyu Change-Id: I6f62aeb489e3fd53e19cc38e791596e098aacb35 --- .../kits/napi/display_runtime/js_display.h | 9 +++++ .../display_runtime/js_display_manager.cpp | 32 ++++++++++++++++++ .../screen_runtime/napi/js_screen_manager.cpp | 33 +++++++++++++++++++ 3 files changed, 74 insertions(+) diff --git a/interfaces/kits/napi/display_runtime/js_display.h b/interfaces/kits/napi/display_runtime/js_display.h index e2f7eb93..d9506d7f 100644 --- a/interfaces/kits/napi/display_runtime/js_display.h +++ b/interfaces/kits/napi/display_runtime/js_display.h @@ -33,6 +33,15 @@ public: private: sptr display_ = nullptr; }; +enum class DisplayStateMode : uint32_t { + STATE_UNKNOWN = 0, + STATE_OFF, + STATE_ON, + STATE_DOZE, + STATE_DOZE_SUSPEND, + STATE_VR, + STATE_ON_SUSPEND +}; } // namespace Rosen } // namespace OHOS #endif \ No newline at end of file diff --git a/interfaces/kits/napi/display_runtime/js_display_manager.cpp b/interfaces/kits/napi/display_runtime/js_display_manager.cpp index 00d9b586..b4c113ec 100644 --- a/interfaces/kits/napi/display_runtime/js_display_manager.cpp +++ b/interfaces/kits/napi/display_runtime/js_display_manager.cpp @@ -328,6 +328,36 @@ NativeValue* CreateJsDisplayArrayObject(NativeEngine& engine, std::vectorCreateObject(); + NativeObject *object = ConvertNativeValueTo(objValue); + if (object == nullptr) { + WLOGFE("Failed to get object"); + return nullptr; + } + + object->SetProperty("STATE_UNKNOWN", CreateJsValue(*engine, static_cast(DisplayStateMode::STATE_UNKNOWN))); + object->SetProperty("STATE_OFF", CreateJsValue(*engine, static_cast(DisplayStateMode::STATE_OFF))); + object->SetProperty("STATE_ON", CreateJsValue(*engine, static_cast(DisplayStateMode::STATE_ON))); + object->SetProperty("STATE_DOZE", + CreateJsValue(*engine, static_cast(DisplayStateMode::STATE_DOZE))); + object->SetProperty("STATE_DOZE_SUSPEND", + CreateJsValue(*engine, static_cast(DisplayStateMode::STATE_DOZE_SUSPEND))); + object->SetProperty("STATE_VR", + CreateJsValue(*engine, static_cast(DisplayStateMode::STATE_VR))); + object->SetProperty("STATE_ON_SUSPEND", + CreateJsValue(*engine, static_cast(DisplayStateMode::STATE_ON_SUSPEND))); + return objValue; +} + NativeValue* JsDisplayManagerInit(NativeEngine* engine, NativeValue* exportObj) { WLOGFI("JsDisplayManagerInit is called"); @@ -346,6 +376,8 @@ NativeValue* JsDisplayManagerInit(NativeEngine* engine, NativeValue* exportObj) std::unique_ptr jsDisplayManager = std::make_unique(engine); object->SetNativePointer(jsDisplayManager.release(), JsDisplayManager::Finalizer, nullptr); + object->SetProperty("DisplayState", InitDisplayState(engine)); + BindNativeFunction(*engine, *object, "getDefaultDisplay", JsDisplayManager::GetDefaultDisplay); BindNativeFunction(*engine, *object, "getDefaultDisplaySync", JsDisplayManager::GetDefaultDisplaySync); BindNativeFunction(*engine, *object, "getAllDisplay", JsDisplayManager::GetAllDisplay); diff --git a/interfaces/kits/napi/screen_runtime/napi/js_screen_manager.cpp b/interfaces/kits/napi/screen_runtime/napi/js_screen_manager.cpp index cab5634e..a79fb29d 100644 --- a/interfaces/kits/napi/screen_runtime/napi/js_screen_manager.cpp +++ b/interfaces/kits/napi/screen_runtime/napi/js_screen_manager.cpp @@ -684,6 +684,37 @@ NativeValue* OnSetScreenRotationLocked(NativeEngine& engine, NativeCallbackInfo& } }; +NativeValue* InitScreenOrientation(NativeEngine* engine) +{ + WLOGFI("JsScreenManager::InitScreenOrientation called"); + + if (engine == nullptr) { + WLOGFE("engine is nullptr"); + return nullptr; + } + + NativeValue *objValue = engine->CreateObject(); + NativeObject *object = ConvertNativeValueTo(objValue); + if (object == nullptr) { + WLOGFE("Failed to get object"); + return nullptr; + } + + object->SetProperty("UNSPECIFIED", CreateJsValue(*engine, static_cast(Orientation::UNSPECIFIED))); + object->SetProperty("VERTICAL", CreateJsValue(*engine, static_cast(Orientation::VERTICAL))); + object->SetProperty("HORIZONTAL", CreateJsValue(*engine, static_cast(Orientation::HORIZONTAL))); + object->SetProperty("REVERSE_VERTICAL", + CreateJsValue(*engine, static_cast(Orientation::REVERSE_VERTICAL))); + object->SetProperty("REVERSE_HORIZONTAL", + CreateJsValue(*engine, static_cast(Orientation::REVERSE_HORIZONTAL))); + object->SetProperty("SENSOR", CreateJsValue(*engine, static_cast(Orientation::SENSOR))); + object->SetProperty("SENSOR_VERTICAL", + CreateJsValue(*engine, static_cast(Orientation::SENSOR_VERTICAL))); + object->SetProperty("SENSOR_HORIZONTAL", + CreateJsValue(*engine, static_cast(Orientation::SENSOR_HORIZONTAL))); + return objValue; +} + NativeValue* JsScreenManagerInit(NativeEngine* engine, NativeValue* exportObj) { WLOGFI("JsScreenManagerInit is called"); @@ -702,6 +733,8 @@ NativeValue* JsScreenManagerInit(NativeEngine* engine, NativeValue* exportObj) std::unique_ptr jsScreenManager = std::make_unique(engine); object->SetNativePointer(jsScreenManager.release(), JsScreenManager::Finalizer, nullptr); + object->SetProperty("Orientation", InitScreenOrientation(engine)); + BindNativeFunction(*engine, *object, "getAllScreens", JsScreenManager::GetAllScreens); BindNativeFunction(*engine, *object, "on", JsScreenManager::RegisterScreenManagerCallback); BindNativeFunction(*engine, *object, "off", JsScreenManager::UnregisterScreenMangerCallback);