/*
* ug-mobile-ap
*
-* Copyright 2012 Samsung Electronics Co., Ltd
+* Copyright 2012-2013 Samsung Electronics Co., Ltd
-* Licensed under the Flora License, Version 1.0 (the "License");
+* Licensed under the Flora License, Version 1.1 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
-* http://www.tizenopensource.org/license
+* http://floralicense.org/license
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
#include "mobile_hotspot.h"
#include "mh_view_main.h"
#include "mh_func_onoff.h"
+#include "mh_common_utility.h"
-static Evas_Object *create_content(Evas_Object *parent,
- mh_ugdata_t *ugd, mh_appdata_t *ad)
+static Evas_Object *create_content(mh_appdata_t *ad)
{
__MOBILE_AP_FUNC_ENTER__;
- ad->naviframe = _create_naviframe(ugd->base);
+ ad->naviframe = _create_naviframe(ad->layout);
ap_draw_contents(ad);
- /* init internationalization */
- dgettext(PACKAGE, LOCALEDIR);
-
__MOBILE_AP_FUNC_EXIT__;
return ad->naviframe;
}
-static Evas_Object *create_fullview(Evas_Object *parent, mh_ugdata_t *ugd)
-{
- __MOBILE_AP_FUNC_ENTER__;
-
- Evas_Object *base;
- Evas_Object *bg;
-
- /* Create Full view */
- base = _create_layout(parent);
- if (base == NULL) {
- ERR("base is NULL\n");
- return NULL;
- }
-
- bg = _create_bg(base, "group_list");
- if (bg == NULL) {
- ERR("bg is NULL\n");
- evas_object_del(base);
- return NULL;
- }
- elm_object_part_content_set(base, "elm.swallow.bg", bg);
-
- elm_win_resize_object_add(parent, base);
-
- __MOBILE_AP_FUNC_EXIT__;
- return base;
-}
-
-static Evas_Object *create_frameview(Evas_Object *parent, mh_ugdata_t *ugd)
-{
- __MOBILE_AP_FUNC_ENTER__;
-
- Evas_Object *base;
- Evas_Object *bg;
-
- /* Create Frame view */
- base = _create_layout(parent);
- if (base == NULL) {
- ERR("base is NULL\n");
- return NULL;
- }
-
- bg = _create_bg(base, "group_list");
- if (bg == NULL) {
- ERR("bg is NULL\n");
- evas_object_del(base);
- return NULL;
- }
- elm_object_part_content_set(base, "elm.swallow.bg", bg);
-
- elm_win_resize_object_add(parent, base);
-
- __MOBILE_AP_FUNC_EXIT__;
- return base;
-}
-
static void __set_callbacks(tethering_h handle, void *user_data)
{
- tethering_set_enabled_cb(handle, TETHERING_TYPE_USB, _enabled_cb, user_data);
- tethering_set_enabled_cb(handle, TETHERING_TYPE_WIFI, _enabled_cb, user_data);
- tethering_set_enabled_cb(handle, TETHERING_TYPE_BT, _enabled_cb, user_data);
+ int ret;
+
+ ret = tethering_set_enabled_cb(handle, TETHERING_TYPE_ALL,
+ _enabled_cb, user_data);
+ if (ret != TETHERING_ERROR_NONE)
+ ERR("tethering_set_enabled_cb [0x%X]\n", ret);
- tethering_set_disabled_cb(handle, TETHERING_TYPE_USB, _disabled_cb, user_data);
- tethering_set_disabled_cb(handle, TETHERING_TYPE_WIFI, _disabled_cb, user_data);
- tethering_set_disabled_cb(handle, TETHERING_TYPE_BT, _disabled_cb, user_data);
+ ret = tethering_set_disabled_cb(handle, TETHERING_TYPE_ALL,
+ _disabled_cb, user_data);
+ if (ret != TETHERING_ERROR_NONE)
+ ERR("tethering_set_disabled_cb [0x%X]\n", ret);
- tethering_set_connection_state_changed_cb(handle, TETHERING_TYPE_USB, _connection_changed_cb, user_data);
- tethering_set_connection_state_changed_cb(handle, TETHERING_TYPE_WIFI, _connection_changed_cb, user_data);
- tethering_set_connection_state_changed_cb(handle, TETHERING_TYPE_BT, _connection_changed_cb, user_data);
+ ret = tethering_set_connection_state_changed_cb(handle,
+ TETHERING_TYPE_ALL,
+ _connection_changed_cb, user_data);
+ if (ret != TETHERING_ERROR_NONE)
+ ERR("tethering_set_connection_state_changed_cb [0x%X]\n", ret);
}
static void __unset_callbacks(tethering_h handle)
{
- tethering_unset_enabled_cb(handle, TETHERING_TYPE_USB);
- tethering_unset_enabled_cb(handle, TETHERING_TYPE_WIFI);
- tethering_unset_enabled_cb(handle, TETHERING_TYPE_BT);
+ int ret;
- tethering_unset_disabled_cb(handle, TETHERING_TYPE_USB);
- tethering_unset_disabled_cb(handle, TETHERING_TYPE_WIFI);
- tethering_unset_disabled_cb(handle, TETHERING_TYPE_BT);
+ ret = tethering_unset_connection_state_changed_cb(handle,
+ TETHERING_TYPE_ALL);
+ if (ret != TETHERING_ERROR_NONE)
+ ERR("tethering_unset_connection_state_changed_cb[0x%X]\n", ret);
+
+ ret = tethering_unset_disabled_cb(handle, TETHERING_TYPE_ALL);
+ if (ret != TETHERING_ERROR_NONE)
+ ERR("tethering_unset_disabled_cb [0x%X]\n", ret);
- tethering_unset_connection_state_changed_cb(handle, TETHERING_TYPE_USB);
- tethering_unset_connection_state_changed_cb(handle, TETHERING_TYPE_WIFI);
- tethering_unset_connection_state_changed_cb(handle, TETHERING_TYPE_BT);
+ ret = tethering_unset_enabled_cb(handle, TETHERING_TYPE_ALL);
+ if (ret != TETHERING_ERROR_NONE)
+ ERR("tethering_unset_enabled [0x%X]\n", ret);
}
static void *on_create(ui_gadget_h ug, enum ug_mode mode,
return NULL;
}
+ if (mode != UG_MODE_FULLVIEW) {
+ ERR("Only Fullview is supported\n");
+ return NULL;
+ }
+
+ Evas_Object *layout;
Evas_Object *content;
mh_ugdata_t *ugd;
mh_appdata_t *ad;
int ret;
bindtextdomain(MH_TEXT_DOMAIN, MH_LOCALEDIR);
+ dgettext(PACKAGE, LOCALEDIR);
ad = (mh_appdata_t *)malloc(sizeof(mh_appdata_t));
if (ad == NULL) {
}
memset(ad, 0x0, sizeof(mh_appdata_t));
- if (tethering_create(&ad->handle) != TETHERING_ERROR_NONE) {
- ERR("tethering_create is failed\n");
+ ugd = (mh_ugdata_t *)priv;
+ ugd->ad = ad;
+ ugd->ug = ug;
+ ad->gadget = ugd;
+
+ ecore_imf_init();
+
+ ret = tethering_create(&ad->handle);
+ if (ret != TETHERING_ERROR_NONE) {
+ ERR("tethering_create is failed : %d\n", ret);
free(ad);
+ ugd->ad = NULL;
return NULL;
}
- ugd = (mh_ugdata_t *)priv;
- ugd->ad = ad;
- ugd->ug = ug;
- ad->gadget= ugd;
ad->win = ug_get_parent_layout(ug);
if (!ad->win) {
ERR("ad->win is NULL\n");
free(ad);
+ ugd->ad = NULL;
return NULL;
}
- if (mode == UG_MODE_FULLVIEW)
- ugd->base = create_fullview(ad->win, ugd);
- else
- ugd->base = create_frameview(ad->win, ugd);
+ layout = _create_win_layout(ad);
+ if (layout == NULL) {
+ ERR("_create_win_layout is failed\n");
+ free(ad);
+ ugd->ad = NULL;
+ return NULL;
+ }
- if (ugd->base) {
- content = create_content(ad->win, ugd, ad);
- elm_object_part_content_set(ugd->base, "elm.swallow.content", content);
- evas_object_show(ugd->base);
+ content = create_content(ad);
+ if (content == NULL) {
+ ERR("create_content is failed\n");
+ free(ad);
+ ugd->ad = NULL;
+ return NULL;
}
+ elm_object_part_content_set(layout, "elm.swallow.content", content);
+ evas_object_show(layout);
+
ret = connection_create(&ad->conn_handle);
if (ret != CONNECTION_ERROR_NONE) {
ERR("connection_create() is failed : %d\n", ret);
__set_callbacks(ad->handle, (void *)ad);
__MOBILE_AP_FUNC_EXIT__;
- return ugd->base;
+ return layout;
}
static void on_start(ui_gadget_h ug, service_h service, void *priv)
{
__MOBILE_AP_FUNC_ENTER__;
- if (!ug || !priv) {
+ if (priv == NULL) {
ERR("The param is NULL\n");
return;
}
mh_ugdata_t *ugd = priv;
+ mh_appdata_t *ad = ugd->ad;
int ret = 0;
- if (ugd->ad == NULL || ugd->base == NULL) {
+ if (ad == NULL) {
ERR("The param is NULL\n");
return;
}
- __unset_callbacks(ugd->ad->handle);
-
- _stop_update_data_packet_usage(ugd->ad);
- DBG("After Stop update data packet usage\n");
+ __unset_callbacks(ad->handle);
+ _stop_update_data_packet_usage(ad);
ret = wifi_deinitialize();
if (ret != WIFI_ERROR_NONE) {
ERR("wifi_deinitialize() is failed : %d\n", ret);
}
- ret = connection_destroy(ugd->ad->conn_handle);
+ ret = connection_destroy(ad->conn_handle);
if (ret != CONNECTION_ERROR_NONE) {
ERR("connection_destroy() is failed : %d\n", ret);
}
- ap_callback_del(ugd->ad);
- DBG("After deleting callback functions \n");
+ ret = tethering_destroy(ad->handle);
+ if (ret != TETHERING_ERROR_NONE) {
+ ERR("tethering_destroy() is failed : %d\n", ret);
+ }
- ret = tethering_destroy(ugd->ad->handle);
- DBG("The result of tethering_destroy is %d\n", ret);
+ if (ad->layout == NULL) {
+ ERR("ad->layout is NULL\n");
+ free(ugd->ad);
+ ugd->ad = NULL;
+ return;
+ }
- if (ugd->ad->popup) {
- evas_object_del(ugd->ad->popup);
- ugd->ad->popup = NULL;
+ ap_callback_del(ad);
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
}
- evas_object_del(ugd->base);
- ugd->base = NULL;
+
+ evas_object_del(ad->bg);
+ ad->bg = NULL;
+
+ evas_object_del(ad->layout);
+ ad->layout = NULL;
+
+ ecore_imf_shutdown();
free(ugd->ad);
ugd->ad = NULL;
__MOBILE_AP_FUNC_EXIT__;
+ return;
}
static void on_message(ui_gadget_h ug, service_h msg,
{
}
+static void __rotate_changed_cb(mh_appdata_t *ad, enum ug_event rotate_state)
+{
+ if (ad == NULL) {
+ ERR("ad is NULL\n");
+ return;
+ }
+
+ Elm_Object_Item *top_navi_it = NULL;
+ mh_wifi_setting_view_t *st = &ad->setup;
+
+ ad->rotate_state = rotate_state;
+
+ top_navi_it = elm_naviframe_top_item_get(ad->naviframe);
+ if (top_navi_it == NULL) {
+ ERR("elm_naviframe_top_item_get returns NULL\n");
+ return;
+ }
+
+ if (top_navi_it != st->navi_it) {
+ return;
+ }
+
+ if (rotate_state == UG_EVENT_ROTATE_PORTRAIT ||
+ rotate_state == UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN) {
+ DBG("Naviframe title is shown\n");
+ elm_naviframe_item_title_visible_set(st->navi_it,
+ EINA_TRUE);
+ } else if (rotate_state == UG_EVENT_ROTATE_LANDSCAPE ||
+ rotate_state == UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN) {
+ if (ad->imf_state == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
+ DBG("Naviframe title is hided\n");
+ elm_naviframe_item_title_visible_set(st->navi_it,
+ EINA_FALSE);
+ }
+ } else {
+ ERR("Unknown rotate_state : %d\n", rotate_state);
+ }
+
+ return;
+}
+
static void on_event(ui_gadget_h ug, enum ug_event event,
service_h service, void *priv)
{
return;
}
+ mh_ugdata_t *ugd = (mh_ugdata_t *)priv;
+ mh_appdata_t *ad = ugd->ad;
+
switch (event) {
case UG_EVENT_LOW_MEMORY:
DBG("UG_EVENT_LOW_MEMORY\n");
DBG("UG_EVENT_LANG_CHANGE\n");
break;
case UG_EVENT_ROTATE_PORTRAIT:
- DBG("UG_EVENT_ROTATE_PORTRAIT\n");
- break;
case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
- DBG("UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN\n");
+ DBG("UG_EVENT_ROTATE_PORTRAIT[_UPSIDEDOWN]\n");
+ __rotate_changed_cb(ad, event);
break;
case UG_EVENT_ROTATE_LANDSCAPE:
- DBG("UG_EVENT_ROTATE_LANDSCAPE\n");
- break;
case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
- DBG("UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN\n");
+ DBG("UG_EVENT_ROTATE_LANDSCAPE[_UPSIDEDOWN]\n");
+ __rotate_changed_cb(ad, event);
break;
default:
DBG("default\n");
}
mh_ugdata_t *ugd = (mh_ugdata_t *)priv;
- mh_appdata_t *ad = (mh_appdata_t *)ugd->ad;
+ mh_appdata_t *ad = ugd->ad;
if (ad == NULL) {
ERR("ad is NULL\n");
switch (event) {
case UG_KEY_EVENT_END:
- DBG("UG_KEY_EVENT_END is received : %p\n", ad->popup);
- if (NULL == ad->popup) {
+ DBG("UG_KEY_EVENT_END is received : %p\n", ad->popup);
+ if (NULL == ad->popup)
ug_destroy_me(ug);
- break;
- }
-
- if (ad->popup_type != MH_POP_INFORMATION_WO_BUTTON) {
- evas_object_del(ad->popup);
- ad->popup = NULL;
- ad->popup_type = MH_POPUP_NONE;
- }
+ else
+ _destroy_popup(ad);
break;
default:
return;
}
- mh_ugdata_t *ugd;
- ugd = ops->priv;
+ mh_ugdata_t *ugd = (mh_ugdata_t *)ops->priv;
if (ugd)
free(ugd);