summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryoungsub ko <ys4610.ko@samsung.com>2013-05-02 15:05:42 +0900
committeryoungsub ko <ys4610.ko@samsung.com>2013-05-02 15:05:42 +0900
commitc2ce1c4c909c07a1cd023390389db420c41f92ef (patch)
tree9e0fb8828b224096e298df722f29031bc2653187
parent303e9becb49a79d53db9c6a5c1d8ba9c333cb45d (diff)
downloadquickpanel-c2ce1c4c909c07a1cd023390389db420c41f92ef.tar.gz
quickpanel-c2ce1c4c909c07a1cd023390389db420c41f92ef.tar.bz2
quickpanel-c2ce1c4c909c07a1cd023390389db420c41f92ef.zip
sync with private git
-rwxr-xr-xCMakeLists.txt4
-rwxr-xr-xdaemon/common.c33
-rwxr-xr-xdaemon/common.h13
-rwxr-xr-xdaemon/device/brightness.c81
-rwxr-xr-xdaemon/idletxt/idletxt.c8
-rwxr-xr-xdaemon/list_util.c5
-rwxr-xr-xdaemon/media.c36
-rwxr-xr-xdaemon/media.h1
-rwxr-xr-xdaemon/minictrl/minictrl.c11
-rwxr-xr-xdaemon/modules.c9
-rwxr-xr-xdaemon/notifications/animated_image.c124
-rwxr-xr-xdaemon/notifications/animated_image.h25
-rwxr-xr-xdaemon/notifications/noti.c74
-rwxr-xr-xdaemon/notifications/noti_box.c71
-rwxr-xr-xdaemon/notifications/noti_gridbox.c4
-rwxr-xr-xdaemon/notifications/noti_list_item.c108
-rwxr-xr-xdaemon/notifications/noti_listbox.c7
-rwxr-xr-xdaemon/notifications/noti_section.c5
-rwxr-xr-xdaemon/notifications/noti_util.c2
-rwxr-xr-xdaemon/notifications/ticker.c161
-rwxr-xr-xdaemon/quickpanel-ui.c108
-rwxr-xr-xdaemon/quickpanel-ui.h6
-rwxr-xr-xdaemon/service/noti_led.c223
-rwxr-xr-xdaemon/service/noti_led.h40
-rwxr-xr-xdata/icons/quick_standard_btn_nor.pngbin1766 -> 2033 bytes
-rwxr-xr-xdata/icons/quick_standard_btn_press.pngbin1824 -> 1816 bytes
-rwxr-xr-xdata/quickpanel.xml.in2
-rwxr-xr-xdata/quickpanel_def.h2
-rwxr-xr-xpackaging/org.tizen.quickpanel.spec3
-rwxr-xr-xpo/ar.po21
-rwxr-xr-xpo/az.po15
-rwxr-xr-xpo/bg.po15
-rwxr-xr-xpo/ca.po15
-rwxr-xr-xpo/cs.po15
-rwxr-xr-xpo/da.po15
-rwxr-xr-xpo/de_DE.po15
-rwxr-xr-xpo/el_GR.po15
-rwxr-xr-xpo/en.po15
-rwxr-xr-xpo/en_PH.po15
-rwxr-xr-xpo/en_US.po25
-rwxr-xr-xpo/es_ES.po19
-rwxr-xr-xpo/es_MX.po17
-rwxr-xr-xpo/et.po15
-rwxr-xr-xpo/eu.po15
-rwxr-xr-xpo/fi.po15
-rwxr-xr-xpo/fr_CA.po15
-rwxr-xr-xpo/fr_FR.po15
-rwxr-xr-xpo/ga.po15
-rwxr-xr-xpo/gl.po15
-rwxr-xr-xpo/hi.po15
-rwxr-xr-xpo/hr.po15
-rwxr-xr-xpo/hu.po15
-rwxr-xr-xpo/hy.po15
-rwxr-xr-xpo/is.po15
-rwxr-xr-xpo/it_IT.po17
-rwxr-xr-xpo/ja_JP.po17
-rwxr-xr-xpo/ka.po15
-rwxr-xr-xpo/kk.po15
-rwxr-xr-xpo/ko_KR.po15
-rwxr-xr-xpo/lt.po15
-rwxr-xr-xpo/lv.po15
-rwxr-xr-xpo/mk.po15
-rwxr-xr-xpo/nb.po15
-rwxr-xr-xpo/nl_NL.po15
-rwxr-xr-xpo/pl.po15
-rwxr-xr-xpo/pt_BR.po15
-rwxr-xr-xpo/pt_PT.po15
-rwxr-xr-xpo/ro.po15
-rwxr-xr-xpo/ru_RU.po15
-rwxr-xr-xpo/sk.po15
-rwxr-xr-xpo/sl.po15
-rwxr-xr-xpo/sr.po15
-rwxr-xr-xpo/sv.po15
-rwxr-xr-xpo/tr_TR.po15
-rwxr-xr-xpo/uk.po15
-rwxr-xr-xpo/uz.po15
-rwxr-xr-xpo/zh_CN.po15
-rwxr-xr-xpo/zh_HK.po15
-rwxr-xr-xpo/zh_SG.po15
-rwxr-xr-xpo/zh_TW.po15
80 files changed, 1533 insertions, 424 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 065c5d0..1c09a7b 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,6 +26,7 @@ MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_SOURCE_DIR}/daemon
${CMAKE_CURRENT_SOURCE_DIR}/daemon/notifications
+ ${CMAKE_CURRENT_SOURCE_DIR}/daemon/service
${CMAKE_CURRENT_SOURCE_DIR}/data
${CMAKE_CURRENT_SOURCE_DIR}/test
)
@@ -60,6 +61,7 @@ pkg_check_modules(pkgs REQUIRED
minicontrol-viewer
minicontrol-monitor
utilX
+# deviced
)
FOREACH(flag ${pkgs_CFLAGS})
@@ -81,6 +83,8 @@ ADD_DEFINITIONS("-fpie")
ADD_DEFINITIONS("-DQP_INDICATOR_WIDGET_ENABLE")
ADD_DEFINITIONS("-DQP_BRIGHTNESS_ENABLE")
ADD_DEFINITIONS("-DQP_MINICTRL_ENABLE")
+ADD_DEFINITIONS("-DQP_ANIMATED_IMAGE_ENABLE")
+#ADD_DEFINITIONS("-DQP_SERVICE_NOTI_LED_ENABLE")
ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"")
diff --git a/daemon/common.c b/daemon/common.c
index e264587..5a4b81a 100755
--- a/daemon/common.c
+++ b/daemon/common.c
@@ -30,3 +30,36 @@ HAPI void quickpanel_util_char_replace(char *text, char s, char t) {
}
}
}
+
+static void _current_popup_deleted_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ retif(obj == NULL, , "obj is NULL");
+
+ struct appdata *ad = quickpanel_get_app_data();
+ retif(ad == NULL, , "invalid argument");
+
+ if (ad->popup == obj) {
+ ad->popup = NULL;
+ } else {
+ ERR("popup is created over the popup");
+ }
+}
+
+HAPI void quickpanel_ui_set_current_popup(Evas_Object *popup) {
+ retif(popup == NULL, , "invalid argument");
+
+ struct appdata *ad = quickpanel_get_app_data();
+ retif(ad == NULL, , "invalid argument");
+
+ ad->popup = popup;
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _current_popup_deleted_cb, NULL);
+}
+
+HAPI void quickpanel_ui_del_current_popup(void) {
+ struct appdata *ad = quickpanel_get_app_data();
+ retif(ad == NULL, , "invalid argument");
+
+ if (ad->popup != NULL) {
+ evas_object_del(ad->popup);
+ }
+}
diff --git a/daemon/common.h b/daemon/common.h
index 712a2ac..412296f 100755
--- a/daemon/common.h
+++ b/daemon/common.h
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
+#include <Elementary.h>
#include "quickpanel_debug_util.h"
#define QP_OK (0)
@@ -48,7 +49,7 @@
#define ERR(fmt , args...) \
do { \
- LOGI("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \
+ LOGE("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \
} while (0)
#elif FILE_DEBUG /*_DLOG_USED*/
@@ -98,9 +99,15 @@
} while (0)
#endif /*_DLOG_USED*/
+#define msgif(cond, str, args...) do { \
+ if (cond) { \
+ ERR(str, ##args);\
+ } \
+} while (0);
+
#define retif(cond, ret, str, args...) do { \
if (cond) { \
- WARN(str, ##args);\
+ ERR(str, ##args);\
return ret;\
} \
} while (0);
@@ -114,5 +121,7 @@
void quickpanel_util_char_replace(char *text, char s, char t);
+void quickpanel_ui_set_current_popup(Evas_Object *popup);
+void quickpanel_ui_del_current_popup(void);
#endif /* __QP_COMMON_H_ */
diff --git a/daemon/device/brightness.c b/daemon/device/brightness.c
index 76db218..32d7a33 100755
--- a/daemon/device/brightness.c
+++ b/daemon/device/brightness.c
@@ -28,12 +28,21 @@
#define QP_BRIGHTNESS_CONTROL_ICON_IMG ICONDIR"/Q02_Notification_brightness.png"
+typedef struct _brightness_ctrl_obj {
+ int min_level;
+ int max_level;
+ Evas_Object *viewer;
+ void *data;
+} brightness_ctrl_obj;
+
static int quickpanel_brightness_init(void *data);
static int quickpanel_brightness_fini(void *data);
static void quickpanel_brightness_lang_changed(void *data);
static void quickpanel_brightness_qp_opened(void *data);
static void quickpanel_brightness_qp_closed(void *data);
static void _brightness_view_update(void);
+static void _brightness_register_event_cb(brightness_ctrl_obj *ctrl_obj);
+static void _brightness_deregister_event_cb(brightness_ctrl_obj *ctrl_obj);
QP_Module brightness_ctrl = {
.name = "brightness_ctrl",
@@ -50,13 +59,6 @@ QP_Module brightness_ctrl = {
.qp_closed = quickpanel_brightness_qp_closed,
};
-typedef struct _brightness_ctrl_obj {
- int min_level;
- int max_level;
- Evas_Object *viewer;
- void *data;
-} brightness_ctrl_obj;
-
static brightness_ctrl_obj *g_ctrl_obj;
static void _set_text_to_part(Evas_Object *obj, const char *part, const char *text) {
@@ -88,7 +90,6 @@ static Evas_Object *_check_duplicated_image_loading(Evas_Object *obj, const char
if (old_ic != NULL) {
elm_image_file_get(old_ic, &old_ic_path, NULL);
if (old_ic_path != NULL) {
- DBG("%s:%s", old_ic_path, file_path);
if (strcmp(old_ic_path, file_path) == 0)
return old_ic;
}
@@ -106,8 +107,6 @@ static Evas_Object *_check_duplicated_loading(Evas_Object *obj, const char *part
retif(obj == NULL, NULL, "Invalid parameter!");
retif(part == NULL, NULL, "Invalid parameter!");
- DBG("");
-
old_content = elm_object_part_content_get(obj, part);
if (old_content != NULL) {
return old_content;
@@ -147,7 +146,6 @@ static void quickpanel_brightness_qp_opened(void *data)
if (g_ctrl_obj->viewer != NULL) {
_brightness_view_update();
- vconf_ignore_key_changed(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, _brightness_vconf_cb);
}
}
@@ -198,21 +196,16 @@ _brightness_ctrl_slider_changed_cb(void *data,
static int old_val = -1;
brightness_ctrl_obj *ctrl_obj = NULL;
- DBG("");
-
retif(data == NULL, , "Data parameter is NULL");
ctrl_obj = data;
double val = elm_slider_value_get(obj);
value = (int)(val + 0.5);
- DBG("value:%d old_val:%d", value, old_val);
-
if (value != old_val)
{
- DBG("min_level:%d max_level:%d", ctrl_obj->min_level, ctrl_obj->max_level);
if (value >= ctrl_obj->min_level && value <= ctrl_obj->max_level) {
- DBG("new brgt:%d", value);
+ DBG("brightness is changed to %d", value);
_brightness_set_level(value);
}
}
@@ -226,10 +219,26 @@ _brightness_ctrl_slider_delayed_changed_cb(void *data,
int value = 0;
value = _brightness_get_level();
- DBG("value:%d", value);
+ DBG("brightness is changed to %d", value);
_brightness_set_level(value);
}
+static void
+_brightness_ctrl_slider_drag_start_cb(void *data,
+ Evas_Object *obj,
+ void *event_info)
+{
+ _brightness_deregister_event_cb(data);
+}
+
+static void
+_brightness_ctrl_slider_drag_stop_cb(void *data,
+ Evas_Object *obj,
+ void *event_info)
+{
+ _brightness_register_event_cb(data);
+}
+
static void _brightness_ctrl_checker_toggle_cb(void *data,
Evas_Object * obj,
void *event_info)
@@ -277,7 +286,6 @@ static Evas_Object *_brightness_view_create(Evas_Object *list)
static void _brightness_set_text(void)
{
- DBG("");
brightness_ctrl_obj *ctrl_obj = g_ctrl_obj;
retif(ctrl_obj == NULL, , "Invalid parameter!");
retif(ctrl_obj->viewer == NULL, , "Invalid parameter!");
@@ -288,7 +296,6 @@ static void _brightness_set_text(void)
static void _brightness_set_image(void)
{
- DBG("");
Evas_Object *ic = NULL;
Evas_Object *old_ic = NULL;
brightness_ctrl_obj *ctrl_obj = g_ctrl_obj;
@@ -311,7 +318,6 @@ static void _brightness_set_image(void)
static void _brightness_set_checker(void)
{
- DBG("");
Evas_Object *checker = NULL;
Evas_Object *old_obj = NULL;
brightness_ctrl_obj *ctrl_obj = g_ctrl_obj;
@@ -341,7 +347,6 @@ static void _brightness_set_checker(void)
static void _brightness_set_slider(void)
{
- DBG("");
int value = 0;
Evas_Object *slider = NULL;
Evas_Object *old_obj = NULL;
@@ -361,8 +366,14 @@ static void _brightness_set_slider(void)
evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);
elm_slider_min_max_set(slider, ctrl_obj->min_level, ctrl_obj->max_level);
- evas_object_smart_callback_add(slider, "changed", _brightness_ctrl_slider_changed_cb, ctrl_obj);
- evas_object_smart_callback_add(slider, "delay,changed", _brightness_ctrl_slider_delayed_changed_cb, ctrl_obj);
+ evas_object_smart_callback_add(slider, "changed",
+ _brightness_ctrl_slider_changed_cb, ctrl_obj);
+ evas_object_smart_callback_add(slider, "delay,changed",
+ _brightness_ctrl_slider_delayed_changed_cb, ctrl_obj);
+ evas_object_smart_callback_add(slider, "slider,drag,start",
+ _brightness_ctrl_slider_drag_start_cb, ctrl_obj);
+ evas_object_smart_callback_add(slider, "slider,drag,stop",
+ _brightness_ctrl_slider_drag_stop_cb, ctrl_obj);
elm_object_part_content_set(ctrl_obj->viewer, "elm.swallow.slider", slider);
} else {
ERR("failed to create slider");
@@ -436,16 +447,25 @@ static void _brightness_remove(brightness_ctrl_obj *ctrl_obj, void *data)
static void _brightness_register_event_cb(brightness_ctrl_obj *ctrl_obj)
{
- retif(ctrl_obj == NULL, , "Invalid parameter!");
-
- vconf_notify_key_changed(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, _brightness_vconf_cb, ctrl_obj);
+ int ret = 0;
+ retif(ctrl_obj == NULL, , "Data parameter is NULL");
+
+ ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_LCD_BRIGHTNESS,
+ _brightness_vconf_cb, ctrl_obj);
+ if (ret != 0) {
+ ERR("failed to register a cb key:%s err:%d",
+ "VCONFKEY_SETAPPL_LCD_BRIGHTNESS", ret);
+ }
}
static void _brightness_deregister_event_cb(brightness_ctrl_obj *ctrl_obj)
{
- retif(ctrl_obj == NULL, , "Invalid parameter!");
+ int ret = 0;
- vconf_ignore_key_changed(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, _brightness_vconf_cb);
+ ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, _brightness_vconf_cb);
+ if (ret != 0) {
+ ERR("failed to register a cb key:%s err:%d", "VCONFKEY_SETAPPL_LCD_BRIGHTNESS", ret);
+ }
}
static int quickpanel_brightness_init(void *data)
@@ -453,12 +473,9 @@ static int quickpanel_brightness_init(void *data)
retif(data == NULL, QP_FAIL, "Invalid parameter!");
if (g_ctrl_obj == NULL) {
- DBG("brightness controller alloced");
g_ctrl_obj = (brightness_ctrl_obj *)malloc(sizeof(brightness_ctrl_obj));
}
- DBG("");
-
if (g_ctrl_obj != NULL) {
g_ctrl_obj->min_level = BRIGHTNESS_MIN;
g_ctrl_obj->max_level = BRIGHTNESS_MAX;
diff --git a/daemon/idletxt/idletxt.c b/daemon/idletxt/idletxt.c
index 33ccccf..a63a74d 100755
--- a/daemon/idletxt/idletxt.c
+++ b/daemon/idletxt/idletxt.c
@@ -33,7 +33,7 @@
#define QP_IDLETXT_SLIDE_LEN 130
#define QP_IDLETXT_LABEL_STRING \
- "<font_size=36 font_weight=Medium color=#959494FF align=left>%s</>"
+ "<font_size=30 font_weight=Medium color=#959494FF align=left>%s</>"
static int quickpanel_idletxt_init(void *data);
static int quickpanel_idletxt_fini(void *data);
@@ -215,7 +215,7 @@ static Evas_Object *_quickpanel_idletxt_exception_add_label(Evas_Object * box)
Evas_Object *obj = NULL;
if (vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, &service_type) != 0) {
- DBG("fail to get VCONFKEY_TELEPHONY_SVCTYPE");
+ ERR("fail to get VCONFKEY_TELEPHONY_SVCTYPE");
}
switch(service_type) {
@@ -258,7 +258,7 @@ static Evas_Object *_quickpanel_idletxt_get_spn(Evas_Object * box)
/* make keylist */
if (vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, &service_type) != 0) {
- DBG("fail to get VCONFKEY_TELEPHONY_SVCTYPE");
+ ERR("fail to get VCONFKEY_TELEPHONY_SVCTYPE");
}
ret = vconf_get_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, &state);
@@ -300,6 +300,7 @@ static Evas_Object *_quickpanel_idletxt_get_spn(Evas_Object * box)
return label;
}
+#ifdef TBD
static Evas_Object *_quickpanel_idletxt_get_sat_text(Evas_Object * box)
{
Evas_Object *label = NULL;
@@ -310,6 +311,7 @@ static Evas_Object *_quickpanel_idletxt_get_sat_text(Evas_Object * box)
return label;
}
+#endif
static Eina_Bool _quickpanel_idletxt_button_clicked_timer_cb(void *data)
{
diff --git a/daemon/list_util.c b/daemon/list_util.c
index 73d8312..de38e04 100755
--- a/daemon/list_util.c
+++ b/daemon/list_util.c
@@ -201,7 +201,7 @@ HAPI void quickpanel_list_util_sort_insert(Evas_Object *list,
item_data = evas_object_data_get(new_obj, E_DATA_ITEM_LABEL_H);
retif(item_data == NULL, , "invalid parameter");
- DBG("count:%d", eina_list_count(item_list));
+ INFO("current entry count in list:%d", eina_list_count(item_list));
EINA_LIST_FOREACH_SAFE(item_list, l, l_next, obj)
{
if (obj != NULL) {
@@ -210,14 +210,11 @@ HAPI void quickpanel_list_util_sort_insert(Evas_Object *list,
}
first = obj;
- DBG("first:%p", obj);
}
if (first == NULL) {
- DBG("insert first:%p", new_obj);
elm_box_pack_start(list, new_obj);
} else {
- DBG("insert aftere:%p (%p)", first, new_obj);
elm_box_pack_after(list, new_obj, first);
}
}
diff --git a/daemon/media.c b/daemon/media.c
index 27dc4f7..a7908b7 100755
--- a/daemon/media.c
+++ b/daemon/media.c
@@ -30,7 +30,7 @@ static void _quickpanel_player_free_job_cb(void *data)
if (player_get_state(sound_player, &state) == PLAYER_ERROR_NONE) {
- DBG("state of player %d", state);
+ INFO("the state of sound player %d", state);
if (state == PLAYER_STATE_PLAYING) {
player_stop(sound_player);
@@ -138,21 +138,21 @@ HAPI void quickpanel_player_play(sound_type_e sound_type, const char *sound_file
ret = player_set_uri(*sound_player, sound_file);
if (ret != PLAYER_ERROR_NONE) {
- DBG("set attribute---profile_uri[%d]", ret);
+ ERR("set attribute---profile_uri[%d]", ret);
_quickpanel_player_free(sound_player);
return;
}
ret = player_prepare(*sound_player);
if (ret != PLAYER_ERROR_NONE) {
- DBG("realizing the player handle failed[%d]", ret);
+ ERR("realizing the player handle failed[%d]", ret);
_quickpanel_player_free(sound_player);
return;
}
player_get_state(*sound_player, &state);
if (state != PLAYER_STATE_READY) {
- DBG("state of player is invalid %d", state);
+ ERR("state of player is invalid %d", state);
_quickpanel_player_free(sound_player);
return;
}
@@ -160,7 +160,7 @@ HAPI void quickpanel_player_play(sound_type_e sound_type, const char *sound_file
/* register callback */
ret = player_set_completed_cb(*sound_player, _quickpanel_player_completed_cb, sound_player);
if (ret != PLAYER_ERROR_NONE) {
- DBG("player_set_completed_cb() ERR: %x!!!!", ret);
+ ERR("player_set_completed_cb() ERR: %x!!!!", ret);
_quickpanel_player_free(sound_player);
return;
}
@@ -179,7 +179,7 @@ HAPI void quickpanel_player_play(sound_type_e sound_type, const char *sound_file
ret = player_start(*sound_player);
if (ret != PLAYER_ERROR_NONE) { /* if directly return retor.. */
- DBG("player_start [%d]", ret);
+ ERR("player_start [%d]", ret);
_quickpanel_player_free(sound_player);
return;
}
@@ -244,3 +244,27 @@ HAPI void quickpanel_play_feedback(void)
feedback_play_type(FEEDBACK_TYPE_VIBRATION, FEEDBACK_PATTERN_TOUCH_TAP);
}
}
+
+HAPI int quickpanel_set_mute_toggle(void)
+{
+ int ret = -1;
+
+ if (quickpanel_is_sound_enabled() == 1 ||
+ quickpanel_is_vib_enabled() == 1) {
+ ret = vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 0);
+ msgif(ret != 0, "failed to set VCONFKEY_SETAPPL_SOUND_STATUS_BOOL");
+
+ ret = vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 0);
+ msgif(ret != 0, "failed to set VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL");
+
+ return 0;
+ } else {
+ ret = vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 1);
+ msgif(ret != 0, "failed to set VCONFKEY_SETAPPL_SOUND_STATUS_BOOL");
+
+ ret = vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 0);
+ msgif(ret != 0, "failed to set VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL");
+
+ return 1;
+ }
+}
diff --git a/daemon/media.h b/daemon/media.h
index 7d39333..05a0ad7 100755
--- a/daemon/media.h
+++ b/daemon/media.h
@@ -26,5 +26,6 @@ void quickpanel_player_stop(void);
int quickpanel_is_sound_enabled(void);
int quickpanel_is_vib_enabled(void);
void quickpanel_play_feedback(void);
+int quickpanel_set_mute_toggle(void);
#endif
diff --git a/daemon/minictrl/minictrl.c b/daemon/minictrl/minictrl.c
index e74ae1f..04c605c 100755
--- a/daemon/minictrl/minictrl.c
+++ b/daemon/minictrl/minictrl.c
@@ -66,6 +66,8 @@ static void _viewer_freeze(Evas_Object *viewer)
freezed_count = elm_object_scroll_freeze_get(viewer);
+ WARN("viewer(scroller) is freezed");
+
if (freezed_count <= 0) {
elm_object_scroll_freeze_push(viewer);
}
@@ -78,6 +80,8 @@ static void _viewer_unfreeze(Evas_Object *viewer)
freezed_count = elm_object_scroll_freeze_get(viewer);
+ WARN("viewer(scroller) is unfreezed");
+
for (i = 0 ; i < freezed_count; i++) {
elm_object_scroll_freeze_pop(viewer);
}
@@ -110,7 +114,7 @@ static void _viewer_set_size(Evas_Object *layout, void *data, int width, int hei
}
resized_width = (width > max_width) ? max_width : width;
- DBG("resize:%d %d", resized_width, height);
+ DBG("minicontroller view is resized to w:%d h:%d", resized_width, height);
evas_object_size_hint_min_set(viewer, resized_width, height);
}
@@ -147,7 +151,6 @@ static Evas_Object *_minictrl_create_view(struct appdata *ad, const char *name)
layout = elm_layout_add(ad->list);
- DBG("");
elm_layout_file_set(layout, DEFAULT_EDJ,
"quickpanel/minictrl/default");
@@ -205,7 +208,6 @@ static void _minictrl_release_cb(void *data, Evas *e,
retif(!data, , "data is NULL");
ad = data;
- DBG("");
_viewer_unfreeze(ad->scroller);
}
@@ -257,7 +259,6 @@ static void _minictrl_add(const char *name, unsigned int width,
}
if (_minictrl_is_ongoing(name) == 1) {
- DBG("QP_ITEM_TYPE_MINICTRL_ONGOING is added");
type = QP_ITEM_TYPE_MINICTRL_ONGOING;
} else {
type = _minictrl_priority_to_type(priority);
@@ -280,7 +281,7 @@ static void _minictrl_add(const char *name, unsigned int width,
g_hash_table_insert(g_prov_table, g_strdup(name), vit);
- INFO("success to add %s", name);
+ INFO("success to add minicontrol %s", name);
}
static void _minictrl_remove(const char *name, void *data)
diff --git a/daemon/modules.c b/daemon/modules.c
index f064c0b..f4a27f3 100755
--- a/daemon/modules.c
+++ b/daemon/modules.c
@@ -32,6 +32,10 @@ extern QP_Module minictrl;
/* brightness */
extern QP_Module brightness_ctrl;
#endif /* QP_BRIGHTNESS_ENABLE */
+
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+extern QP_Module animated_image;
+#endif
/* notification */
extern QP_Module noti;
extern QP_Module ticker;
@@ -49,7 +53,10 @@ static QP_Module *modules[] = {
&noti,
&ticker,
&ticker_status,
- &idletxt
+ &idletxt,
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+ &animated_image
+#endif
};
HAPI int init_modules(void *data)
diff --git a/daemon/notifications/animated_image.c b/daemon/notifications/animated_image.c
new file mode 100755
index 0000000..41aa2b4
--- /dev/null
+++ b/daemon/notifications/animated_image.c
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (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
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "animated_image.h"
+
+static int quickpanel_animated_image_init(void *data);
+static int quickpanel_animated_image_fini(void *data);
+static int quickpanel_animated_image_suspend(void *data);
+static int quickpanel_animated_image_resume(void *data);
+
+QP_Module animated_image = {
+ .name = "animated_image",
+ .init = quickpanel_animated_image_init,
+ .fini = quickpanel_animated_image_fini,
+ .suspend = quickpanel_animated_image_suspend,
+ .resume = quickpanel_animated_image_resume,
+ .lang_changed = NULL,
+ .refresh = NULL
+};
+
+static Eina_List *g_animated_image_list = NULL;
+
+static void _animated_image_list_add(Evas_Object *image)
+{
+ retif(image == NULL, ,"invalid parameter");
+
+ g_animated_image_list = eina_list_append(g_animated_image_list, image);
+}
+
+static void _animated_image_play(Eina_Bool on)
+{
+ const Eina_List *l = NULL;
+ const Eina_List *ln = NULL;
+ Evas_Object *entry_obj = NULL;
+
+ retif(g_animated_image_list == NULL, ,"list is empty");
+
+ EINA_LIST_FOREACH_SAFE(g_animated_image_list, l, ln, entry_obj) {
+ if (entry_obj == NULL) continue;
+
+ if (on == EINA_TRUE) {
+ if (elm_image_animated_play_get(entry_obj) == EINA_FALSE) {
+ elm_image_animated_play_set(entry_obj, EINA_TRUE);
+ }
+ } else {
+ if (elm_image_animated_play_get(entry_obj) == EINA_TRUE) {
+ elm_image_animated_play_set(entry_obj, EINA_FALSE);
+ }
+ }
+ }
+}
+
+static void _animated_image_deleted_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ retif(obj == NULL, , "obj is NULL");
+ retif(g_animated_image_list == NULL, , "list is empty");
+
+ g_animated_image_list = eina_list_remove(g_animated_image_list, obj);
+}
+
+HAPI void quickpanel_animated_image_add(Evas_Object *image) {
+ retif(image == NULL, , "image is NULL");
+
+ if (elm_image_animated_available_get(image) == EINA_TRUE) {
+ elm_image_animated_set(image, EINA_TRUE);
+ if (quickpanel_is_suspended() == 0) {
+ elm_image_animated_play_set(image, EINA_TRUE);
+ } else {
+ elm_image_animated_play_set(image, EINA_FALSE);
+ }
+ _animated_image_list_add(image);
+ evas_object_event_callback_add(image, EVAS_CALLBACK_DEL, _animated_image_deleted_cb, NULL);
+ }
+}
+
+/*****************************************************************************
+ *
+ * Util functions
+ *
+ *****************************************************************************/
+static int quickpanel_animated_image_init(void *data)
+{
+ return QP_OK;
+}
+
+static int quickpanel_animated_image_fini(void *data)
+{
+ return QP_OK;
+}
+
+static int quickpanel_animated_image_suspend(void *data)
+{
+ struct appdata *ad = data;
+ retif(ad == NULL, QP_FAIL, "Invalid parameter!");
+
+ INFO("animated image going to be suspened");
+ _animated_image_play(EINA_FALSE);
+
+ return QP_OK;
+}
+
+static int quickpanel_animated_image_resume(void *data)
+{
+ struct appdata *ad = data;
+ retif(ad == NULL, QP_FAIL, "Invalid parameter!");
+
+ INFO("animated image going to be resumed");
+ _animated_image_play(EINA_TRUE);
+
+ return QP_OK;
+}
diff --git a/daemon/notifications/animated_image.h b/daemon/notifications/animated_image.h
new file mode 100755
index 0000000..c5f2d80
--- /dev/null
+++ b/daemon/notifications/animated_image.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (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
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __QUICKPANEL_ANIMATED_IMAGE_H__
+#define __QUICKPANEL_ANIMATED_IMAGE_H__
+
+#include "quickpanel-ui.h"
+#include "common.h"
+
+HAPI void quickpanel_animated_image_add(Evas_Object *image);
+
+#endif
diff --git a/daemon/notifications/noti.c b/daemon/notifications/noti.c
index 74c53a9..e9154fb 100755
--- a/daemon/notifications/noti.c
+++ b/daemon/notifications/noti.c
@@ -34,6 +34,9 @@
#include "noti_section.h"
#include "noti.h"
#include "list_util.h"
+#ifdef QP_SERVICE_NOTI_LED_ENABLE
+#include "noti_led.h"
+#endif
#ifndef VCONFKEY_QUICKPANEL_STARTED
#define VCONFKEY_QUICKPANEL_STARTED "memory/private/"PACKAGE_NAME"/started"
@@ -46,7 +49,6 @@ static noti_node *g_noti_node;
static Evas_Object *g_noti_section;
static Evas_Object *g_noti_listbox;
static Evas_Object *g_noti_gridbox;
-static Eina_List *g_animated_image_list;
static int quickpanel_noti_init(void *data);
static int quickpanel_noti_fini(void *data);
@@ -288,37 +290,6 @@ static void _quickpanel_noti_item_content_update_cb(void *data,
_quickpanel_noti_update_progressbar(data, noti);
}
-static void _quickpanel_noti_ani_image_control(Eina_Bool on)
-{
- const Eina_List *l = NULL;
- const Eina_List *ln = NULL;
- Evas_Object *entry_obj = NULL;
-
- retif(g_animated_image_list == NULL, ,"");
-
- EINA_LIST_FOREACH_SAFE(g_animated_image_list, l, ln, entry_obj) {
- if (entry_obj == NULL) continue;
-
- if (on == EINA_TRUE) {
- if (elm_image_animated_play_get(entry_obj) == EINA_FALSE) {
- elm_image_animated_play_set(entry_obj, EINA_TRUE);
- }
- } else {
- if (elm_image_animated_play_get(entry_obj) == EINA_TRUE) {
- elm_image_animated_play_set(entry_obj, EINA_FALSE);
- }
- }
- }
-}
-
-static void _quickpanel_noti_ani_image_deleted_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- retif(obj == NULL, , "obj is NULL");
- retif(g_animated_image_list == NULL, , "list is empty");
-
- g_animated_image_list = eina_list_remove(g_animated_image_list, obj);
-}
-
static void _quickpanel_do_noti_delete(notification_h noti) {
char *pkgname = NULL;
char *caller_pkgname = NULL;
@@ -774,6 +745,27 @@ static void _quickpanel_noti_delete_volatil_data(void)
notification_update(NULL);
}
+inline static void _print_debuginfo_from_noti(notification_h noti) {
+ retif(noti == NULL, , "Invalid parameter!");
+
+ char *noti_pkgname = NULL;
+ char *noti_launch_pkgname = NULL;
+ notification_type_e noti_type = NOTIFICATION_TYPE_NONE;
+
+ notification_get_pkgname(noti, &noti_pkgname);
+ notification_get_application(noti, &noti_launch_pkgname);
+ notification_get_type(noti, &noti_type);
+
+ if (noti_pkgname != NULL) {
+ ERR("pkg:%s", noti_pkgname);
+ }
+ if (noti_launch_pkgname != NULL) {
+ ERR("pkgl:%s", noti_launch_pkgname);
+ }
+
+ ERR("type:%d", noti_type);
+}
+
static void _quickpanel_noti_detailed_changed_cb(void *data, notification_type_e type, notification_op *op_list, int num_op)
{
int i = 0;
@@ -889,15 +881,15 @@ static void _quickpanel_noti_detailed_changed_cb(void *data, notification_type_e
if ((noti_count = noti_node_get_item_count(g_noti_node, NOTIFICATION_TYPE_NOTI))
<= 0) {
- DBG("");
_quickpanel_noti_clear_notilist();
_quickpanel_noti_section_remove();
} else {
if (g_noti_section != NULL) {
- DBG("");
noti_section_update(g_noti_section, noti_count);
}
}
+
+ ERR("current noti count:%d", noti_count);
}
static void _quickpanel_noti_update_desktop_cb(keynode_t *node, void *data)
@@ -1041,8 +1033,7 @@ static int _quickpanel_noti_check_first_start(void)
int ret = 0;
ret = vconf_get_bool(VCONFKEY_QUICKPANEL_STARTED, &status);
- if (ret) {
- INFO("fail to get %s", VCONFKEY_QUICKPANEL_STARTED);
+ if (ret == 0 && status == 0) {
/* reboot */
ret = vconf_set_bool(VCONFKEY_QUICKPANEL_STARTED, 1);
INFO("set : %s, result : %d", VCONFKEY_QUICKPANEL_STARTED, ret);
@@ -1135,6 +1126,11 @@ static int quickpanel_noti_fini(void *data)
struct appdata *ad = data;
retif(ad == NULL, QP_FAIL, "Invalid parameter!");
+#ifdef QP_SERVICE_NOTI_LED_ENABLE
+ quickpanel_service_noti_fini(ad);
+ quickpanel_service_noti_led_off(NULL);
+#endif
+
/* Unregister event handler */
_quickpanel_noti_unregister_event_handler(data);
@@ -1154,10 +1150,6 @@ static int quickpanel_noti_suspend(void *data)
struct appdata *ad = data;
retif(ad == NULL, QP_FAIL, "Invalid parameter!");
- if (ad->list) {
- _quickpanel_noti_ani_image_control(EINA_FALSE);
- }
-
return QP_OK;
}
@@ -1168,8 +1160,6 @@ static int quickpanel_noti_resume(void *data)
if (ad->list) {
listbox_update(g_noti_listbox);
-
- _quickpanel_noti_ani_image_control(EINA_TRUE);
}
return QP_OK;
diff --git a/daemon/notifications/noti_box.c b/daemon/notifications/noti_box.c
index 864a360..ecc2983 100755
--- a/daemon/notifications/noti_box.c
+++ b/daemon/notifications/noti_box.c
@@ -25,6 +25,9 @@
#include "noti_node.h"
#include "noti.h"
#include "noti_util.h"
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+#include "animated_image.h"
+#endif
#define IMAGE_NO_RESIZE 0
#define IMAGE_RESIZE 1
@@ -36,7 +39,7 @@ static void _noti_box_call_item_cb(Evas_Object *noti_box, const char *emission)
retif(noti_box == NULL, , "invalid parameter");
retif(emission == NULL, , "invalid parameter");
- DBG("%s", emission);
+ INFO("recevied emission:%s", emission);
void (*cb)(void *data, Evas_Object *obj) = NULL;
noti_box_h *data = NULL;
@@ -81,7 +84,6 @@ HAPI Evas_Object *noti_box_create(Evas_Object *parent, notification_ly_type_e la
box = elm_layout_add(parent);
- DBG("");
if (layout == NOTIFICATION_LY_NOTI_EVENT_SINGLE
|| layout == NOTIFICATION_LY_NOTI_EVENT_MULTIPLE) {
elm_layout_file_set(box, DEFAULT_EDJ,
@@ -102,7 +104,7 @@ HAPI Evas_Object *noti_box_create(Evas_Object *parent, notification_ly_type_e la
box_h->status = STATE_NORMAL;
box_h->data = NULL;
evas_object_data_set(box, E_DATA_NOTI_BOX_H, box_h);
- DBG("created box:%p", box);
+ INFO("created notibox:%p", box);
//add event
elm_object_signal_callback_add(box,
@@ -131,17 +133,16 @@ HAPI Evas_Object *noti_box_create(Evas_Object *parent, notification_ly_type_e la
return box;
}
-static void _set_image(Evas_Object *noti_box, notification_h noti,
+static Evas_Object *_set_image(Evas_Object *noti_box, notification_h noti,
notification_image_type_e image_type, const char *part, int is_stretch) {
- DBG("");
-
+ Evas_Object *content = NULL;
char *image = NULL;
int w = 0, h =0;
int part_w = 0, part_h =0;
double scale = 1.0;
- retif(part == NULL, ,"invalid parameter");
+ retif(part == NULL, NULL,"invalid parameter");
struct appdata *ad = quickpanel_get_app_data();
if (ad != NULL) {
@@ -151,9 +152,8 @@ static void _set_image(Evas_Object *noti_box, notification_h noti,
notification_get_image(noti, image_type, &image);
if (image != NULL) {
- Evas_Object *content = NULL;
content = elm_image_add(noti_box);
- elm_image_file_set(content, image, NULL);
+ elm_image_file_set(content, image, image);
if (is_stretch == IMAGE_RESIZE) {
elm_image_aspect_fixed_set(content, EINA_FALSE);
elm_image_resizable_set(content, EINA_TRUE, EINA_TRUE);
@@ -169,8 +169,6 @@ static void _set_image(Evas_Object *noti_box, notification_h noti,
part_h = scale * BOX_ICON_SUB_SIZE_H;
}
- DBG("%d %d --- %d %d", w, h, part_w, part_h);
-
if (part_w != 0 && part_h != 0) {
if (w > part_w || h > part_h) {
elm_image_aspect_fixed_set(content, EINA_FALSE);
@@ -188,6 +186,8 @@ static void _set_image(Evas_Object *noti_box, notification_h noti,
elm_object_part_content_set(noti_box, part, content);
elm_object_signal_emit(noti_box, "object.show", part);
}
+
+ return content;
}
static int _set_text(Evas_Object *noti_box, notification_h noti,
@@ -237,8 +237,6 @@ static int _set_text(Evas_Object *noti_box, notification_h noti,
static int _check_text_null(notification_h noti,
notification_text_type_e text_type) {
- DBG("");
-
char *text = NULL;
notification_get_text(noti, text_type, &text);
@@ -252,8 +250,6 @@ static int _check_text_null(notification_h noti,
static int _check_image_null(notification_h noti,
notification_image_type_e image_type) {
- DBG("");
-
char *image = NULL;
notification_get_image(noti, image_type, &image);
@@ -271,13 +267,12 @@ static int _check_image_null(notification_h noti,
static void _noti_box_set_layout_single(Evas_Object *noti_box,
notification_h noti) {
- DBG("");
-
char *dir = NULL;
char *domain = NULL;
int is_need_effect = 0;
int is_contents_only = 0;
int is_sub_info_1_only = 0;
+ Evas_Object *icon = NULL;
if (_check_image_null(noti, NOTIFICATION_IMAGE_TYPE_BACKGROUND) == 0) {
is_need_effect = 1;
@@ -336,11 +331,17 @@ static void _noti_box_set_layout_single(Evas_Object *noti_box,
if (_check_image_null(noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL) == 0) {
_set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON,
"object.icon.sub", IMAGE_NO_RESIZE);
- _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL,
+ icon = _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL,
"object.icon", IMAGE_NO_RESIZE);
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+ quickpanel_animated_image_add(icon);
+#endif
} else {
- _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON,
+ icon = _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON,
"object.icon", IMAGE_NO_RESIZE);
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+ quickpanel_animated_image_add(icon);
+#endif
_set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON_SUB,
"object.icon.sub", IMAGE_NO_RESIZE);
}
@@ -362,14 +363,13 @@ static void _noti_box_set_layout_single(Evas_Object *noti_box,
static void _noti_box_set_layout_multi(Evas_Object *noti_box,
notification_h noti) {
- DBG("");
-
int length = 0;
char *dir = NULL;
char *domain = NULL;
char buf[128] = {0,};
int is_need_effect = 0;
int is_sub_info_1_only = 0;
+ Evas_Object *icon = NULL;
if (_check_image_null(noti, NOTIFICATION_IMAGE_TYPE_BACKGROUND) == 0) {
is_need_effect = 1;
@@ -434,11 +434,17 @@ static void _noti_box_set_layout_multi(Evas_Object *noti_box,
if (_check_image_null(noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL) == 0) {
_set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON,
"object.icon.sub", IMAGE_NO_RESIZE);
- _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL,
+ icon = _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL,
"object.icon", IMAGE_NO_RESIZE);
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+ quickpanel_animated_image_add(icon);
+#endif
} else {
- _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON,
+ icon = _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON,
"object.icon", IMAGE_NO_RESIZE);
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+ quickpanel_animated_image_add(icon);
+#endif
_set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON_SUB,
"object.icon.sub", IMAGE_NO_RESIZE);
}
@@ -459,11 +465,10 @@ static void _noti_box_set_layout_multi(Evas_Object *noti_box,
static void _noti_box_set_layout_thumbnail(Evas_Object *noti_box,
notification_h noti) {
- DBG("");
-
char *dir = NULL;
char *domain = NULL;
int is_need_effect = 0;
+ Evas_Object *icon = NULL;
if (_check_image_null(noti, NOTIFICATION_IMAGE_TYPE_BACKGROUND) == 0)
is_need_effect = 1;
@@ -482,11 +487,17 @@ static void _noti_box_set_layout_thumbnail(Evas_Object *noti_box,
if (_check_image_null(noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL) == 0) {
_set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON,
"object.icon.sub", IMAGE_NO_RESIZE);
- _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL,
+ icon = _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL,
"object.icon", IMAGE_NO_RESIZE);
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+ quickpanel_animated_image_add(icon);
+#endif
} else {
- _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON,
+ icon = _set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON,
"object.icon", IMAGE_NO_RESIZE);
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+ quickpanel_animated_image_add(icon);
+#endif
_set_image(noti_box, noti, NOTIFICATION_IMAGE_TYPE_ICON_SUB,
"object.icon.sub", IMAGE_NO_RESIZE);
}
@@ -520,7 +531,7 @@ static void _noti_box_set_layout_thumbnail(Evas_Object *noti_box,
static void _noti_box_set_layout(Evas_Object *noti_box, notification_h noti,
notification_ly_type_e layout) {
- DBG("layout:%d", layout);
+ INFO("layout:%d", layout);
switch (layout) {
case NOTIFICATION_LY_NOTI_EVENT_SINGLE:
@@ -536,7 +547,7 @@ static void _noti_box_set_layout(Evas_Object *noti_box, notification_h noti,
case NOTIFICATION_LY_ONGOING_EVENT:
case NOTIFICATION_LY_ONGOING_PROGRESS:
case NOTIFICATION_LY_MAX:
- DBG("not supported layout type:%d", layout);
+ ERR("not supported layout type:%d", layout);
break;
}
}
@@ -554,6 +565,8 @@ HAPI void noti_box_remove(Evas_Object *noti_box) {
evas_object_data_del(noti_box, E_DATA_CB_SELECTED_ITEM);
evas_object_data_del(noti_box, E_DATA_CB_DELETED_ITEM);
+ INFO("removed notibox:%p", noti_box);
+
evas_object_del(noti_box);
}
diff --git a/daemon/notifications/noti_gridbox.c b/daemon/notifications/noti_gridbox.c
index c44f55b..d05fc89 100755
--- a/daemon/notifications/noti_gridbox.c
+++ b/daemon/notifications/noti_gridbox.c
@@ -38,8 +38,8 @@ typedef struct _gridbox_info_layout {
int padding_between;
int child_w;
int child_h;
- int limit_w;
double scale;
+ int limit_w;
} gridbox_info_layout;
typedef struct _gridbox_info_animation {
@@ -115,7 +115,7 @@ static void _gridbox_layout(Evas_Object *o, Evas_Object_Box_Data *priv,
info_layout->child_w = child_w;
- DBG("grid layout children:%d %d", info_layout->child_w, info_layout->child_h);
+ DBG("grid layout children pos:%d %d", info_layout->child_w, info_layout->child_h);
int order_children = 1;
EINA_LIST_FOREACH_SAFE(priv->children, l, l_next, opt)
diff --git a/daemon/notifications/noti_list_item.c b/daemon/notifications/noti_list_item.c
index 94ce281..dec9dd7 100755
--- a/daemon/notifications/noti_list_item.c
+++ b/daemon/notifications/noti_list_item.c
@@ -25,102 +25,12 @@
#include "noti_node.h"
#include "noti.h"
#include "noti_util.h"
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+#include "animated_image.h"
+#endif
#define QP_DEFAULT_ICON ICONDIR"/quickpanel_icon_default.png"
-static void _set_image(Evas_Object *noti_list_item, notification_h noti,
- notification_image_type_e image_type, const char *part, int is_stretch) {
- char *image = NULL;
-
- DBG("");
-
- retif(noti_list_item == NULL, , "Invalid parameter!");
- retif(noti == NULL, , "Invalid parameter!");
- retif(part == NULL, , "Invalid parameter!");
-
- notification_get_image(noti, image_type, &image);
-
- if (image != NULL) {
- Evas_Object *content = NULL;
- content = elm_image_add(noti_list_item);
- elm_image_file_set(content, image, NULL);
- if (is_stretch == 1) {
- elm_image_aspect_fixed_set(content, EINA_FALSE);
- elm_image_resizable_set(content, EINA_TRUE, EINA_TRUE);
- }
-
- elm_object_part_content_set(noti_list_item, part, content);
- elm_object_signal_emit(noti_list_item, "object.show", part);
- }
-}
-
-static int _set_text(Evas_Object *noti_list_item, notification_h noti,
- notification_text_type_e text_type, const char *part, int is_need_effect) {
- char buf[128] = { 0, };
- char *text = NULL;
- time_t time = 0;
-
- retif(noti_list_item == NULL, 0, "Invalid parameter!");
- retif(noti == NULL, 0, "Invalid parameter!");
- retif(part == NULL, 0, "Invalid parameter!");
-
- if (notification_get_time_from_text(noti, text_type, &time) == NOTIFICATION_ERROR_NONE) {
- if ((int)time > 0) {
- quickpanel_noti_get_time(time, buf, sizeof(buf));
- text = buf;
- }
- } else {
- notification_get_text(noti, text_type, &text);
- }
-
- if (text != NULL) {
- if (strlen(text) > 0) {
- elm_object_part_text_set(noti_list_item, part, text);
- if (is_need_effect == 1)
- elm_object_signal_emit(noti_list_item, "object.show.effect", part);
- else
- elm_object_signal_emit(noti_list_item, "object.show", part);
- }
-
- return strlen(text);
- }
-
- return 0;
-}
-
-static int _check_text_null(notification_h noti,
- notification_text_type_e text_type) {
- char *text = NULL;
-
- retif(noti == NULL, 0, "Invalid parameter!");
-
- notification_get_text(noti, text_type, &text);
-
- if (text == NULL) {
- return 1;
- }
-
- return 0;
-}
-
-static int _check_image_null(notification_h noti,
- notification_image_type_e image_type) {
- char *image = NULL;
-
- retif(noti == NULL, 0, "Invalid parameter!");
-
- notification_get_image(noti, image_type, &image);
-
- if (image == NULL) {
- return 1;
- }
-
- if (strncasecmp(image, "(null)", strlen(image)) == 0) {
- return 1;
- }
-
- return 0;
-}
static Evas_Object *_check_duplicated_progress_loading(Evas_Object *obj, const char *part, const char *style_name) {
Evas_Object *old_content = NULL;
@@ -354,8 +264,11 @@ static void _noti_list_item_ongoing_set_icon(Evas_Object *noti_list_item)
if (old_ic == NULL) {
ic = elm_image_add(noti_list_item);
elm_image_resizable_set(ic, EINA_FALSE, EINA_TRUE);
- elm_image_file_set(ic, main_icon_path, "elm.swallow.thumbnail");
+ elm_image_file_set(ic, main_icon_path, main_icon_path);
elm_object_part_content_set(noti_list_item, "elm.swallow.thumbnail", ic);
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+ quickpanel_animated_image_add(ic);
+#endif
}
}
@@ -366,7 +279,7 @@ static void _noti_list_item_ongoing_set_icon(Evas_Object *noti_list_item)
if (old_ic == NULL) {
ic = elm_image_add(noti_list_item);
elm_image_resizable_set(ic, EINA_FALSE, EINA_TRUE);
- elm_image_file_set(ic, sub_icon_path, "elm.swallow.icon");
+ elm_image_file_set(ic, sub_icon_path, sub_icon_path);
elm_object_part_content_set(noti_list_item, "elm.swallow.icon", ic);
}
}
@@ -378,8 +291,11 @@ static void _noti_list_item_ongoing_set_icon(Evas_Object *noti_list_item)
if (old_ic == NULL) {
ic = elm_image_add(noti_list_item);
elm_image_resizable_set(ic, EINA_FALSE, EINA_TRUE);
- elm_image_file_set(ic, QP_DEFAULT_ICON, "elm.swallow.thumbnail");
+ elm_image_file_set(ic, QP_DEFAULT_ICON, QP_DEFAULT_ICON);
elm_object_part_content_set(noti_list_item, "elm.swallow.thumbnail", ic);
+#ifdef QP_ANIMATED_IMAGE_ENABLE
+ quickpanel_animated_image_add(ic);
+#endif
}
}
}
diff --git a/daemon/notifications/noti_listbox.c b/daemon/notifications/noti_listbox.c
index f345475..78f0b6a 100755
--- a/daemon/notifications/noti_listbox.c
+++ b/daemon/notifications/noti_listbox.c
@@ -284,13 +284,6 @@ HAPI void listbox_remove_and_add_item(Evas_Object *listbox, Evas_Object *item
elm_transit_go(transit);
}
-static void listbox_finalize_rotation_cb(void *data) {
- retif(data == NULL, , "invalid parameter");
- Evas_Object *listbox = data;
-
- elm_box_recalculate(listbox);
-}
-
HAPI void listbox_rotation(Evas_Object *listbox, int angle) {
const char *signal = NULL;
diff --git a/daemon/notifications/noti_section.c b/daemon/notifications/noti_section.c
index 913153b..df38e54 100755
--- a/daemon/notifications/noti_section.c
+++ b/daemon/notifications/noti_section.c
@@ -29,7 +29,7 @@ static void _noti_section_button_clicked_cb(void *data, Evas_Object * obj,
noti_err = notifiation_clear(NOTIFICATION_TYPE_NOTI);
- DBG("Clear Clicked : noti_err(%d)", noti_err);
+ DBG("notiifcations going to be cleared: noti_err(%d)", noti_err);
quickpanel_play_feedback();
}
@@ -39,7 +39,6 @@ static void _noti_section_set_button(Evas_Object *noti_section)
Evas_Object *eo = NULL;
Evas_Object *old_eo = NULL;
- DBG("");
retif(noti_section == NULL, , "invalid parameter");
old_eo = elm_object_part_content_get(noti_section, "elm.swallow.icon");
@@ -64,7 +63,6 @@ static void _noti_section_set_text(Evas_Object *noti_section, int count)
char format[256] = {0,};
const char *old_text = NULL;
- DBG("");
retif(noti_section == NULL, , "invalid parameter");
snprintf(format, sizeof(format), "%s %%d", _("IDS_QP_BODY_NOTIFICATIONS_ABB2"));
@@ -84,7 +82,6 @@ HAPI Evas_Object *noti_section_create(Evas_Object *parent) {
Eina_Bool ret = EINA_FALSE;
Evas_Object *section = NULL;
- DBG("");
retif(parent == NULL, NULL, "invalid parameter");
section = elm_layout_add(parent);
diff --git a/daemon/notifications/noti_util.c b/daemon/notifications/noti_util.c
index e90fb73..c4ade7f 100755
--- a/daemon/notifications/noti_util.c
+++ b/daemon/notifications/noti_util.c
@@ -45,8 +45,6 @@ HAPI int quickpanel_noti_get_event_count_by_pkgname(const char *pkgname) {
retif(pkgname == NULL, 0, "Invalid parameter!");
- DBG("%s", pkgname);
-
notification_get_detail_list(pkgname, NOTIFICATION_GROUP_ID_NONE, NOTIFICATION_PRIV_ID_NONE, -1, &noti_list);
if (noti_list != NULL) {
noti = notification_list_get_data(noti_list);
diff --git a/daemon/notifications/ticker.c b/daemon/notifications/ticker.c
index ef2b406..c873185 100755
--- a/daemon/notifications/ticker.c
+++ b/daemon/notifications/ticker.c
@@ -65,6 +65,19 @@ QP_Module ticker = {
.refresh = quickpanel_ticker_reflesh
};
+static int _is_lockscreen_launched(void) {
+ int ret = 0;
+ int is_lock_launched = VCONFKEY_IDLE_UNLOCK;
+
+ if ((ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &is_lock_launched)) == 0) {
+ if (ret == 0 && is_lock_launched == VCONFKEY_IDLE_LOCK) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
/*****************************************************************************
*
* (Static) Util functions
@@ -83,7 +96,6 @@ static void _quickpanel_ticker_clicked_cb(void *data, Evas_Object *obj,
flag_delete = 0;
notification_type_e type = NOTIFICATION_TYPE_NONE;
notification_h noti = NULL;
- int is_lock_launched = VCONFKEY_IDLE_UNLOCK;
int *is_ticker_executed = NULL;
noti = data;
@@ -91,10 +103,8 @@ static void _quickpanel_ticker_clicked_cb(void *data, Evas_Object *obj,
quickpanel_play_feedback();
- if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &is_lock_launched) == 0) {
- if (is_lock_launched == VCONFKEY_IDLE_LOCK) {
- return ;
- }
+ if (_is_lockscreen_launched()) {
+ return ;
}
notification_get_pkgname(noti, &caller_pkgname);
@@ -184,82 +194,6 @@ static void _quickpanel_ticker_clicked_cb(void *data, Evas_Object *obj,
}
}
-static int _quickpanel_ticker_check_ticker_off(notification_h noti)
-{
- char *pkgname = NULL;
- int ret = 0;
- int boolval = 0;
-
- notification_get_application(noti, &pkgname);
-
- if (pkgname == NULL)
- notification_get_pkgname(noti, &pkgname);
-
- if (pkgname == NULL)
- return 1; /* Ticker is not displaying. */
-
- if (!strcmp(pkgname, VENDOR".message")) {
- ret = vconf_get_bool(
- VCONFKEY_SETAPPL_STATE_TICKER_NOTI_MESSAGES_BOOL,
- &boolval);
- if (ret == 0 && boolval == 0)
- return 1;
- } else if (!strcmp(pkgname, VENDOR".email")) {
- ret = vconf_get_bool(
- VCONFKEY_SETAPPL_STATE_TICKER_NOTI_EMAIL_BOOL,
- &boolval);
- if (ret == 0 && boolval == 0)
- return 1;
- } else if (!strcmp(pkgname, VENDOR".ims-syspopup")) {
- ret = vconf_get_bool(
- VCONFKEY_SETAPPL_STATE_TICKER_NOTI_IM_BOOL,
- &boolval);
- if (ret == 0 && boolval == 0)
- return 1;
- }
-
- /* Displaying ticker! */
- return 0;
-}
-
-static int _quickpanel_ticker_check_displaying_contents_off(notification_h noti)
-{
- char *pkgname = NULL;
- int ret = 0;
- int boolval = 0;
-
- notification_get_application(noti, &pkgname);
-
- if (pkgname == NULL)
- notification_get_pkgname(noti, &pkgname);
-
- if (pkgname == NULL)
- return 0; /* Ticker is not displaying. */
-
- if (!strcmp(pkgname, VENDOR".message")) {
- ret = vconf_get_bool(
- VCONFKEY_TICKER_NOTI_DISPLAY_CONTENT_MESSASGES,
- &boolval);
- if (ret == 0 && boolval == 0)
- return 1;
- } else if (!strcmp(pkgname, VENDOR".email")) {
- ret = vconf_get_bool(
- VCONFKEY_TICKER_NOTI_DISPLAY_CONTENT_EMAIL,
- &boolval);
- if (ret == 0 && boolval == 0)
- return 1;
- } else if (!strcmp(pkgname, VENDOR".ims-syspopup")) {
- ret = vconf_get_bool(
- VCONFKEY_TICKER_NOTI_DISPLAY_CONTENT_IM,
- &boolval);
- if (ret == 0 && boolval == 0)
- return 1;
- }
-
- /* Displaying ticker! */
- return 0;
-}
-
static inline void __ticker_only_noti_del(notification_h noti)
{
int applist = NOTIFICATION_DISPLAY_APP_ALL;
@@ -292,7 +226,7 @@ static void _quickpanel_ticker_hide(void *data)
static Eina_Bool _quickpanel_ticker_timeout_cb(void *data)
{
- DBG("");
+ INFO("ticker dismissed by timeout callback");
g_timer = NULL;
@@ -305,7 +239,8 @@ static void _quickpanel_ticker_detail_hide_cb(void *data, Evas *e,
Evas_Object *obj,
void *event_info)
{
- DBG("");
+ INFO("ticker dismissed by touching a hide button");
+
notification_h noti = (notification_h) data;
if (g_timer) {
@@ -329,8 +264,6 @@ static void _quickpanel_ticker_detail_show_cb(void *data, Evas *e,
static void _quickpanel_ticker_button_clicked_cb(void *data, Evas_Object *obj,
void *event_info)
{
- DBG("");
-
if (g_timer) {
ecore_timer_del(g_timer);
g_timer = NULL;
@@ -343,16 +276,12 @@ static Evas_Object *_quickpanel_ticker_create_button(Evas_Object *parent,
notification_h noti)
{
Evas_Object *button = NULL;
- int ret = 0;
- int val = 0;
retif(noti == NULL || parent == NULL, NULL, "Invalid parameter!");
- /* Check idle lock state */
- ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val);
- /* If Lock state, button is diabled */
- if (ret != 0 || val == VCONFKEY_IDLE_LOCK)
+ if (_is_lockscreen_launched()) {
return NULL;
+ }
button = elm_button_add(parent);
elm_object_style_set(button, "tickernoti");
@@ -420,13 +349,7 @@ static char *_quickpanel_ticker_get_label_layout_default(notification_h noti)
bindtextdomain(domain, dir);
title_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_TITLE);
-
- if (_quickpanel_ticker_check_displaying_contents_off(noti) == 1) {
- content_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT_FOR_DISPLAY_OPTION_IS_OFF);
- }
- else {
- content_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT);
- }
+ content_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT);
event_count_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_EVENT_COUNT);
@@ -438,10 +361,7 @@ static char *_quickpanel_ticker_get_label_layout_default(notification_h noti)
}
} else {
if (title_utf8 && content_utf8) {
- if (_quickpanel_ticker_check_displaying_contents_off(noti) == 1)
- len = snprintf(buf, sizeof(buf),FORMAT_2LINE, title_utf8, content_utf8);
- else
- len = snprintf(buf, sizeof(buf),FORMAT_2LINE_MULTI, title_utf8, event_count_utf8, content_utf8);
+ len = snprintf(buf, sizeof(buf),FORMAT_2LINE_MULTI, title_utf8, event_count_utf8, content_utf8);
} else if (title_utf8) {
len = snprintf(buf, sizeof(buf),FORMAT_1LINE, title_utf8);
}
@@ -480,13 +400,7 @@ static char *_quickpanel_ticker_get_label_layout_single(notification_h noti)
bindtextdomain(domain, dir);
title_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_TITLE);
-
- if (_quickpanel_ticker_check_displaying_contents_off(noti) == 1) {
- content_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT_FOR_DISPLAY_OPTION_IS_OFF);
- }
- else {
- content_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT);
- }
+ content_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT);
info_1_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_INFO_1);
info_sub_1_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_INFO_SUB_1);
@@ -538,9 +452,8 @@ static char *_quickpanel_ticker_get_label(notification_h noti)
notification_get_layout(noti, &layout);
- if (_quickpanel_ticker_check_displaying_contents_off(noti) == 1) {
- result = _quickpanel_ticker_get_label_layout_default(noti);
- } else if (layout == NOTIFICATION_LY_NOTI_EVENT_SINGLE) {
+
+ if (layout == NOTIFICATION_LY_NOTI_EVENT_SINGLE) {
result = _quickpanel_ticker_get_label_layout_single(noti);
} else {
result = _quickpanel_ticker_get_label_layout_default(noti);
@@ -745,7 +658,7 @@ static void _quickpanel_noti_media_feedback(notification_h noti) {
#endif
notification_get_sound(noti, &nsound_type, &nsound_path);
- DBG("Sound : %d, %s", nsound_type, nsound_path);
+ DBG("notification sound: %d, %s", nsound_type, nsound_path);
switch (nsound_type) {
case NOTIFICATION_SOUND_TYPE_USER_DATA:
@@ -777,7 +690,7 @@ static void _quickpanel_noti_media_feedback(notification_h noti) {
const char *nvibration_path = NULL;
notification_get_vibration(noti, &nvibration_type, &nvibration_path);
- DBG("Vibration : %d, %s", nvibration_type, nvibration_path);
+ DBG("notification vibration: %d, %s", nvibration_type, nvibration_path);
switch (nvibration_type) {
case NOTIFICATION_VIBRATION_TYPE_USER_DATA:
case NOTIFICATION_VIBRATION_TYPE_DEFAULT:
@@ -794,7 +707,6 @@ static void _quickpanel_ticker_noti_detailed_changed_cb(void *data, notification
notification_h noti = NULL;
int flags = 0;
int applist = NOTIFICATION_DISPLAY_APP_ALL;
- int ret = 0;
int op_type = 0;
int priv_id = 0;
@@ -802,6 +714,11 @@ static void _quickpanel_ticker_noti_detailed_changed_cb(void *data, notification
retif(op_list == NULL, ,"op_list is NULL");
+ if (_is_lockscreen_launched()) {
+ ERR("lockscreen launched, creating a ticker canceled");
+ return;
+ }
+
if (num_op == 1) {
notification_op_get_data(op_list, NOTIFICATION_OP_DATA_TYPE, &op_type);
notification_op_get_data(op_list, NOTIFICATION_OP_DATA_PRIV_ID, &priv_id);
@@ -822,27 +739,17 @@ static void _quickpanel_ticker_noti_detailed_changed_cb(void *data, notification
retif(noti == NULL, ,"noti is NULL");
if (op_type == NOTIFICATION_OP_INSERT || op_type == NOTIFICATION_OP_UPDATE) {
+ INFO("playing notification sound");
_quickpanel_noti_media_feedback(noti);
}
notification_get_display_applist(noti, &applist);
if (!(applist & NOTIFICATION_DISPLAY_APP_TICKER)) {
- DBG("No Ticker Msg");
+ INFO("displaying ticker option is off");
notification_free(noti);
return ;
}
- /* Check setting's event notification */
- ret = _quickpanel_ticker_check_ticker_off(noti);
- if (ret == 1) {
- INFO("Disable tickernoti ret : %d", ret);
- /* delete temporary here only ticker noti display item */
- __ticker_only_noti_del(noti);
- notification_free(noti);
-
- return;
- }
-
/* Skip if previous ticker is still shown */
if (g_ticker != NULL) {
_quickpanel_ticker_hide(NULL);
diff --git a/daemon/quickpanel-ui.c b/daemon/quickpanel-ui.c
index 47b138e..75c42fb 100755
--- a/daemon/quickpanel-ui.c
+++ b/daemon/quickpanel-ui.c
@@ -88,7 +88,7 @@ HAPI int quickpanel_launch_app(char *app_id, void *data)
ret = service_create(&service);
if (ret != SERVICE_ERROR_NONE) {
- DBG("service_create() return error : %d", ret);
+ ERR("service_create() return error : %d", ret);
return ret;
}
retif(service == NULL, SERVICE_ERROR_INVALID_PARAMETER, "fail to create service handle!");
@@ -106,7 +106,7 @@ HAPI int quickpanel_launch_app(char *app_id, void *data)
ret = service_send_launch_request(service, NULL, NULL);
if (ret != SERVICE_ERROR_NONE) {
- DBG("service_send_launch_request() is failed : %d", ret);
+ ERR("service_send_launch_request() is failed : %d", ret);
service_destroy(service);
return ret;
}
@@ -302,12 +302,12 @@ static Eina_Bool quickpanel_ui_client_message_cb(void *data, int type,
#if QP_ENABLE_HIDING_INDICATOR
elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW);
#endif
- DBG("quickpanel open start");
+ INFO("quickpanel going to be opened");
}
}
if (ev->data.l[0] == 0) {
if (ad->is_opened == 0) {
- DBG("quickpanel closed");
+ INFO("quickpanel is closed");
ad->is_opened = 1;
qp_opened_modules(data);
quickpanel_player_stop();
@@ -320,7 +320,7 @@ static Eina_Bool quickpanel_ui_client_message_cb(void *data, int type,
static void _quickpanel_signal_handler(int signum, siginfo_t *info, void *unused)
{
- DBG("Terminated...");
+ ERR("quickpanel going to be terminated");
app_efl_exit();
}
@@ -333,7 +333,12 @@ static Evas_Object *_quickpanel_ui_window_add(const char *name, int prio)
if (eo != NULL) {
elm_win_alpha_set(eo, EINA_TRUE);
+#if QP_ENABLE_HIDING_INDICATOR
+ elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_HIDE);
+#else
elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_SHOW);
+#endif
+
elm_win_title_set(eo, name);
elm_win_borderless_set(eo, EINA_TRUE);
elm_win_autodel_set(eo, EINA_TRUE);
@@ -351,12 +356,12 @@ static Evas_Object *_quickpanel_ui_window_add(const char *name, int prio)
return eo;
}
+#ifdef TBD
static void _quickpanel_add_debugging_bar(Evas_Object *list)
{
Eina_Bool ret = EINA_FALSE;
Evas_Object *bar = elm_layout_add(list);
- DBG("");
ret = elm_layout_file_set(bar, DEFAULT_EDJ,
"quickpanel/seperator/default");
@@ -371,6 +376,7 @@ static void _quickpanel_add_debugging_bar(Evas_Object *list)
evas_object_show(bar);
}
}
+#endif
HAPI Evas_Object *quickpanel_ui_load_edj(Evas_Object * parent, const char *file,
const char *group, int is_just_load)
@@ -494,7 +500,6 @@ static void _quickpanel_ui_set_indicator_cover(void *data)
retif(data == NULL, , "data is NULL");
struct appdata *ad = data;
- int x_1 = 0, y_1 = 0;
int x_2 = 0, y_2 = 0;
int angle = ad->angle;
@@ -503,42 +508,23 @@ static void _quickpanel_ui_set_indicator_cover(void *data)
switch (angle) {
case 0:
- x_1 = 0;
- y_1 = 0;
x_2 = ad->win_width - width;
y_2 = 0;
break;
case 90:
- x_1 = 0;
- y_1 = 0;
x_2 = ad->win_height - width;
y_2 = 0;
break;
case 180:
- x_1 = 0;
- y_1 = 0;
x_2 = ad->win_width - width;
y_2 = 0;
break;
case 270:
- x_1 = 0;
- y_1 = 0;
x_2 = ad->win_height - width;
y_2 = 0;
break;
}
- if (ad->cover_indicator_left == NULL) {
- Evas_Object *bg = evas_object_rectangle_add(ad->evas);
- evas_object_color_set(bg, 52, 52, 50, 255); // opaque white background
- evas_object_repeat_events_set(bg, EINA_FALSE);
- evas_object_resize(bg, width, height); // covers full canvas
- evas_object_move(bg, x_1, y_1);
- evas_object_show(bg);
- ad->cover_indicator_left = bg;
- } else {
- evas_object_move(ad->cover_indicator_left, x_1, y_1);
- }
if (ad->cover_indicator_right == NULL) {
Evas_Object *bg = evas_object_rectangle_add(ad->evas);
evas_object_color_set(bg, 52, 52, 50, 255); // opaque white background
@@ -564,7 +550,7 @@ static void _quickpanel_ui_window_set_input_region(void *data, int contents_heig
xwin = elm_win_xwindow_get(ad->win);
- DBG("angle:%d", ad->angle);
+ INFO("angle:%d", ad->angle);
switch (ad->angle) {
case 0:
window_input_region[0] = 0; //X
@@ -592,7 +578,7 @@ static void _quickpanel_ui_window_set_input_region(void *data, int contents_heig
break;
}
- DBG("win_input_0:%d\nwin_input_1:%d\nwin_input_2:%d\nwin_input_3:%d\n"
+ INFO("win_input_0:%d\nwin_input_1:%d\nwin_input_2:%d\nwin_input_3:%d\n"
,window_input_region[0]
,window_input_region[1]
,window_input_region[2]
@@ -615,7 +601,7 @@ static void _quickpanel_ui_window_set_content_region(void *data, int contents_he
xwin = elm_win_xwindow_get(ad->win);
- DBG("angle:%d", ad->angle);
+ INFO("angle:%d", ad->angle);
switch (ad->angle) {
case 0:
window_contents_region[0] = 0; //X
@@ -802,10 +788,7 @@ static void _quickpanel_init_size_genlist(void *data)
max_height_window = ad->win_height;
edje_object_part_geometry_get(_EDJ(ad->ly), "qp.gl_base.gl.swallow", NULL, &genlist_y, NULL, NULL);
- DBG("quickpanel, qp.gl_base.gl.swallow y: %d",genlist_y);
-
edje_object_part_geometry_get(_EDJ(ad->ly), "qp.base.spn.swallow", NULL, NULL, NULL, &spn_height);
- DBG("quickpanel, to spn_height: %d",spn_height);
ad->gl_distance_from_top = genlist_y;
ad->gl_distance_to_bottom = spn_height + (1 * ad->scale) + (ad->scale*QP_HANDLE_H) ;
@@ -872,10 +855,6 @@ static void quickpanel_app_terminate(void *data)
_quickpanel_ui_fini_ecore_event(ad);
- if (ad->cover_indicator_left != NULL) {
- evas_object_del(ad->cover_indicator_left);
- ad->cover_indicator_left = NULL;
- }
if (ad->cover_indicator_right != NULL) {
evas_object_del(ad->cover_indicator_right);
ad->cover_indicator_right = NULL;
@@ -894,6 +873,7 @@ static void quickpanel_app_pause(void *data)
retif(ad == NULL,, "invalid data.");
suspend_modules(ad);
+ quickpanel_ui_del_current_popup();
ad->is_suspended = 1;
@@ -938,7 +918,6 @@ static void quickpanel_app_service(service_h service, void *data)
ret = _quickpanel_ui_create_win(ad);
retif(ret != QP_OK, , "Failed to create window!");
-
atoms_init_quickpanel();
ad->E_ILLUME_ATOM_MV_QUICKPANEL_STATE = &E_ILLUME_ATOM_MV_QUICKPANEL_STATE;
@@ -976,6 +955,7 @@ static void quickpanel_app_region_format_changed_cb(void *data)
HAPI void quickpanel_open_quickpanel(void) {
Ecore_X_Window xwin;
+ Ecore_X_Window zone;
struct appdata *ad = g_app_data;
DBG("");
@@ -984,13 +964,20 @@ HAPI void quickpanel_open_quickpanel(void) {
retif(ad->win == NULL, , "Invalid parameter!");
xwin = elm_win_xwindow_get(ad->win);
-
- if (xwin != 0)
- ecore_x_e_illume_quickpanel_state_send(ecore_x_e_illume_zone_get(xwin),ECORE_X_ILLUME_QUICKPANEL_STATE_ON);
+ if (xwin != 0) {
+ if ((zone = ecore_x_e_illume_zone_get(xwin)) != 0) {
+ ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_ON);
+ } else {
+ ERR("failed to get zone");
+ }
+ } else {
+ ERR("failed to get xwin");
+ }
}
HAPI void quickpanel_close_quickpanel(bool is_check_lock) {
Ecore_X_Window xwin;
+ Ecore_X_Window zone;
int is_lock_launched = VCONFKEY_IDLE_UNLOCK;
struct appdata *ad = g_app_data;
@@ -999,8 +986,6 @@ HAPI void quickpanel_close_quickpanel(bool is_check_lock) {
retif(ad == NULL, , "Invalid parameter!");
retif(ad->win == NULL, , "Invalid parameter!");
- xwin = elm_win_xwindow_get(ad->win);
-
if (is_check_lock == true) {
if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &is_lock_launched) == 0) {
if (is_lock_launched == VCONFKEY_IDLE_LOCK) {
@@ -1010,8 +995,42 @@ HAPI void quickpanel_close_quickpanel(bool is_check_lock) {
}
}
- if (xwin != 0)
- ecore_x_e_illume_quickpanel_state_send(ecore_x_e_illume_zone_get(xwin),ECORE_X_ILLUME_QUICKPANEL_STATE_OFF);
+ xwin = elm_win_xwindow_get(ad->win);
+ if (xwin != 0) {
+ if ((zone = ecore_x_e_illume_zone_get(xwin)) != 0) {
+ ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_OFF);
+ } else {
+ ERR("failed to get zone");
+ }
+ } else {
+ ERR("failed to get xwin");
+ }
+}
+
+HAPI void quickpanel_toggle_openning_quickpanel(void) {
+ Ecore_X_Window xwin;
+ Ecore_X_Window zone;
+ struct appdata *ad = g_app_data;
+
+ DBG("");
+
+ retif(ad == NULL, , "Invalid parameter!");
+ retif(ad->win == NULL, , "Invalid parameter!");
+
+ xwin = elm_win_xwindow_get(ad->win);
+ if (xwin != 0) {
+ if ((zone = ecore_x_e_illume_zone_get(xwin)) != 0) {
+ if (ecore_x_e_illume_quickpanel_state_get(zone) == ECORE_X_ILLUME_QUICKPANEL_STATE_ON) {
+ ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_OFF);
+ } else {
+ ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_ON);
+ }
+ } else {
+ ERR("failed to get zone");
+ }
+ } else {
+ ERR("failed to get xwin");
+ }
}
int main(int argc, char *argv[])
@@ -1040,6 +1059,5 @@ int main(int argc, char *argv[])
g_app_data = &ad;
- DBG("start main");
return app_efl_main(&argc, &argv, &app_callback, (void *)&ad);
}
diff --git a/daemon/quickpanel-ui.h b/daemon/quickpanel-ui.h
index 79553df..19064ec 100755
--- a/daemon/quickpanel-ui.h
+++ b/daemon/quickpanel-ui.h
@@ -47,6 +47,9 @@
#define _(str) gettext(str)
#define _NOT_LOCALIZED(str) (str)
+#define QP_SETTING_SOUND_SIP_PATH \
+ "/usr/apps/com.samsung.quickpanel/data/sip.wav"
+
#define STR_ATOM_WINDOW_INPUT_REGION "_E_COMP_WINDOW_INPUT_REGION"
#define STR_ATOM_WINDOW_CONTENTS_REGION "_E_COMP_WINDOW_CONTENTS_REGION"
@@ -70,6 +73,7 @@ struct appdata {
Evas_Object *scroller;
Evas_Object *list;
+ Evas_Object *popup;
int angle;
double scale;
char *theme;
@@ -92,7 +96,6 @@ struct appdata {
E_DBus_Signal_Handler *dbus_handler_progress;
E_DBus_Signal_Handler *dbus_handler_content;
- Evas_Object *cover_indicator_left;
Evas_Object *cover_indicator_right;
Ecore_X_Atom *E_ILLUME_ATOM_MV_QUICKPANEL_STATE;
@@ -130,5 +133,6 @@ Evas_Object *quickpanel_ui_load_edj(Evas_Object * parent, const char *file,
void quickpanel_ui_set_indicator_cover(void *data);
void quickpanel_close_quickpanel(bool is_check_lock);
void quickpanel_open_quickpanel(void);
+void quickpanel_toggle_openning_quickpanel(void);
#endif /* __QUICKPANEL_UI_H__ */
diff --git a/daemon/service/noti_led.c b/daemon/service/noti_led.c
new file mode 100755
index 0000000..94479c9
--- /dev/null
+++ b/daemon/service/noti_led.c
@@ -0,0 +1,223 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (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
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifdef QP_SERVICE_NOTI_LED_ENABLE
+#include <vconf.h>
+#include "common.h"
+#include "noti_util.h"
+#include "noti_led.h"
+
+#define LED_ON 1
+#define LED_OFF 0
+
+static int g_is_led_turned_on = 0;
+
+static inline int _is_led_notification_enabled(void) {
+ int ret = -1;
+ int status = 1;
+
+ ret = vconf_get_bool(VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS, &status);
+
+ if (ret == 0) {
+ if (status == 0) {
+ ERR("LED notification turned off");
+ return 0;
+ }
+ } else {
+ ERR("failed to get value of VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS:%d", ret);
+ }
+
+ return 1;
+}
+
+static inline int __quickpanel_service_get_event_count(const char *pkgname) {
+ int count = 0;
+ notification_h noti = NULL;
+ notification_list_h noti_list = NULL;
+
+ retif(pkgname == NULL, 0, "Invalid parameter!");
+
+ notification_get_detail_list(pkgname, NOTIFICATION_GROUP_ID_NONE, NOTIFICATION_PRIV_ID_NONE, -1, &noti_list);
+ if (noti_list != NULL) {
+ noti = notification_list_get_data(noti_list);
+ if (noti != NULL) {
+ count = quickpanel_noti_get_event_count_from_noti(noti);
+ }
+ notification_free_list(noti_list);
+ return count;
+ } else {
+ return 0;
+ }
+
+ return 0;
+}
+
+static void _noti_led_on_with_custom_color(int led_argb) {
+ int ret = 0;
+
+ if ((ret = led_set_mode_with_color(LED_MISSED_NOTI, LED_ON, led_argb)) == -1) {
+ ERR("failed led_set_mode:%d", ret);
+ }
+ g_is_led_turned_on = 1;
+}
+
+static void _noti_led_on(notification_h noti) {
+ int ret = 0;
+ notification_led_op_e operation = -1;
+ int led_argb = 0x0;
+
+ if (noti == NULL) {
+ if ((ret = led_set_mode(LED_MISSED_NOTI, LED_ON)) == -1) {
+ ERR("failed led_set_mode:%d", ret);
+ }
+ g_is_led_turned_on = 1;
+ } else {
+ notification_get_led(noti, &operation, &led_argb);
+
+ if (operation == NOTIFICATION_LED_OP_ON) {
+ if ((ret = led_set_mode(LED_MISSED_NOTI, LED_ON)) == -1) {
+ ERR("failed led_set_mode:%d", ret);
+ }
+ g_is_led_turned_on = 1;
+ } else if (operation == NOTIFICATION_LED_OP_ON_CUSTOM_COLOR) {
+ if ((ret = led_set_mode_with_color(LED_MISSED_NOTI, LED_ON, led_argb)) == -1) {
+ ERR("failed led_set_mode:%d", ret);
+ }
+ g_is_led_turned_on = 1;
+ } else {
+ ERR("NOTIFICATION_LED_OP_OFF");
+ }
+ }
+}
+
+static void _noti_led_off(void) {
+ int ret = 0;
+
+ if ((ret = led_set_mode(LED_MISSED_NOTI, LED_OFF)) == -1) {
+ ERR("failed led_set_mode:%d", ret);
+ }
+ g_is_led_turned_on = 0;
+}
+
+static int _is_keep_turn_on_led(int *op, int *argb) {
+ notification_h noti = NULL;
+ notification_list_h noti_list = NULL;
+ notification_list_h noti_list_head = NULL;
+ notification_led_op_e operation = -1;
+ int led_argb = 0;
+
+ notification_get_list(NOTIFICATION_TYPE_NOTI , -1, &noti_list_head);
+ noti_list = noti_list_head;
+
+ while (noti_list != NULL) {
+ noti = notification_list_get_data(noti_list);
+ if (noti != NULL) {
+ notification_get_led(noti, &operation, &led_argb);
+ if (operation >= NOTIFICATION_LED_OP_ON) {
+ notification_free_list(noti_list_head);
+ noti_list_head = NULL;
+
+ if (op != NULL) *op = operation;
+ if (argb != NULL) *argb = led_argb;
+ return 1;
+ }
+ }
+
+ noti_list = notification_list_get_next(noti_list);
+ }
+
+ if (noti_list_head != NULL) {
+ notification_free_list(noti_list_head);
+ noti_list_head = NULL;
+ }
+
+ return 0;
+}
+
+HAPI void quickpanel_service_noti_led_on(notification_h noti) {
+ notification_led_op_e operation = -1;
+ int led_argb = 0;
+
+ retif(_is_led_notification_enabled() == 0, , "led noti disabled");
+
+ if (noti == NULL) {
+ if (_is_keep_turn_on_led(&operation, &led_argb) >= 1) {
+ if (operation == NOTIFICATION_LED_OP_ON) {
+ _noti_led_on(NULL);
+ } else if (operation == NOTIFICATION_LED_OP_ON_CUSTOM_COLOR) {
+ _noti_led_on_with_custom_color(led_argb);
+ }
+ }
+ } else {
+ _noti_led_on(noti);
+ }
+}
+
+HAPI void quickpanel_service_noti_led_off(notification_h noti) {
+ retif(g_is_led_turned_on == 0, , "led already turned off");
+
+ if (_is_keep_turn_on_led(NULL, NULL) == 0) {
+ _noti_led_off();
+ }
+}
+
+
+static void quickpanel_service_noti_vconf_cb(keynode_t *node,
+ void *data)
+{
+ int ret = 0;
+ int is_on = 0;
+
+ is_on = _is_led_notification_enabled();
+
+ ERR("led notification status:%d", is_on);
+
+ if (is_on == 0) {
+ if ((ret = led_set_mode(LED_MISSED_NOTI, LED_OFF)) == -1) {
+ ERR("failed led_set_mode:%d", ret);
+ }
+ g_is_led_turned_on = 0;
+ } else {
+ quickpanel_service_noti_led_on(NULL);
+ }
+}
+
+HAPI void quickpanel_service_noti_init(void *data) {
+ int ret = 0;
+ struct appdata *ad = data;
+ retif(ad == NULL, , "Invalid parameter!");
+
+ ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS,
+ quickpanel_service_noti_vconf_cb,
+ ad);
+ if (ret != 0) {
+ ERR("failed to notify key[%s] : %d",
+ VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, ret);
+ }
+}
+
+HAPI void quickpanel_service_noti_fini(void *data) {
+ int ret = 0;
+ struct appdata *ad = data;
+ retif(ad == NULL, , "Invalid parameter!");
+
+ ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS,
+ quickpanel_service_noti_vconf_cb);
+ if (ret != 0) {
+ ERR("failed to ignore key[%s] : %d",
+ VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS, ret);
+ }
+}
+#endif
diff --git a/daemon/service/noti_led.h b/daemon/service/noti_led.h
new file mode 100755
index 0000000..971ee0f
--- /dev/null
+++ b/daemon/service/noti_led.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (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
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef QP_SERVICE_NOTI_LED_ENABLE
+#ifndef _QP_NOTI_LED_DEF_
+#define _QP_NOTI_LED_DEF_
+
+#include <notification.h>
+#include <dd-led.h>
+#include "quickpanel-ui.h"
+
+#if !defined(VENDOR)
+#define NOTI_LED_CALL_PKGNAME "com.samsung.call"
+#define NOTI_LED_VTCALL_PKGNAME "com.samsung.vtmain"
+#else
+#define NOTI_LED_CALL_PKGNAME VENDOR".call"
+#define NOTI_LED_VTCALL_PKGNAME VENDOR".vtmain"
+#endif
+#define NOTI_LED_MSG_PKGNAME "/usr/bin/msg-server"
+
+void quickpanel_service_noti_led_on(notification_h noti);
+void quickpanel_service_noti_led_off(notification_h noti);
+void quickpanel_service_noti_init(void *data);
+void quickpanel_service_noti_fini(void *data);
+
+#endif
+#endif
diff --git a/data/icons/quick_standard_btn_nor.png b/data/icons/quick_standard_btn_nor.png
index 007f08f..5d2cc63 100755
--- a/data/icons/quick_standard_btn_nor.png
+++ b/data/icons/quick_standard_btn_nor.png
Binary files differ
diff --git a/data/icons/quick_standard_btn_press.png b/data/icons/quick_standard_btn_press.png
index 1657576..c94d052 100755
--- a/data/icons/quick_standard_btn_press.png
+++ b/data/icons/quick_standard_btn_press.png
Binary files differ
diff --git a/data/quickpanel.xml.in b/data/quickpanel.xml.in
index f02dc4e..cfd0958 100755
--- a/data/quickpanel.xml.in
+++ b/data/quickpanel.xml.in
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns="http://tizen.org/ns/packages" package="@PKGNAME@" version="0.3.33-1" install-location="internal-only">
+<manifest xmlns="http://tizen.org/ns/packages" package="@PKGNAME@" version="0.3.38-1" install-location="internal-only">
<label>@PROJECT_NAME@</label>
<author email="yjoo93.park@samsung.com" href="www.samsung.com">Youngjoo Park</author>
<author email="seungtaek.chung@samsung.com" href="www.samsung.com">seungtaek chung</author>
diff --git a/data/quickpanel_def.h b/data/quickpanel_def.h
index caf6ffe..c3c1401 100755
--- a/data/quickpanel_def.h
+++ b/data/quickpanel_def.h
@@ -23,7 +23,7 @@
#define QP_HANDLE_H 64
#define QP_HANDLE_TOTAL_H 80
#define QP_SPN_H 80
-#define QP_SPN_TEXT_W 500
+#define QP_SPN_TEXT_W 520
#define QP_BG_VISIBILITY 0
#define QP_BG_COLOR 255 255 255 255
diff --git a/packaging/org.tizen.quickpanel.spec b/packaging/org.tizen.quickpanel.spec
index 57e2c1e..aacee49 100755
--- a/packaging/org.tizen.quickpanel.spec
+++ b/packaging/org.tizen.quickpanel.spec
@@ -4,7 +4,7 @@
Name: org.tizen.quickpanel
Summary: Quick Panel
-Version: 0.3.33
+Version: 0.3.38
Release: 1
Group: util
License: Flora Software License
@@ -36,6 +36,7 @@ BuildRequires: pkgconfig(elementary)
BuildRequires: pkgconfig(syspopup-caller)
BuildRequires: pkgconfig(minicontrol-viewer)
BuildRequires: pkgconfig(minicontrol-monitor)
+#BuildRequires: pkgconfig(deviced)
BuildRequires: pkgconfig(utilX)
BuildRequires: gettext-tools
BuildRequires: cmake
diff --git a/po/ar.po b/po/ar.po
index 7c8dbd2..6165b42 100755
--- a/po/ar.po
+++ b/po/ar.po
@@ -1,5 +1,5 @@
msgid "IDS_QP_BODY_NOTIFICATIONS_ABB2"
-msgstr "إخطارات"
+msgstr "إشعارات"
msgid "IDS_WIFI_BODY_ALLSHARE_CAST"
msgstr "AllShare Cast"
@@ -11,7 +11,7 @@ msgid "IDS_QP_BUTTON_ROTATION"
msgstr "تدوير"
msgid "IDS_QP_BODY_NOTIFICATIONS_HPD"
-msgstr "إخطارات (%d)"
+msgstr "إشعارات (%d)"
msgid "IDS_QP_BUTTON_VIBRATION"
msgstr "الاهتزاز"
@@ -85,6 +85,9 @@ msgstr "إيقاف تشغيل التقييد لاستخدام Wi-Fi"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "لا يمكن تنشيط كل من Wi-Fi وMobile AP في الوقت نفسه. هل تريد إلغاء تنشيط Mobile AP؟"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "مراقبة الشاشة"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "استبدال زر الإعداد السريع"
@@ -104,5 +107,17 @@ msgid "IDS_QP_BUTTON2_GPS"
msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
-msgstr "إخطار"
+msgstr "إشعار"
+
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "موافق"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "غير موافق"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "تتحكم التطبيقات التي تستخدمها في موقع GPS واستخدام بيانات الموقع"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "موافقة المستخدم"
diff --git a/po/az.po b/po/az.po
index 3c14400..d852b7f 100755
--- a/po/az.po
+++ b/po/az.po
@@ -85,6 +85,9 @@ msgstr "Bağlanmadan istifadə etmək üçün Wi-Fi-ı söndür"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi və Mobile AP eyni zamanda aktivləşdirilə bilməz. Mobile AP qeyri-aktiv edilsin?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Çevik parametr düyməsini əvəz et"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Bildiriş"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Razıyam"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Müvafiq deyil"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS məkanı və məkan məlumatlarınızdan istifadə istifadə etdiyiniz proqramlarla idarə olunur"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "İstifadəçi razılığı"
+
diff --git a/po/bg.po b/po/bg.po
index dbff2fd..41315eb 100755
--- a/po/bg.po
+++ b/po/bg.po
@@ -85,6 +85,9 @@ msgstr "Изключете Wi-Fi, за да използвате привърз
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi и Mobile AP не могат да бъдат активирани едновременно.. Деактивиране на Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Огледален режим на екрана"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Заместване на бутона за бърза настройка"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Уведом."
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Съгласен"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Несъгласен"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS местоположението и използването на вашите данни за местоположение се контролират от приложенията, които използвате"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Съгласие от потребителя"
+
diff --git a/po/ca.po b/po/ca.po
index c139c8f..bcf570c 100755
--- a/po/ca.po
+++ b/po/ca.po
@@ -85,6 +85,9 @@ msgstr "Desactivar el Wi-Fi per utilitzar tethering"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "No es poden activar els punt d'accés Wi-Fi i mòbil al mateix temps. Desactivar al punt d'accés mòbil?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Simetria de pantalla"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Substituir botó d'ajustament ràpid"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notificac"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Aceptar"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "No acceptar"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "La ubicació GPS i l'ús de les dades de la ubicació les controlen les aplicacions que utilitza"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Consentiment d'usuari"
+
diff --git a/po/cs.po b/po/cs.po
index de044af..4a15571 100755
--- a/po/cs.po
+++ b/po/cs.po
@@ -85,6 +85,9 @@ msgstr "Chcete použít sdílení připojení k Internetu, vypněte Wi-Fi"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi a mobilní přístupový bod nelze aktivovat současně. Chcete deaktivovat mobilní přístupový bod?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Zrcadlení obrazovky"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Vyměnit tlačítko rychlého nastavení"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Oznámení"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Souhlasím"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Nesouhlasím"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Poloha GPS a použití údajů o poloze je řízeno používanými aplikacemi"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Souhlas uživatele"
+
diff --git a/po/da.po b/po/da.po
index 9aaa368..46fc74a 100755
--- a/po/da.po
+++ b/po/da.po
@@ -85,6 +85,9 @@ msgstr "Sluk for Wi-Fi for at bruge deling"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Både Wi-Fi og mobilt adgangspunkt kan ikke være aktiveret på samme tid. Deaktivér mobilt adgangspunkt?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Skærmspejling"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Erstat hurtig indstillingsknap"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Besked"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Acceptér"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Uenig"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS-placering og brug af dine placeringsdata styres af det program, du anvender"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Brugersamtykke"
+
diff --git a/po/de_DE.po b/po/de_DE.po
index fbf9ba3..73ed8f0 100755
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -85,6 +85,9 @@ msgstr "WLAN ausschalten, um Tethering zu verwenden"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "WLAN und Mobile AP können nicht zur gleichen Zeit aktiviert werden. Mobile AP deaktivieren?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Bildschirmspiegelung"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Schnelleinstellungstaste ersetzen"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Benachr."
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Zustimmen"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Ablehnen"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS-Standort und Verwendung Ihrer Standortdaten werden von den von Ihnen verwendeten Anwendungen kontrolliert"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Benutzerzustimmung"
+
diff --git a/po/el_GR.po b/po/el_GR.po
index 02545b0..d0ea64d 100755
--- a/po/el_GR.po
+++ b/po/el_GR.po
@@ -85,6 +85,9 @@ msgstr "Απενεργοποιήστε το Wi-Fi για χρήση της λε
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Τόσο το Wi-Fi όσο και το AP για κινητά δεν μπορούν να ενεργοποιηθούν ταυτόχρονα. Απενεργοποίηση AP για κινητά;"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Κατοπτρισμός οθόνης"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Αντικατάσταση κουμπιού γρήγορης ρύθμισης"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Ειδοποίηση"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Αποδοχή"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Δεν συμφωνώ"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Η τοποθεσία GPS και η χρήση των δεδομένων τοποθεσίας σας ελέγχονται από τις εφαρμογές τις οποίες χρησιμοποιείτε"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Συγκατάθεση χρήστη"
+
diff --git a/po/en.po b/po/en.po
index 755987a..18a648e 100755
--- a/po/en.po
+++ b/po/en.po
@@ -85,6 +85,9 @@ msgstr "Turn off Wi-Fi to use tethering"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Both Wi-Fi and mobile AP cannot be activated at the same time. Deactivate mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Replace quick setting button"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notification"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Agree"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Disagree"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS location and use of your location data are controlled by the applications you use"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "User consent"
+
diff --git a/po/en_PH.po b/po/en_PH.po
index 9a64a84..d99aed0 100755
--- a/po/en_PH.po
+++ b/po/en_PH.po
@@ -85,6 +85,9 @@ msgstr "Turn off Wi-Fi to use tethering"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Both Wi-Fi and Mobile AP cannot be activated at the same time. Deactivate Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Replace quick setting button"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notification"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Agree"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Disagree"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS location and use of your location data are controlled by the applications you use"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "User consent"
+
diff --git a/po/en_US.po b/po/en_US.po
index 30a78a9..c2e73ee 100755
--- a/po/en_US.po
+++ b/po/en_US.po
@@ -29,10 +29,10 @@ msgid "IDS_QP_BODY_MASS_STORAGE_MODE"
msgstr "Mass storage mode"
msgid "IDS_QP_BUTTON_DISABLE"
-msgstr "Disable"
+msgstr "Turn off"
msgid "IDS_QP_BUTTON_ENABLE"
-msgstr "Enable"
+msgstr "Turn on"
msgid "IDS_COM_POP_UNSUPPORTED"
msgstr "Unsupported"
@@ -68,16 +68,16 @@ msgid "IDS_QP_TAB_DRIVING_MODE"
msgstr "Driving mode"
msgid "IDS_COM_POP_UNABLE_TO_CONNECT_TO_MOBILE_NETWORK_WHILE_FLIGHT_MODE_IS_ENABLED_MSG"
-msgstr "Unable to connect to mobile networks while Airplane mode is enabled. Connect to Wi-Fi network instead, or disable Airplane mode and try again."
+msgstr "Unable to connect to mobile networks while Airplane mode is turned on. Connect to Wi-Fi network instead, or turn off Airplane mode and try again."
msgid "IDS_QP_POP_WI_FI_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE_CONTINUE_Q"
msgstr "Wi-Fi tethering consumes more battery power and increases your data usage. Continue?"
msgid "IDS_QP_POP_DISABLE_TETHERING_TO_USE_WI_FI"
-msgstr "Disable tethering to use Wi-Fi."
+msgstr "Turn off tethering to use Wi-Fi"
msgid "IDS_QP_POP_TO_ENABLE_POWER_SAVING_MODE_ENABLE_AT_LEAST_ONE_RELEVANT_FUNCTION"
-msgstr "To enable Power saving mode, enable at least one relevant function."
+msgstr "To turn on Power saving mode, turn on at least one relevant function"
msgid "IDS_QP_POP_TURN_OFF_WI_FI_TO_USE_TETHERING"
msgstr "Turn off Wi-Fi to use tethering."
@@ -85,6 +85,9 @@ msgstr "Turn off Wi-Fi to use tethering."
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Both Wi-Fi and Mobile AP cannot be activated at the same time. Deactivate Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Replace quick setting button"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notification"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Agree"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Disagree"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS location and use of your location data are controlled by the applications you use"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "User consent"
+
diff --git a/po/es_ES.po b/po/es_ES.po
index 08e7758..222e57a 100755
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -53,7 +53,7 @@ msgid "IDS_QP_POP_CONNECTING_VIA_PACKET_DATA_MAY_INCUR_ADDITIONAL_CHARGES_CONTIN
msgstr "La conexión mediante paquetes de datos puede suponer gastos adicionales. ¿Continuar?"
msgid "IDS_QP_BODY_AUTO"
-msgstr "Auto"
+msgstr "Automático"
msgid "IDS_QP_TAB_POWER_SAVING"
msgstr "Ahorro de energía"
@@ -85,6 +85,9 @@ msgstr "Apague la Wi-Fi para usar anclaje a red"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Las conexiones Wi-Fi y Mobile AP no se pueden activar al mismo tiempo. ¿Desactivar Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Reemplazar botón de ajuste rápido"
@@ -95,7 +98,7 @@ msgid "IDS_QP_POP_YOU_WILL_NO_LONGER_BE_ABLE_TO_USE_APPLICATIONS_SUCH_AS_INTERNE
msgstr "Ya no podrá utilizar aplicaciones de datos como Internet y el correo electrónico mediante redes móviles. ¿Continuar?"
msgid "IDS_QP_BUTTON2_SCREEN_N_MIRRORING"
-msgstr "Screen\nMirroring"
+msgstr "Compartir\npantalla"
msgid "IDS_COM_BODY_BUTTON_T_TTS"
msgstr "Botón"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notificac"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Acepto"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "No acepto"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "La ubicación del GPS y el uso de los datos de ubicación los controlan las aplicaciones que utiliza"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Consentimiento del usuario"
+
diff --git a/po/es_MX.po b/po/es_MX.po
index 9f07a53..b2532c6 100755
--- a/po/es_MX.po
+++ b/po/es_MX.po
@@ -53,7 +53,7 @@ msgid "IDS_QP_POP_CONNECTING_VIA_PACKET_DATA_MAY_INCUR_ADDITIONAL_CHARGES_CONTIN
msgstr "La conexión mediante paquete de datos puede suponer gastos adicionales. ¿Continuar?"
msgid "IDS_QP_BODY_AUTO"
-msgstr "Auto"
+msgstr "Automático"
msgid "IDS_QP_TAB_POWER_SAVING"
msgstr "Ahorro de energía"
@@ -85,6 +85,9 @@ msgstr "Desactive Wi-Fi para usar la redirección"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Las conexiones Wi-Fi y Mobile AP no se pueden activar al mismo tiempo. ¿Desactivar Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Reemplazar el botón de configuración rápida"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notific."
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Acepto"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "En desacuer."
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "La ubicación del GPS y el uso de los datos de ubicación los controlan las aplicaciones que utiliza"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Consentimiento del usuario"
+
diff --git a/po/et.po b/po/et.po
index 62870bc..13bead2 100755
--- a/po/et.po
+++ b/po/et.po
@@ -85,6 +85,9 @@ msgstr "Modemi kasutamiseks lülitage Wi-Fi välja"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fit ja Mobile AP-d ei saa aktiveerida samaaegselt. Kas desaktiveerida Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Asenda kiirseadistuse nupp"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Teavitus"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Nõustu"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Ei nõustu"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS-asukohta ja teie asukohaandmete kasutamist kontrollib rakendus, mida te kasutate"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Kasutaja nõusolek"
+
diff --git a/po/eu.po b/po/eu.po
index e9caaad..b34233a 100755
--- a/po/eu.po
+++ b/po/eu.po
@@ -85,6 +85,9 @@ msgstr "Itzali Wi-Fia ainguraketa erabiltzeko"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi eta Mobile AP ezin dira aldi berean aktibatu. Desaktibatu Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Pantaila Islatzea"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Ordeztu ezarpen azkarraren botoia"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Jakinaraz."
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Ados"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Ez nago ados"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS kokapena eta zure kokapen datuen erabilera zuk erabiltzen duzun aplikazioak kontrolatzen ditu"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Erabiltzaile baimena"
+
diff --git a/po/fi.po b/po/fi.po
index bf8ee21..707277d 100755
--- a/po/fi.po
+++ b/po/fi.po
@@ -85,6 +85,9 @@ msgstr "Poista Wi-Fi käytöstä yhteyden jakamista varten"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fiä ja mobiilitukiasemaa ei voi ottaa käyttöön samaan aikaan. Haluatko poistaa mobiilitukiaseman käytöstä?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Näytön peilaus"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Vaihda pika-asetuspainike"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Ilmoitus"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Hyväksyn"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Eri mieltä"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Käytettävät sovellukset säätelevät GPS-sijaintia ja sijaintitietojen käyttöä"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Käyttäjän suostumus"
+
diff --git a/po/fr_CA.po b/po/fr_CA.po
index 826d7ea..083ed7e 100755
--- a/po/fr_CA.po
+++ b/po/fr_CA.po
@@ -85,6 +85,9 @@ msgstr "Désactivez le Wifi pour utiliser le modem"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Activation simultanée de wifi et du point d'accès mobile impossible. Désactiver le point d'accès mobile ?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Réplication de l'écran"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Remplacer un bouton de configuration rapide"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notific."
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Accepter"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Refuser"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "La position GPS et l'utilisation des données de votre position sont contrôlées par les applications que vous utilisez"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Accord de l'utilisateur"
+
diff --git a/po/fr_FR.po b/po/fr_FR.po
index 3360dd4..7990fda 100755
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -85,6 +85,9 @@ msgstr "Désactivez le Wi-Fi pour utiliser le modem"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Activation simultanée du Wi-Fi et du point d'accès mobile impossible. Désactiver le point d'accès mobile ?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "AllShare"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Remplacer un bouton de configuration rapide"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notific."
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Accepter"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Refuser"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "La position GPS et l'utilisation des données de votre position sont contrôlées par les applications que vous utilisez"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Accord de l'utilisateur"
+
diff --git a/po/ga.po b/po/ga.po
index 7396563..6304ff2 100755
--- a/po/ga.po
+++ b/po/ga.po
@@ -85,6 +85,9 @@ msgstr "Cas as Wi-Fi le nascaireacht a úsáid"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Ní féidir Wi-Fi agus AP Móibíleach a chur i ngníomh ag an am céanna. Díghníomhachtaigh AP Móibíleach?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Scáthánú Scáileáin"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Ionadaigh cnaipe mear-shocruithe"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Fógra"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Aontaim"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Ní aontaím"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Tá suíomh GPS agus úsáid sonraí do shuímh á rialú ag na feidhmchláir a úsáideann tú"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Toiliú úsáideora"
+
diff --git a/po/gl.po b/po/gl.po
index 6d62dc3..614ff4b 100755
--- a/po/gl.po
+++ b/po/gl.po
@@ -85,6 +85,9 @@ msgstr "Desactiva a Wi-Fi para usar a ancoraxe á rede"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "O Wi-Fi e AP Móbil non poden activarse ao mesmo tempo. Desactivar AP Móbil?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Reflexo da pantalla"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Substitúe o botón de axuste rápido"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notific."
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Acepto"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Non acepto"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "A localización e o uso dos datos da túa localización están controlados polas aplicacións que empregas"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Consentimento de usuario"
+
diff --git a/po/hi.po b/po/hi.po
index b418c57..9605936 100755
--- a/po/hi.po
+++ b/po/hi.po
@@ -85,6 +85,9 @@ msgstr "टेथरिंग का उपयोग करने के लि
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "एक ही समय में Wi-Fi और Mobile AP सक्रिय नहीं कर सकते हैं। Mobile AP निष्क्रिय करें?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "स्क्रीन मिररिंग"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "त्वरित सेटिंग्स बटन बदलें"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "अधिसूचना"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "सहमत"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "असहमती"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS स्थान और आप के स्थान डाटा का उपयोग आप के द्वारा उपयोगित एप्लीकेशंस नियंत्रित करते हैं"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "उपभोक्ता स्वीकृति"
+
diff --git a/po/hr.po b/po/hr.po
index 33f4319..8fde463 100755
--- a/po/hr.po
+++ b/po/hr.po
@@ -85,6 +85,9 @@ msgstr "Isključite Wi-Fi da biste koristili dijeljenje"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Istodobno ne možete uključiti Wi-Fi i Mobile AP. Isključiti Mobilnu pristupnu točku?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Dijeljenje Zaslona"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Zamijeni gumb za brze postavke"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Obavijest"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Prihvaćam"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Ne prihvaćam"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS lokacija i korištenje vaših podataka o lokaciji kontrolira se aplikacijama koje koristite"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Pristanak korisnika"
+
diff --git a/po/hu.po b/po/hu.po
index ae5f1fe..0b2d821 100755
--- a/po/hu.po
+++ b/po/hu.po
@@ -85,6 +85,9 @@ msgstr "Az internetmegosztás használatához kapcsolja ki a Wi-Fi-t"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "A Wi-Fi és a Mobil AP-nem lehet egyszerre aktív. Kikapcsolja a Mobil AP-t?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Képernyőtükrözés"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Gyorsbeállító gomb cseréje"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Értesítés"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Elfogad"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Elutasít"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "A GPS helymeghatározást és a pozícióadatot az Ön által használt alkalmazások vezérlik"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Felhasználói beleegyezés"
+
diff --git a/po/hy.po b/po/hy.po
index fbdab86..c68ba32 100755
--- a/po/hy.po
+++ b/po/hy.po
@@ -85,6 +85,9 @@ msgstr "Անջատեք Wi-Fi-ը՝ տեղակապում օգտագործելու
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi-ն ու Mobile AP-ն չեն կարող միաժամանակ ակտիվացվել: Ապաակտիվացնե՞լ Mobile AP-ն:"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Փոխարինել արագ դրվածքների կոճակը"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Ծանուցում"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Հմձայն եմ"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Առարկել"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS-ի տեղն ու Ձեր տեղի տվյալները վերահսկվում են Ձեր օգտագործած ծրագրերով"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Օգտվողի համաձայնություն"
+
diff --git a/po/is.po b/po/is.po
index 73e11b9..f7d48c7 100755
--- a/po/is.po
+++ b/po/is.po
@@ -85,6 +85,9 @@ msgstr "Slökktu á Wi-Fi til að nota tjóðrun"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Það er ekki hægt að nota Wi-Fi og farsímaaðgangsstað á sama tíma. Viltu loka farsímaaðgangsstaðnum?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Skjáspeglun"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Skipta flýtistillingahnappi út"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Tilkynning"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Samþykkt"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Hafna"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS-staðsetningu og notkun á staðsetningargögnum þínum er stjórnað af þeim forritum sem þú notar"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Samþykki notanda"
+
diff --git a/po/it_IT.po b/po/it_IT.po
index 3d7cfb7..408c0a9 100755
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -65,7 +65,7 @@ msgid "IDS_QP_TAB_MOBILE_DATA"
msgstr "Connessione dati"
msgid "IDS_QP_TAB_DRIVING_MODE"
-msgstr "Modalità alla guida"
+msgstr "Modalità alla Guida"
msgid "IDS_COM_POP_UNABLE_TO_CONNECT_TO_MOBILE_NETWORK_WHILE_FLIGHT_MODE_IS_ENABLED_MSG"
msgstr "Impossibile connettersi alle reti mobili se la modalità Offline è attivata. Connettersi alla rete Wi-Fi o disattivare la modalità Offline e riprovare"
@@ -85,6 +85,9 @@ msgstr "Per utilizzare il tethering, disattivate il Wi-Fi"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Impossibile attivare contemporaneamente sia Wi-Fi che Router Wi-Fi. Disattivare Router Wi-Fi?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Condivisione schermo"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Sostituisce il pulsante di impostazione rapida"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notifica"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Accetto"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Rifiuto"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "La posizione GPS e l'uso dei dati sulla posizione sono controllati dalle applicazioni utilizzate"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Consenso utente"
+
diff --git a/po/ja_JP.po b/po/ja_JP.po
index 51f8a86..b1c3f0b 100755
--- a/po/ja_JP.po
+++ b/po/ja_JP.po
@@ -85,6 +85,9 @@ msgstr "テザリングを使用するには、Wi-FiをOFFにしてください
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-FiとWi-Fiテザリング両方は同時起動できません。Wi-Fiテザリングを無効にしますか?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "クイック設定ボタンを置き換え"
@@ -95,7 +98,7 @@ msgid "IDS_QP_POP_YOU_WILL_NO_LONGER_BE_ABLE_TO_USE_APPLICATIONS_SUCH_AS_INTERNE
msgstr "モバイルネットワークで、ブラウザやEメールなどのアプリケーションが使用できなくなります。続行しますか?"
msgid "IDS_QP_BUTTON2_SCREEN_N_MIRRORING"
-msgstr "画面\nモニター"
+msgstr "Screen\nMirroring"
msgid "IDS_COM_BODY_BUTTON_T_TTS"
msgstr "ボタン"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "通知"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "同意"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "同意しない"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPSからの位置情報取得は、使用するアプリケーションによって管理されます。"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "ユーザー同意"
+
diff --git a/po/ka.po b/po/ka.po
index 35cafbc..b594ea9 100755
--- a/po/ka.po
+++ b/po/ka.po
@@ -85,6 +85,9 @@ msgstr "გამორთეთ Wi-Fi, რომ გამოიყენოთ
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi და Mobile AP ვერ გააქტიურდება ერთიდაიმავე დროს. გამოირთოს Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "პარამეტრების სწრაფი დაყენების ღილაკის გამოცვლა"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "შეტყობინება"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "თანხმობა"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "არ ვეთანხმები"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS ლოკაცია და თქვენი ლოკაციის მონაცემების გამოყენება იმართება თქვენს მიერ გამოყენებული პროგრამების მიერ"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "მომხმარებლის თანხმობა"
+
diff --git a/po/kk.po b/po/kk.po
index 244fd05..755b80a 100755
--- a/po/kk.po
+++ b/po/kk.po
@@ -85,6 +85,9 @@ msgstr "Байланыстыруды пайдалану үшін Wi-Fi өшір
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi және Mobile AP екеуін де бір уақытта іске қосу мүмкін емес. Mobile AP мүмкіндігін өшіру керек пе?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Жылдам параметр түймесін ауыстыру"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Хабарландыру"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Келісемін"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Келіспеу"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS орны және орын деректерін пайдалану қолданыстағы бағдарламалармен бақыланады"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Пайдаланушы келісімі"
+
diff --git a/po/ko_KR.po b/po/ko_KR.po
index 96a9698..a666674 100755
--- a/po/ko_KR.po
+++ b/po/ko_KR.po
@@ -85,6 +85,9 @@ msgstr "테더링을 사용하려면 Wi-Fi를 끄세요"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi와 모바일 AP를 동시에 실행할 수 없습니다. 모바일 AP를 해제할까요?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "빠른 설정 버튼 교체"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "알림"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "동의"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "동의 안 함"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS 위치와 위치 정보 사용은 사용 중인 애플리케이션의 통제를 받습니다"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "사용자 동의"
+
diff --git a/po/lt.po b/po/lt.po
index 029d1c0..ecfc8be 100755
--- a/po/lt.po
+++ b/po/lt.po
@@ -85,6 +85,9 @@ msgstr "Išjunkite „Wi-Fi“, kad galėtumėte naudoti siejimą"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Tuo pat metu negalima suaktyvinti ir „Wi-Fi“, ir „Mobile AP“. Išjungti „Mobile AP“?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Pakeisti greitojo nustatymo mygtuką"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Pranešimas"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Sutikti"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Nesutikti"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Vietos nustatymą naudojant GPS ir jūsų vietos duomenis kontroliuoja jūsų naudojamos programos"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Naudotojo sutikimas"
+
diff --git a/po/lv.po b/po/lv.po
index c04d54f..e050d2b 100755
--- a/po/lv.po
+++ b/po/lv.po
@@ -85,6 +85,9 @@ msgstr "Lai izmantotu piesaisti, izslēdziet Wi-Fi"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Vienlaikus nevar aktivizēt Wi-Fi un Mobile AP. Vai deaktivizēt Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Aizstāt ātro iestatījumu pogu"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Paziņojums"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Piekrist"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Nepiekrītu"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS atrašanās vietu un jūsu atrašanās vietas datu izmantošanu pārvalda jūsu lietotās programmas"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Lietotāja piekrišana"
+
diff --git a/po/mk.po b/po/mk.po
index cb27f2f..6d0c588 100755
--- a/po/mk.po
+++ b/po/mk.po
@@ -85,6 +85,9 @@ msgstr "Исклучете го Wi-Fi за да користите делење"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Не може истовремено да се активни и Wi-Fi и мобилна пристапна точка. Да се исклучи мобилната пристапна точка?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Одразување екран"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Замени копче за брзо поставување"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Извест."
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Добро"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Не се согласувам"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Локацијата GPS и користењето на податоците за вашата локација ги контролираат апликациите што ги користите"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Согласност на корисникот"
+
diff --git a/po/nb.po b/po/nb.po
index c7512ce..bce7d41 100755
--- a/po/nb.po
+++ b/po/nb.po
@@ -85,6 +85,9 @@ msgstr "Slå av Wi-Fi for å bruke Internettdeling"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Både Wi-Fi og mobilt tilgangspunkt kan ikke aktiveres samtidig. Deaktivere mobilt tilgangspunkt?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Bytt ut hurtiginnstillingsknapp"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Varsel"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Godkjenn"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Uenig"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS-plassering og bruk av dine plasseringsdata kontrolleres av programmene du bruker"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Brukertillatelse"
+
diff --git a/po/nl_NL.po b/po/nl_NL.po
index 11e87a4..03688d7 100755
--- a/po/nl_NL.po
+++ b/po/nl_NL.po
@@ -85,6 +85,9 @@ msgstr "Wi-Fi uitschakelen om tethering te gebruiken"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi en mobiel access point kunnen niet tegelijkertijd zijn geactiveerd. Mobiel access point uitschakelen?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Snelle instelknop vervangen"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Melding"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Akkoord"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Niet akkoord"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS-locatie en gebruik van uw locatiegegevens worden geregeld door de gebruikte applicaties"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Toestemming gebruiker"
+
diff --git a/po/pl.po b/po/pl.po
index be4319e..14b9acf 100755
--- a/po/pl.po
+++ b/po/pl.po
@@ -85,6 +85,9 @@ msgstr "Wyłącz sieć Wi-Fi, aby korzystać z routera"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Sieć Wi-Fi i Router Wi-Fi nie mogą być uruchomione jednocześnie. Wyłączyć Router Wi-Fi?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Odbicie lustrzane ekranu"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Zamień przycisk ustawień szybkiego panelu"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Powiadom."
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Akceptuję"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Brak zgody"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Lokalizacja GPS oraz wykorzystanie danych dotyczących Twojej lokalizacji są kontrolowane przez używane aplikacje"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Zgoda użytkownika"
+
diff --git a/po/pt_BR.po b/po/pt_BR.po
index a9260da..2a2be69 100755
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -85,6 +85,9 @@ msgstr "Desligar Wi-Fi para usar compartilhamento de rede"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Impossível utilizar Wi-Fi ou AllShare com o Roteador Wi-Fi simultaneamente. Desativar o Roteador Wi-Fi?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Espelhamento de tela"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Substituir botão de configuração rápida"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notific."
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Concordo"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Discordo"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "A localização GPS e a utilização dos seus dados de localização são controlados pelas aplicações utilizadas"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Consentimento do usuário"
+
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 181ece5..55751cc 100755
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -85,6 +85,9 @@ msgstr "Desligar o Wi-Fi para utilizar a ancoragem"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Impossível activar Wi-Fi e PA Móvel em simultâneo. Desactivar PA Móvel?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Espelhamento do ecrã"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Substituir botão de definição rápida"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notificaç"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Concordo"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Discordo"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "A localização GPS e a utilização dos seus dados de localização são controlados pelas aplicações utilizadas"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Consentimento do utilizador"
+
diff --git a/po/ro.po b/po/ro.po
index f688391..66afbd2 100755
--- a/po/ro.po
+++ b/po/ro.po
@@ -85,6 +85,9 @@ msgstr "Opriţi Wi-Fi pentru a utiliza furnizarea accesului la internet"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi şi PA mobil nu pot fi activate simultan. Dezactivaţi PA mobil?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Oglindire ecran"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Înlocuiţi butonul pentru setare rapidă"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Notificare"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "De acord"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Refuzare"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Locaţia GPS şi utilizarea datelor locaţiei dvs. sunt controlate de aplicaţiile pe care le utilizaţi"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Consimţământ utilizator"
+
diff --git a/po/ru_RU.po b/po/ru_RU.po
index fa6e92a..6f0ab3d 100755
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -85,6 +85,9 @@ msgstr "Отключите Wi-Fi, чтобы использовать модем
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Нельзя активировать одновременно Wi-Fi и Mobile AP. Отключить Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Заменить кнопку быстрых настроек"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Уведомление"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Принять"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Отказаться"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS-данные о местоположении и их применение контролируются используемыми приложениями"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Согласие пользователя"
+
diff --git a/po/sk.po b/po/sk.po
index af9461c..34ce768 100755
--- a/po/sk.po
+++ b/po/sk.po
@@ -85,6 +85,9 @@ msgstr "Pred použitím zdieľania pripojenia vypnite sieť Wi-Fi"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi a mobilný prístupový bod sa nedajú aktivovať súčasne. Deaktivovať mobilný prístupový bod?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Zrkadlenie obrazovky"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Nahradiť tlačidlo rýchleho nastavenia"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Oznámenie"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Súhlasím"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Nesúhlasím"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Polohu GPS a používanie údajov o vašej polohe ovládajú aplikácie, ktoré používate"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Súhlas používateľa"
+
diff --git a/po/sl.po b/po/sl.po
index ea9aae8..c397cbd 100755
--- a/po/sl.po
+++ b/po/sl.po
@@ -85,6 +85,9 @@ msgstr "Izklopite Wi-Fi, če želite uporabljati telefon kot modem"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi in mobilna DT ne moreta biti vklopljeni hkrati. Izklopim mobilno DT?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Zrcaljenje zaslona"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Spremenite gumb za hitre nastavitve"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Obvestilo"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Sprejmem"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Se ne strinjam"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Lokacijo GPS in uporabo vaših podatkov o lokaciji nadzorujejo programi, ki jih uporabljate"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Uporabniško soglasje"
+
diff --git a/po/sr.po b/po/sr.po
index ebe0deb..ed4ae69 100755
--- a/po/sr.po
+++ b/po/sr.po
@@ -85,6 +85,9 @@ msgstr "Isključi Wi-Fi da bi koristio/la vezivanje"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi i mobilna pristupna tačka se ne mogu uključiti istovremeno. Isključi mobilnu pristupnu tačku?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Preslikavanje ekrana"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Zameni dugme za brzo podešavanje"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Obavešt."
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Slažem se"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Ne slažem se"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Korišćene aplikacije kontrolišu GPS lokaciju i korišćenje podataka o lokaciji"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Saglasnost korisnika"
+
diff --git a/po/sv.po b/po/sv.po
index 640ac0e..79ba763 100755
--- a/po/sv.po
+++ b/po/sv.po
@@ -85,6 +85,9 @@ msgstr "Stäng av Wi-Fi för att använda internetdelning"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Det går inte att aktivera både Wi-Fi och Mobile AP samtidigt. Avaktivera Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Ersätt snabbinställningsknappen"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Meddelande"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Godkänn"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Samtycker inte"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS-position och användning av dina positionsdata hanteras av programmet som används"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Användarmedgivande"
+
diff --git a/po/tr_TR.po b/po/tr_TR.po
index b671784..6262ad6 100755
--- a/po/tr_TR.po
+++ b/po/tr_TR.po
@@ -85,6 +85,9 @@ msgstr "Bağlanmayı kullanmak için Wi-Fi'yi kapatın"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Hem Wi-Fi hem de Mobil AP aynı anda etkinleştirilemez. Mobil AP devre dışı bırakılsın mı?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Ekran Yansıtma"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Hızlı ayar düğmesini değiştir"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Bildirim"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Onayla"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Onaylama"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS konumu ve konum verinizin kullanımı kullandığınız uygulamalar tarafından kontrol edilir"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Kullanıcı izni"
+
diff --git a/po/uk.po b/po/uk.po
index 2eed481..777a149 100755
--- a/po/uk.po
+++ b/po/uk.po
@@ -85,6 +85,9 @@ msgstr "Вимкніть Wi-Fi, щоб скористатися прив'язк
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Мережі Wi-Fi та Mobile AP не можна активувати одночасно. Вимкнути Mobile AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Дублювання екрану"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Замінити кнопку установок панелі швидкого доступу"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Сповіщення"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Згоден"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Не погодитися"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "Керування GPS-розташуванням і використанням даних про розташування здійснюється за допомогою програми, яка використовується вами"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Згода користувача"
+
diff --git a/po/uz.po b/po/uz.po
index 80d0dc2..5370e7a 100755
--- a/po/uz.po
+++ b/po/uz.po
@@ -85,6 +85,9 @@ msgstr "Bog‘lanishdan foydalanish uchun Wi-Fini o‘chiring"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Bir vaqtning o‘zida Wi-Fi va Mobile APni faollashtirib bo‘lmaydi. Mobile AP o‘chirilsinmi?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "Tezkor sozlash tugmasini almashtirish"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "Bildir-noma"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "Roziman"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "Rozi emas"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS joylashuvi va Sizning joylashuvingiz ma’lumotidan foydalanish Siz ishlatayotgan ilovalar orqali nazorat qilinadi"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "Foydalanuvchi roziligi"
+
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 8eafc03..c254aec 100755
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -85,6 +85,9 @@ msgstr "关闭 Wi-Fi 以使用网络共享"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi和移动接入无法同时启动。取消移动接入?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "替换快捷设置按钮"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "通知"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "同意"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "不同意"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS位置和您的位置数据的使用由您使用的应用程序来控制"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "用户同意"
+
diff --git a/po/zh_HK.po b/po/zh_HK.po
index 34cbb9c..3b78724 100755
--- a/po/zh_HK.po
+++ b/po/zh_HK.po
@@ -85,6 +85,9 @@ msgstr "關閉 Wi-Fi 以使用網絡共享"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi和Mobile AP不可同時啟動。關閉Mobile AP嗎?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "取代快速設定按鈕"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "通知"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "同意"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "不同意"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS 位置和位置數據的使用由您使用的應用程式控制"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "用戶贊成"
+
diff --git a/po/zh_SG.po b/po/zh_SG.po
index a338114..536080e 100755
--- a/po/zh_SG.po
+++ b/po/zh_SG.po
@@ -85,6 +85,9 @@ msgstr "关闭 Wi-Fi 以使用网络共享"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi-Fi和移动AP无法同时启动。取消移动AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "屏幕镜像"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "替换快捷设置按钮"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "通知"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "同意"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "不同意"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS位置和您的位置数据的使用由使用的应用程序来控制"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "用户同意"
+
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 1a67e2e..4f50dfa 100755
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -85,6 +85,9 @@ msgstr "關閉 Wi-Fi 以使用網路共享"
msgid "IDS_WIFI_POP_BOTH_WI_FI_AND_MOBILE_AP_CANNOT_BE_ACTIVATED_AT_THE_SAME_TIME_DEACTIVATE_MOBILE_AP_Q"
msgstr "Wi - Fi和行動AP不能在同一時間被啟動。停用行動AP?"
+msgid "IDS_ASCAST_HEADER_SCREEN_MIRRORING"
+msgstr "Screen Mirroring"
+
msgid "IDS_QP_HEADER_REPLACE_QUICK_SETTING_BUTTON"
msgstr "取代快速設定按鈕"
@@ -106,3 +109,15 @@ msgstr "GPS"
msgid "IDS_QP_BUTTON_NOTIFICATION"
msgstr "通知"
+msgid "IDS_COM_BUTTON_AGREE"
+msgstr "同意"
+
+msgid "IDS_COM_BUTTON_DISAGREE"
+msgstr "不同意"
+
+msgid "IDS_ST_BODY_GPS_LOCATION_USE_CONTROLLED_BY_APPLICATIONS_MSG"
+msgstr "GPS定位和你的位置資料將被你的用應程式使用"
+
+msgid "IDS_ST_HEADER_USER_CONSENT"
+msgstr "用戶同意"
+