--- /dev/null
+group { name: "gl_custom_item";
+ styles{
+ style { name: "text_style";
+ base: "color=#000000FF font=Tizen:style=Regular font_size=30 text_class=list_item ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ tag: "b" "+ font_weight=Bold";
+ tag: "match" "+ color=#0051B5FF";
+ }
+ }
+ parts {
+ part { name: "base";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 120; //GENLIST_ITEM_1LINE_HEIGHT
+ }
+ }
+ part { name: "left_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 24 0;
+ align: 0.0 0.0;
+ rel1 { to: "base"; relative: 0.0 0.0; }
+ rel2 { to: "base"; relative: 0.0 1.0; }
+ }
+ }
+ part { name: "right_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 24 0;
+ align: 1.0 0.0;
+ rel1 { to: "base"; relative: 1.0 0.0; }
+ rel2 { to: "base"; relative: 1.0 1.0; }
+ }
+ }
+ part { name: "top_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 17;
+ align: 0.0 0.0;
+ rel1 { to_x: "left_padding"; to_y: "base"; relative: 1.0 0.0; }
+ rel2 { to_x: "right_padding"; to_y: "base"; relative: 0.0 0.0; }
+ }
+ }
+ part { name: "elm.text";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 41;
+ align: 0.0 0.0;
+ rel1 { to: "top_padding"; relative: 0.0 1.0; }
+ rel2 { to: "top_padding"; relative: 1.0 1.0; }
+ }
+ }
+ part { name: "text_content_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 10;
+ align: 0.0 0.0;
+ rel1 { to: "elm.text"; relative: 0.0 1.0; }
+ rel2 { to: "elm.text"; relative: 1.0 1.0; }
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0.5 0.0;
+ rel1 { to: "text_content_padding"; relative: 0.0 1.0; }
+ rel2 { to: "bottom_padding"; relative: 1.0 0.0; }
+ }
+ }
+ part { name: "bottom_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 24;
+ align: 0.5 1.0;
+ rel1 { to: "base"; relative: 0.0 1.0; }
+ rel2 { to: "base"; relative: 1.0 1.0; }
+ }
+ }
+ }
+}
/*#define POLICY_XML_FILE_PATH "/home/owner/test.xml"*/
#define POLICY_XML_FILE_PATH "/usr/apps/org.tizen.dpm-toolkit/test.xml"
-static Elm_Genlist_Item_Class* itc_policy_group, * itc_policy;
+static Elm_Genlist_Item_Class* itc_policy_group, * itc_policy, * itc_policy_entry;
static xmlDoc* dpmDoc = NULL;
void _popup_hide_cb(void* data, Evas_Object* obj, void* event_info)
void dpm_parser_free_policy_list(void)
{
-
dlog_print(DLOG_DEBUG, LOG_TAG, "## policy list free ## ");
GList* pg_list = NULL;
return NULL;
}
+static void _entry_cb(void* data, Evas_Object* obj, void* event_info, const char* smart_event)
+{
+ dpm_toolkit_entity_t* selected_entity = (dpm_toolkit_entity_t*)data;
+ Evas_Object* entry = obj;
+ const char* entry_str = NULL;
+ entry_str = elm_entry_entry_get(entry);
+
+ /* Free previous entry */
+ g_free(selected_entity->entry_input);
+ selected_entity->entry_input = strdup(entry_str);
+}
+
+static void _entry_changed_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ _entry_cb(data, obj, event_info, "changed");
+}
+
+static void _entry_preedit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ _entry_cb(data, obj, event_info, "preedit,changed");
+}
+
+static Evas_Object* _gl_entry_content_get(void* data, Evas_Object* obj, const char* part)
+{
+ Evas_Object* layout, * entry, * label;
+ dpm_toolkit_entity_t* selected_entity = NULL;
+
+ selected_entity = (dpm_toolkit_entity_t*)data;
+
+ layout = elm_layout_add(obj);
+ elm_layout_file_set(layout, global_ad->edj_path, "gl_custom_item");
+ evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ label = elm_label_add(obj);
+ evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0);
+ evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_text_set(label, (const char*)xmlGetProp(selected_entity->model, (xmlChar*) "desc"));
+ elm_object_part_content_set(layout, "elm.text", label);
+
+ entry = elm_entry_add(obj);
+ elm_entry_single_line_set(entry, EINA_TRUE);
+ elm_entry_scrollable_set(entry, EINA_TRUE);
+ evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_entry_entry_set(entry, (const char*)xmlGetProp(selected_entity->model, (xmlChar*) "default"));
+ selected_entity->entry_input = strdup((char*)xmlGetProp((xmlNodePtr)selected_entity->model, (xmlChar*) "default"));
+
+ elm_object_part_content_set(layout, "elm.swallow.content" , entry);
+ evas_object_smart_callback_add(entry, "changed", _entry_changed_cb, selected_entity);
+ evas_object_smart_callback_add(entry, "preedit,changed", _entry_preedit_cb, selected_entity);
+
+ return layout;
+}
+
static void create_genlist_items_classes()
{
itc_policy_group = elm_genlist_item_class_new();
itc_policy->func.state_get = NULL;
itc_policy->func.del = NULL;
+ itc_policy_entry = elm_genlist_item_class_new();
+ itc_policy_entry->item_style = "full";
+ itc_policy_entry->func.text_get = NULL;
+ itc_policy_entry->func.content_get = _gl_entry_content_get;
+ itc_policy_entry->func.state_get = NULL;
+ itc_policy_entry->func.del = NULL;
+
}
static Eina_Bool naviframe_pop_cb(void* data, Elm_Object_Item* it)
{
dpm_toolkit_entity_t* selected_policy = (dpm_toolkit_entity_t*) data;
int ret = selected_policy->handler(selected_policy);
+ elm_genlist_item_selected_set((Elm_Object_Item*) event_info, EINA_FALSE);
if (ret == POLICY_RESULT_SUCCESS)
display_result_popup((char*)xmlGetProp((xmlNodePtr) selected_policy->model, (xmlChar*) "desc"), POLICY_SUCCESS_TXT);
}
+static void _gl_policy_entry_select(void* data, Evas_Object* obj, void* event_info)
+{
+ elm_genlist_item_selected_set((Elm_Object_Item*)event_info, EINA_FALSE);
+}
+
static void _gl_policy_group_select(void* data, Evas_Object* obj, void* event_info)
{
Evas_Object* genlist = elm_genlist_add(global_ad->nf);
for (policyList = g_list_first(selected_group->policies); (policyList && policyList->data); policyList = g_list_next(policyList)) {
policy_entity_info = (dpm_toolkit_entity_t*) policyList->data;
- if (xmlStrcmp(xmlGetProp(policy_entity_info->model, (xmlChar*) "status"), (xmlChar*) "ON") == 0)
+ if (xmlStrcmp(xmlGetProp(policy_entity_info->model, (xmlChar*) "status"), (xmlChar*) "ON") != 0)
+ continue;
+ if (xmlStrcmp(xmlGetProp(policy_entity_info->model, (xmlChar*) "entry"), (xmlChar*) "ON") == 0) {
+ elm_genlist_item_append(genlist, itc_policy, (void*)policy_entity_info, NULL, ELM_GENLIST_ITEM_NONE, _gl_policy_select, (void*)policy_entity_info);
+ elm_genlist_item_append(genlist, itc_policy_entry, (void*)policy_entity_info, NULL, ELM_GENLIST_ITEM_NONE, _gl_policy_entry_select, (void*)policy_entity_info);
+ } else
elm_genlist_item_append(genlist, itc_policy, (void*)policy_entity_info, NULL, ELM_GENLIST_ITEM_NONE, _gl_policy_select, (void*)policy_entity_info);
}
elm_naviframe_item_push(global_ad->nf, selected_group->id, NULL, NULL, genlist, NULL);
GList* g_list = NULL;
ad->list = elm_genlist_add(ad->nf);
- dlog_print(DLOG_ERROR, LOG_TAG, "g_list_length(ad->dpm_policy_group_list) = %d", g_list_length(effective_dpm_policy_group_list));
+ dlog_print(DLOG_DEBUG, LOG_TAG, "g_list_length(ad->dpm_policy_group_list) = %d", g_list_length(effective_dpm_policy_group_list));
for (g_list = g_list_first(effective_dpm_policy_group_list); (g_list && g_list->data); g_list = g_list_next(g_list)) {
-
policy_group = (dpm_toolkit_policy_group_t *) g_list->data;
elm_genlist_item_append(ad->list, itc_policy_group, (void*)policy_group, NULL, ELM_GENLIST_ITEM_NONE, _gl_policy_group_select, (void*)policy_group);
}
static void create_base_gui(appdata_s* ad)
{
Elm_Object_Item* nf_it;
- dlog_print(DLOG_ERROR, LOG_TAG, "create base gui");
+ char* res_path = NULL;
+ char* edj_path = NULL;
+ size_t path_size;
+ dlog_print(DLOG_DEBUG, LOG_TAG, "create base gui");
+
+ /* Get EDJ path */
+ res_path = app_get_resource_path();
+ if (res_path == NULL) {
+ dlog_print(DLOG_ERROR, LOG_TAG, "failed get resource path");
+ ui_app_exit();
+ return;
+ }
+ path_size = strlen(res_path) + strlen("org.tizen.dpm-toolkit.edj") + 1;
+ edj_path = (char*)malloc(path_size);
+ if (edj_path == NULL) {
+ dlog_print(DLOG_ERROR, LOG_TAG, "malloc fail");
+ ui_app_exit();
+ return;
+ }
+ snprintf(edj_path, path_size, "%s%s", res_path, "org.tizen.dpm-toolkit.edj");
+ global_ad->edj_path = strdup(edj_path);
+ free(res_path);
+
/* Window */
ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
elm_win_conformant_set(ad->win, EINA_TRUE);
#include "dpm-toolkit.h"
+#include <dpm/password.h>
+
+/* dpm integration test */
+
+int password_set_password_quality_handler(struct dpm_toolkit_entity* self)
+{
+ dpm_client_h handle;
+ dpm_toolkit_entity_t* selected_policy = self;
+ char* param_username = NULL;
+ char* param_quality = NULL;
+
+ handle = dpm_create_client();
+ if (handle == NULL) {
+ dlog_print(DLOG_ERROR, LOG_TAG, "Failed to create client handle");
+ return POLICY_RESULT_FAIL;
+ }
+
+ param_username = (char*)xmlGetProp(selected_policy->model, (xmlChar*)"username");
+ param_quality = (char*)xmlGetProp(selected_policy->model, (xmlChar*)"quality");
+ if (param_username == NULL || param_quality == NULL) {
+ dlog_print(DLOG_ERROR, LOG_TAG, "not founded parameter");
+ return POLICY_RESULT_FAIL;
+ }
+ dlog_print(DLOG_DEBUG, LOG_TAG, "username: %s quality: %s", param_username, param_quality);
+ if (dpm_set_password_quality(handle, param_username, (int)param_quality) == 0) {
+ dpm_destroy_client(handle);
+ return POLICY_RESULT_SUCCESS;
+ }
+
+ dpm_destroy_client(handle);
+ return POLICY_RESULT_FAIL;
+}
int set_enforce_password_handler(struct dpm_toolkit_entity* self)
{
return -1;
}
dlog_print(DLOG_DEBUG, LOG_TAG, "status : %s ", param);
-
+ dlog_print(DLOG_DEBUG, LOG_TAG, "entry : %s ", selected_policy->entry_input);
xmlFree(param);
return POLICY_RESULT_SUCCESS;
}
int set_password_recovery(struct dpm_toolkit_entity* self)
{
dlog_print(DLOG_DEBUG, LOG_TAG, "set_password_recovery");
+ dlog_print(DLOG_DEBUG, LOG_TAG, "entry: %s ", self->entry_input);
return POLICY_RESULT_SUCCESS;
}
{
.id = "SET_PASSWORD_RECOVERY",
.handler = set_password_recovery
+ },
+ {
+ .id = "SET_PASSWORD_QUALITY",
+ .handler = password_set_password_quality_handler
}
};
if (ret < 0)
dlog_print(DLOG_ERROR, LOG_TAG, "add password group fail");
}
-