#include <system_info.h>
#include <telephony.h>
#include <net_connection.h>
+#include <runtime_info.h>
#include <vconf.h>
#include "log.h"
static telephony_handle_list_s handle_list;
static key_cb_ret_e __back_key_cb(void *data);
-static void __moments_initialize_status_util(void);
-static void __moments_register_status_util_callback(void);
-static void __moments_unregister_status_util_callback(void);
-static void __moments_status_battery_state_changed_cb(device_callback_e type, void *value, void *user_data);
-static void __moments_status_call_network_service_state_changed_cb(telephony_h handle, telephony_noti_e noti_id, void *data, void *user_data);
-static void __moments_status_util_network_type_changed_cb(keynode_t *node, void *user_data);
-static void __moments_status_util_flight_mode_changed_cb(keynode_t *node, void *user_data);
-static void __moments_status_util_wifi_state_changed_cb(keynode_t *node, void *user_data);
-static void __moments_status_util_simcard_state_changed_cb(telephony_h handle, telephony_noti_e noti_id, void *data, void *user_data);
-static int __moments_get_round_off_percent(int real_percent);
-static void __moments_get_callsignal_state(bool *is_roaming, int *strength);
-static void __moments_get_network_strength_and_packet_type(int *network_type, int *packet_type);
-static void __moments_get_wifi_strength_and_packet_type(int *strength, int *packet_type);
+static void __initialize_status_view(void);
+static void __register_status_callback(void);
+static void __unregister_status_callback(void);
+static void __battery_state_changed_cb(device_callback_e type, void *value, void *user_data);
+static void __call_network_service_state_changed_cb(telephony_h handle, telephony_noti_e noti_id, void *data, void *user_data);
+static void __network_type_changed_cb(keynode_t *node, void *user_data);
+static void __flight_mode_changed_cb(keynode_t *node, void *user_data);
+static void __wifi_state_changed_cb(keynode_t *node, void *user_data);
+static void __simcard_state_changed_cb(telephony_h handle, telephony_noti_e noti_id, void *data, void *user_data);
+static void __location_service_state_changed_cb(runtime_info_key_e key, void *data);
+static void __get_callsignal_state(bool *is_roaming, int *strength);
+static void __get_network_strength_and_packet_type(int *network_type, int *packet_type);
+static void __get_wifi_strength_and_packet_type(int *strength, int *packet_type);
+static int __get_round_off_percent(int real_percent);
bool moments_get_visible(void)
{
s_info.layout = moments_create_ui(s_info.win);
- __moments_register_status_util_callback();
- __moments_initialize_status_util();
+ __register_status_callback();
+ __initialize_status_view();
moments_control_init();
}
{
moments_control_fini();
- __moments_unregister_status_util_callback();
+ __unregister_status_callback();
moments_destroy_ui();
s_info.layout = NULL;
return KEY_CB_RET_STOP;
}
-static void __moments_initialize_status_util(void)
+static void __initialize_status_view(void)
{
s_info.on_initialization = true;
- __moments_status_battery_state_changed_cb(-1, NULL, NULL);
+ __battery_state_changed_cb(-1, NULL, NULL);
if (moments_check_is_3g_device()) {
_D("This device is 3G DEVICE");
moments_status_callsignal_icon_show();
moments_status_network_icon_show();
- __moments_status_util_simcard_state_changed_cb(NULL, 0, NULL, NULL);
- __moments_status_call_network_service_state_changed_cb(NULL, 0, NULL, NULL);
+ __simcard_state_changed_cb(NULL, 0, NULL, NULL);
+ __call_network_service_state_changed_cb(NULL, 0, NULL, NULL);
+ __location_service_state_changed_cb(0, NULL);
}
s_info.on_initialization = false;
}
-static void __moments_register_status_util_callback(void)
+static void __register_status_callback(void)
{
/* battery */
- device_add_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, __moments_status_battery_state_changed_cb, NULL);
- device_add_callback(DEVICE_CALLBACK_BATTERY_CHARGING, __moments_status_battery_state_changed_cb, NULL);
+ device_add_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, __battery_state_changed_cb, NULL);
+ device_add_callback(DEVICE_CALLBACK_BATTERY_CHARGING, __battery_state_changed_cb, NULL);
if (moments_check_is_3g_device()) {
int ret = TELEPHONY_ERROR_NONE;
return;
}
- ret = telephony_set_noti_cb(handle_list.handle[0], TELEPHONY_NOTI_SIM_STATUS, __moments_status_util_simcard_state_changed_cb, NULL);
+ ret = telephony_set_noti_cb(handle_list.handle[0], TELEPHONY_NOTI_SIM_STATUS, __simcard_state_changed_cb, NULL);
if (ret != TELEPHONY_ERROR_NONE) {
_E("Falied to set telephony notify sim state callback");
return;
}
- ret = telephony_set_noti_cb(handle_list.handle[0], TELEPHONY_NOTI_NETWORK_SERVICE_STATE, __moments_status_call_network_service_state_changed_cb, NULL);
+ ret = telephony_set_noti_cb(handle_list.handle[0], TELEPHONY_NOTI_NETWORK_SERVICE_STATE, __call_network_service_state_changed_cb, NULL);
if (ret != TELEPHONY_ERROR_NONE) {
_E("Falied to set telephony notify service state callback");
return;
}
- ret = telephony_set_noti_cb(handle_list.handle[0], TELEPHONY_NOTI_NETWORK_SIGNALSTRENGTH_LEVEL, __moments_status_call_network_service_state_changed_cb, NULL);
+ ret = telephony_set_noti_cb(handle_list.handle[0], TELEPHONY_NOTI_NETWORK_SIGNALSTRENGTH_LEVEL, __call_network_service_state_changed_cb, NULL);
if (ret != TELEPHONY_ERROR_NONE) {
_E("Falied to set telephony notify signal strength callback");
return;
}
- ret = telephony_set_noti_cb(handle_list.handle[0], TELEPHONY_NOTI_NETWORK_ROAMING_STATUS, __moments_status_call_network_service_state_changed_cb, NULL);
+ ret = telephony_set_noti_cb(handle_list.handle[0], TELEPHONY_NOTI_NETWORK_ROAMING_STATUS, __call_network_service_state_changed_cb, NULL);
if (ret != TELEPHONY_ERROR_NONE) {
_E("Falied to set telephony notify roaming status callback");
return;
}
- ret = telephony_set_noti_cb(handle_list.handle[0], TELEPHONY_NOTI_NETWORK_PS_TYPE, __moments_status_call_network_service_state_changed_cb, NULL);
+ ret = telephony_set_noti_cb(handle_list.handle[0], TELEPHONY_NOTI_NETWORK_PS_TYPE, __call_network_service_state_changed_cb, NULL);
if (ret != TELEPHONY_ERROR_NONE) {
_E("Falied to set telephony notify ps type callback");
return;
}
- vconf_notify_key_changed(VCONFKEY_DNET_STATE, __moments_status_util_network_type_changed_cb, NULL);
+ vconf_notify_key_changed(VCONFKEY_DNET_STATE, __network_type_changed_cb, NULL);
+
+ ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_GPS_STATUS, __location_service_state_changed_cb, NULL);
+ if (ret != RUNTIME_INFO_ERROR_NONE) {
+ _E("Failed to set location changed cb");
+ return;
+ }
}
- vconf_notify_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, __moments_status_util_flight_mode_changed_cb, NULL);
- vconf_notify_key_changed(VCONFKEY_WIFI_STATE, __moments_status_util_wifi_state_changed_cb, NULL);
- vconf_notify_key_changed(VCONFKEY_WIFI_TRANSFER_STATE, __moments_status_util_wifi_state_changed_cb, NULL);
- vconf_notify_key_changed(VCONFKEY_WIFI_STRENGTH, __moments_status_util_wifi_state_changed_cb, NULL);
+ vconf_notify_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, __flight_mode_changed_cb, NULL);
+ vconf_notify_key_changed(VCONFKEY_WIFI_STATE, __wifi_state_changed_cb, NULL);
+ vconf_notify_key_changed(VCONFKEY_WIFI_TRANSFER_STATE, __wifi_state_changed_cb, NULL);
+ vconf_notify_key_changed(VCONFKEY_WIFI_STRENGTH, __wifi_state_changed_cb, NULL);
}
-static void __moments_unregister_status_util_callback(void)
+static void __unregister_status_callback(void)
{
/* Battery */
- device_remove_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, __moments_status_battery_state_changed_cb);
- device_remove_callback(DEVICE_CALLBACK_BATTERY_CHARGING, __moments_status_battery_state_changed_cb);
+ device_remove_callback(DEVICE_CALLBACK_BATTERY_CAPACITY, __battery_state_changed_cb);
+ device_remove_callback(DEVICE_CALLBACK_BATTERY_CHARGING, __battery_state_changed_cb);
if (moments_check_is_3g_device()) {
/* Call Signal */
int ret = TELEPHONY_ERROR_NONE;
+ ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_GPS_STATUS);
+ if (ret != RUNTIME_INFO_ERROR_NONE) {
+ _E("Failed to unregister location service state");
+ }
+
ret = telephony_unset_noti_cb(handle_list.handle[0], TELEPHONY_NOTI_NETWORK_PS_TYPE);
if (ret != TELEPHONY_ERROR_NONE) {
_E("Failed to unregister service state");
_E("Failed to deinitialize telephony");
}
- vconf_ignore_key_changed(VCONFKEY_DNET_STATE, __moments_status_util_network_type_changed_cb);
+ vconf_ignore_key_changed(VCONFKEY_DNET_STATE, __network_type_changed_cb);
}
- vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, __moments_status_util_flight_mode_changed_cb);
- vconf_ignore_key_changed(VCONFKEY_WIFI_STATE, __moments_status_util_wifi_state_changed_cb);
- vconf_ignore_key_changed(VCONFKEY_WIFI_TRANSFER_STATE, __moments_status_util_wifi_state_changed_cb);
- vconf_ignore_key_changed(VCONFKEY_WIFI_STRENGTH, __moments_status_util_wifi_state_changed_cb);
+ vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, __flight_mode_changed_cb);
+ vconf_ignore_key_changed(VCONFKEY_WIFI_STATE, __wifi_state_changed_cb);
+ vconf_ignore_key_changed(VCONFKEY_WIFI_TRANSFER_STATE, __wifi_state_changed_cb);
+ vconf_ignore_key_changed(VCONFKEY_WIFI_STRENGTH, __wifi_state_changed_cb);
}
-static void __moments_status_battery_state_changed_cb(device_callback_e type, void *value, void *user_data)
+static void __battery_state_changed_cb(device_callback_e type, void *value, void *user_data)
{
int ret = -1;
int percent = 0;
_E("Failed to get battery percent");
}
- converted_percent = __moments_get_round_off_percent(percent);
+ converted_percent = __get_round_off_percent(percent);
moments_status_battery_update(percent, converted_percent, is_charging);
}
callsignal_strength = MOMENT_STATUS_UTIL_FLIGHT_MODE;
network_type = MOMENT_STATUS_UTIL_NETWORK_DISABLE;
packet_type = MOMENT_STATUS_UTIL_NETWORK_PS_DISABLE;
+ moments_status_location_icon_hide();
} else {
if (service_state == TELEPHONY_NETWORK_SERVICE_STATE_IN_SERVICE) {
- __moments_get_callsignal_state(&is_roaming, &callsignal_strength);
+ __get_callsignal_state(&is_roaming, &callsignal_strength);
if (wifi_state == VCONFKEY_WIFI_CONNECTED) {
- __moments_get_wifi_strength_and_packet_type(&network_type, &packet_type);
+ __get_wifi_strength_and_packet_type(&network_type, &packet_type);
} else {
- __moments_get_network_strength_and_packet_type(&network_type, &packet_type);
+ __get_network_strength_and_packet_type(&network_type, &packet_type);
}
+ moments_status_location_icon_show();
} else {
if (wifi_state == VCONFKEY_WIFI_CONNECTED) {
- __moments_get_wifi_strength_and_packet_type(&network_type, &packet_type);
+ __get_wifi_strength_and_packet_type(&network_type, &packet_type);
} else {
callsignal_strength = MOMENT_STATUS_UTIL_CALL_DISABLE;
network_type = MOMENT_STATUS_UTIL_NETWORK_DISABLE;
packet_type = MOMENT_STATUS_UTIL_NETWORK_PS_DISABLE;
}
+ moments_status_location_icon_hide();
}
}
moments_status_callsignal_update(callsignal_strength, is_roaming);
moments_status_update_view();
}
-static void __moments_status_call_network_service_state_changed_cb(telephony_h handle, telephony_noti_e noti_id, void *data, void *user_data)
+static void __call_network_service_state_changed_cb(telephony_h handle, telephony_noti_e noti_id, void *data, void *user_data)
{
_D("Call & network Service State is changed");
int is_flight = 0;
__moments_manager_update_status_view(is_flight, (int)service_state, wifi_state);
}
-static void __moments_status_util_flight_mode_changed_cb(keynode_t *node, void *user_data)
+static void __flight_mode_changed_cb(keynode_t *node, void *user_data)
{
_D("Flight Mode is changed");
}
-static void __moments_status_util_wifi_state_changed_cb(keynode_t *node, void *user_data)
+static void __wifi_state_changed_cb(keynode_t *node, void *user_data)
{
_D("Wifi State is changed");
}
-static void __moments_status_util_network_type_changed_cb(keynode_t *node, void *user_data)
+static void __network_type_changed_cb(keynode_t *node, void *user_data)
{
- __moments_status_call_network_service_state_changed_cb(NULL, 0, NULL, NULL);
+ __call_network_service_state_changed_cb(NULL, 0, NULL, NULL);
}
-static void __moments_status_util_simcard_state_changed_cb(telephony_h handle, telephony_noti_e noti_id, void *data, void *user_data)
+static void __simcard_state_changed_cb(telephony_h handle, telephony_noti_e noti_id, void *data, void *user_data)
{
_D("SIM STATE CHANGED[%d]", (int)data);
telephony_sim_state_e sim_state = TELEPHONY_SIM_STATE_UNAVAILABLE;
moments_status_update_view();
}
-static void __moments_get_callsignal_state(bool *is_roaming, int *strength)
+static void __location_service_state_changed_cb(runtime_info_key_e key, void *data)
+{
+ _D("LOCATION SERVICE STATE CHANGED");
+ runtime_info_gps_status_e gps_status = 0;
+
+ if (runtime_info_get_value_int(RUNTIME_INFO_KEY_GPS_STATUS, (int *)&gps_status) < 0) {
+ _E("Failed to get location service state");
+ return;
+ }
+
+ if (gps_status == RUNTIME_INFO_GPS_STATUS_CONNECTED) {
+ _D("Location is available, Show LOCATION icon");
+ moments_status_location_icon_show();
+ } else {
+ _D("Location is unavailable, Hide LOCATION icon");
+ moments_status_location_icon_hide();
+ }
+ moments_status_update_view();
+}
+
+static void __get_callsignal_state(bool *is_roaming, int *strength)
{
telephony_network_rssi_e callsignal_strength = TELEPHONY_NETWORK_RSSI_0;
*strength = (int)callsignal_strength;
}
-static void __moments_get_network_strength_and_packet_type(int *network_type, int *packet_type)
+static void __get_network_strength_and_packet_type(int *network_type, int *packet_type)
{
telephony_network_type_e n_type = TELEPHONY_NETWORK_TYPE_UNKNOWN;
telephony_network_ps_type_e p_type = TELEPHONY_NETWORK_PS_TYPE_UNKNOWN;
*packet_type = (int)p_type;
}
-static void __moments_get_wifi_strength_and_packet_type(int *strength, int *packet_type)
+static void __get_wifi_strength_and_packet_type(int *strength, int *packet_type)
{
int wifi_transfer = 0;
}
}
-static int __moments_get_round_off_percent(int real_percent)
+static int __get_round_off_percent(int real_percent)
{
if (real_percent >= 100) return 100;
else if (real_percent < 5) return 0;
#if TEST_MODE
int __t__get_round_off_percent(int real_percent)
{
- return __moments_get_round_off_percent(real_percent);
+ return __get_round_off_percent(real_percent);
}
void __t__moments_restore_status_battery(void)
{
- __moments_status_battery_state_changed_cb(-1, NULL, NULL);
+ __battery_state_changed_cb(-1, NULL, NULL);
}
void __t__moments_restore_status_call_network_service_state(void)
{
- __moments_status_call_network_service_state_changed_cb(NULL, 0, NULL, NULL);
+ __call_network_service_state_changed_cb(NULL, 0, NULL, NULL);
}
void __t__moments_manager_update_status_view(int is_flight, int service_state, int wifi_state)
void __t__moments_get_callsignal_state(bool *is_roaming, int *strength)
{
- __moments_get_callsignal_state(is_roaming, strength);
+ __get_callsignal_state(is_roaming, strength);
}
void __t__moments_get_wifi_strength_and_packet_type(int *strength, int *packet_type)
{
- __moments_get_wifi_strength_and_packet_type(strength, packet_type);
+ __get_wifi_strength_and_packet_type(strength, packet_type);
}
void __t__moments_get_network_strength_and_packet_type(int *network_type, int *packet_type)
{
- __moments_get_network_strength_and_packet_type(network_type, packet_type);
+ __get_network_strength_and_packet_type(network_type, packet_type);
}
#endif