From: JinWang An Date: Thu, 26 Dec 2019 01:53:15 +0000 (+0900) Subject: Add hidden argument at modes_create_mode API X-Git-Tag: submit/tizen/20200319.043412~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=58d989efd23b2c0e02d800d22c9e97eac29bdec3;p=platform%2Fcore%2Fsystem%2Fmodes.git Add hidden argument at modes_create_mode API --- diff --git a/client/mdsc_register_mode.c b/client/mdsc_register_mode.c index 99c908b..7345900 100644 --- a/client/mdsc_register_mode.c +++ b/client/mdsc_register_mode.c @@ -31,6 +31,7 @@ struct mds_action_handle { struct mds_handle { char *name; modes_type_mode_e type; + bool hidden; GList *action_list; }; @@ -79,7 +80,7 @@ static GVariant* _mdsc_create_mode_data(modes_h mode) } GVariant *action = g_variant_new(MODES_DBUS_ACTION_LIST_SIG, action_builder); - GVariant *mode_data = g_variant_new(MODES_DBUS_MODE_SIG, mode->name, mode->type, action); + GVariant *mode_data = g_variant_new(MODES_DBUS_MODE_SIG, mode->name, mode->type, mode->hidden, action); g_variant_builder_unref(action_builder); return mode_data; @@ -96,11 +97,21 @@ API modes_h modes_create_mode(const char *name, modes_type_mode_e type) mode->name = strdup(name); mode->type = type; + mode->hidden = false; mode->action_list = NULL; return mode; } +API int modes_set_hidden(modes_h mode, bool hidden) +{ + RETV_IF(NULL == mode, MODES_ERROR_INVALID_PARAMETER); + + mode->hidden = hidden; + + return MODES_ERROR_NONE; +} + API action_h modes_create_action(const char *name, const char *value) { struct mds_action_handle *action; diff --git a/common/dbus.xml b/common/dbus.xml index 604b976..714f539 100644 --- a/common/dbus.xml +++ b/common/dbus.xml @@ -13,7 +13,7 @@ - + diff --git a/common/dbus_def.h b/common/dbus_def.h index 3717cf5..1fb2870 100644 --- a/common/dbus_def.h +++ b/common/dbus_def.h @@ -22,7 +22,7 @@ #define MODES_DBUS_OBJPATH "/org/tizen/modes/dbus" -#define MODES_DBUS_MODE_SIG "(siv)" +#define MODES_DBUS_MODE_SIG "(sibv)" #define MODES_DBUS_ACTION_SIG "(sss)" #define MODES_DBUS_ACTION_LIST_SIG "a" MODES_DBUS_ACTION_SIG diff --git a/include/modes.h b/include/modes.h index 12304b4..c75665c 100644 --- a/include/modes.h +++ b/include/modes.h @@ -104,6 +104,21 @@ int modes_undo_mode(const char *name); */ modes_h modes_create_mode(const char *name, modes_type_mode_e type); +/** + * @brief Set Mode hidden. + * @details Calls this function to hide mode list. + * @since_tizen 6.0 + * @privlevel public + * @param[out] + * @param[in] Mode handle + * @param[in] Mode hidden + * @return @c 0 on success, + * otherwise a negative error value + * @retval #MODES_ERROR_NONE Successful + * @retval #MODES_ERROR_INVALID_PARAMETER Invalid parameter + */ +int modes_set_hidden(modes_h mode, bool hidden); + /** * @brief Create Action. * @details Calls this function to create action. @@ -122,7 +137,7 @@ action_h modes_create_action(const char *name, const char *value); /** * @brief Add Action to Mode. - * @details Calls this function to add action to mode. + * @details Calls this function to set ID to action. * @since_tizen 6.0 * @privlevel public * @param[in] Action handle diff --git a/supervisor/RequestHandler.cpp b/supervisor/RequestHandler.cpp index 6b0f271..2f4d847 100644 --- a/supervisor/RequestHandler.cpp +++ b/supervisor/RequestHandler.cpp @@ -139,9 +139,10 @@ Mode RequestHandler::getModefromData(GVariant *inData) GVariantIter *iter; Mode mode; Mode::ModeType modeType; + gboolean modeHidden; - g_variant_get(inData, MODES_DBUS_MODE_SIG, &modeName, &type, &actionList); - DBG("mode_name : %s // type : %d", modeName, type); + g_variant_get(inData, MODES_DBUS_MODE_SIG, &modeName, &type, &modeHidden, &actionList); + DBG("mode_name : %s // type : %d // hidden : %s", modeName, type, modeHidden? "true" : "false"); switch (type) { case MODES_TYPE_MODE_NORMAL: @@ -158,6 +159,7 @@ Mode RequestHandler::getModefromData(GVariant *inData) mode.setName(modeName); mode.setModeType(modeType); + mode.setHidden(modeHidden); g_free(modeName); g_variant_get(actionList, MODES_DBUS_ACTION_LIST_SIG, &iter); diff --git a/supervisor/XMLGenerator.cpp b/supervisor/XMLGenerator.cpp index 1336e72..3b1e1c2 100644 --- a/supervisor/XMLGenerator.cpp +++ b/supervisor/XMLGenerator.cpp @@ -84,6 +84,8 @@ void XMLGenerator::makeModeXML(const std::string &filename, const Mode &mode) xmlSetProp(modeNode, ModesXMLTag::NAME, (xmlChar*)modeName.c_str()); xmlSetProp(modeNode, ModesXMLTag::TYPE, (xmlChar*)modeType.c_str()); + if (true == mode.isHidden()) + xmlSetProp(modeNode, ModesXMLTag::HIDDEN, (xmlChar*)"true"); xmlAddChild(rootNode, modeNode); std::list> actionList = mode.getActionList(); diff --git a/unittest/modes_test_client.cpp b/unittest/modes_test_client.cpp index e31cd0c..b66418c 100644 --- a/unittest/modes_test_client.cpp +++ b/unittest/modes_test_client.cpp @@ -59,8 +59,13 @@ protected: action_handle[1] = modes_create_action("test.printBool", "off"); modes_action_set_id(action_handle[1], "printBoolOff"); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 2; i++) { result = modes_mode_add_action(mode_handle, action_handle[i]); + EXPECT_EQ(MODES_ERROR_NONE, result); + } + + result = modes_set_hidden(mode_handle, true); + EXPECT_EQ(MODES_ERROR_NONE, result); result = modes_register_mode(mode_handle); modes_destroy_mode(mode_handle);