Make granularity feature optional 26/305826/2 accepted/tizen/7.0/unified/20240219.160842
authorLukasz Oleksak <l.oleksak@samsung.com>
Wed, 7 Feb 2024 15:20:45 +0000 (16:20 +0100)
committerLukasz Oleksak <l.oleksak@samsung.com>
Thu, 15 Feb 2024 11:41:56 +0000 (12:41 +0100)
Change-Id: If358afacbdc427440201c3316503ccfae6749fa2
(cherry picked from commit 736656042decb72d49a708b6041ed679fc2d9c67)

include/screen_reader_vconf.h
src/granularity_read.c
src/main.c
src/screen_reader.c
src/screen_reader_vconf.c

index 8716c6cac777c5712d36934188103f2ecae975bc..1b2db3f1b985432efcd03d699321790d0e500d6a 100644 (file)
@@ -31,6 +31,7 @@ void vc_exit(void);
 
 bool vc_get_read_description(void);
 bool vc_get_read_list_grid_information(void);
+bool vc_get_granularity_enabled(void);
 bool vc_get_haptic(void);
 bool vc_get_keyboard_feedback(void);
 bool vc_get_sound_feedback(void);
index 959845022a3a55931a5f88c6b39ccf811f9dadba..22b0354e03e218272ee849a7c1af98040f778269 100644 (file)
 #include <logger.h>
 #include <reading_composer.h>
 #include <screen_reader_tts.h>
+#include <screen_reader_vconf.h>
 #include <smart_notification.h>
 #include <utils.h>
 
-Ecore_Timer *granularity_read_popup_timer;
+static Ecore_Timer *granularity_read_popup_timer;
 
 const char granularity_read_type_text[GRANULARITY_READ_TYPE_COUNT][15] = { "CHARACTER", "WORD", "PARAGRAPH" };
 
@@ -171,6 +172,13 @@ void granularity_read_ui_popup_show()
 
 Granularity_Read_Data *granularity_read_data_get()
 {
+       if (vc_get_granularity_enabled() && !granularity_read_data) {
+               DEBUG("Granularity lazy initialization");
+               granularity_read_init();
+       } else if (!vc_get_granularity_enabled() && granularity_read_data) {
+               DEBUG("Granularity lazy termination");
+               granularity_read_terminate();
+       }
        return granularity_read_data;
 }
 
index 52db0f685e214ecf21376dccd0ea67dc623306da..9900505ca065a118146f9505abbc55309370b7c7 100644 (file)
@@ -61,7 +61,6 @@ static int app_create(void *data)
        sd->system_data = system_notifications_init();
        navigator_set_read_quickpanel_cb(sd->navigator_data, system_status_get, sd->system_data, NULL);
 
-       granularity_read_init();
        DEBUG("Enable IsEnabled property");
        is_enabled_switch_set(EINA_TRUE);
 #endif
@@ -82,7 +81,7 @@ static int app_terminate(void *data)
 #ifndef SCREEN_READER_TV
        DEBUG("clear IsEnabled property");
        is_enabled_switch_set(EINA_FALSE);
-       DEBUG("Granularity terminating");
+       DEBUG("terminate granularity");
        granularity_read_terminate();
        DEBUG("terminate system_notifications");
        navigator_set_read_quickpanel_cb(sd->navigator_data, NULL, NULL, NULL);
index 4eb9590628e777f5a8574d094d8762a8b3e7710b..bcf46fd3de1ecaa8fda19672ae2c783d5db0844c 100644 (file)
@@ -73,7 +73,7 @@ int screen_reader_terminate_service(Service_Data *service_data)
 
 void screen_reader_ui_launch(const char *type_name)
 {
-       LOGD("Launching screen reader highlight");
+       LOGD("Launching screen reader UI");
 
        bundle *kb = NULL;
        kb = bundle_create();
@@ -90,16 +90,16 @@ void screen_reader_ui_launch(const char *type_name)
 
        pid = appsvc_run_service(kb, 0, NULL, NULL);
        if (pid > 0)
-               LOGD("Screen reader launched with pid: %i", pid);
+               LOGD("Screen reader UI launched with pid: %i", pid);
        else
-               LOGD("Can't start screen-reader - error code: %i", pid);
+               LOGD("Can't start screen-reader UI - error code: %i", pid);
 
        bundle_free(kb);
 }
 
 void screen_reader_ui_terminate(void)
 {
-       LOGD("Terminating screen reader");
+       LOGD("Terminating screen reader UI");
        int ret;
        int ret_aul;
        if (pid <= 0) return;
index 341a0c50b27582739ed1b2d977f3765742368f26..4f99a11b5d8c094f71bd74b50c4c1db548272da1 100644 (file)
@@ -27,6 +27,7 @@
 
 #define VCKEY_DESCRIPTION           "db/setting/accessibility/screen_reader/description"
 #define VCKEY_LIST_GRID_INFORMATION "db/setting/accessibility/screen_reader/list_grid_information"
+#define VCKEY_GRANULARITY           "db/setting/accessibility/screen_reader/granularity"
 #define VCKEY_HAPTIC                "db/setting/accessibility/screen_reader/haptic"
 #define VCKEY_KEYBOARD_FEEDBACK     "db/setting/accessibility/screen_reader/keyboard_feedback"
 #define VCKEY_SOUND_FEEDBACK        "db/setting/accessibility/screen_reader/sound_feedback"
@@ -38,6 +39,7 @@ typedef struct {
        bool init;
        bool read_description;
        bool read_list_grid_information;
+       bool granularity_enabled;
        bool haptic;
        bool keyboard_feedback;
        bool sound_feedback;
@@ -214,6 +216,7 @@ static VConfData *vc_get_instance(void)
        vconf_data.init = true;
        vconf_data.read_description = vcwrap_get_key_bool(VCKEY_DESCRIPTION, true);
        vconf_data.read_list_grid_information = vcwrap_get_key_bool(VCKEY_LIST_GRID_INFORMATION, true);
+       vconf_data.granularity_enabled = vcwrap_get_key_bool(VCKEY_GRANULARITY, true);
        vconf_data.haptic = vcwrap_get_key_bool(VCKEY_HAPTIC, true);
        vconf_data.keyboard_feedback = vcwrap_get_key_bool(VCKEY_KEYBOARD_FEEDBACK, true);
        vconf_data.sound_feedback = vcwrap_get_key_bool(VCKEY_SOUND_FEEDBACK, true);
@@ -228,6 +231,7 @@ static VConfData *vc_get_instance(void)
 
        vcwrap_set_field_updater_bool(VCKEY_DESCRIPTION, &(vconf_data.read_description));
        vcwrap_set_field_updater_bool(VCKEY_LIST_GRID_INFORMATION, &(vconf_data.read_list_grid_information));
+       vcwrap_set_field_updater_bool(VCKEY_GRANULARITY, &(vconf_data.granularity_enabled));
        vcwrap_set_field_updater_bool(VCKEY_HAPTIC, &(vconf_data.haptic));
        vcwrap_set_field_updater_bool(VCKEY_KEYBOARD_FEEDBACK, &(vconf_data.keyboard_feedback));
        vcwrap_set_field_updater_bool(VCKEY_SOUND_FEEDBACK, &(vconf_data.sound_feedback));
@@ -254,6 +258,7 @@ void vc_exit(void)
 
        vcwrap_unset_field_updater_bool(VCKEY_KEYBOARD_FEEDBACK);
        vcwrap_unset_field_updater_bool(VCKEY_HAPTIC);
+       vcwrap_unset_field_updater_bool(VCKEY_GRANULARITY);
        vcwrap_unset_field_updater_bool(VCKEY_DESCRIPTION);
        vcwrap_unset_field_updater_bool(VCKEY_LIST_GRID_INFORMATION);
        vcwrap_unset_field_updater_bool(VCKEY_SOUND_FEEDBACK);
@@ -280,6 +285,11 @@ bool vc_get_haptic(void)
        return vc_get_instance()->haptic;
 }
 
+bool vc_get_granularity_enabled(void)
+{
+       return vc_get_instance()->granularity_enabled;
+}
+
 bool vc_get_keyboard_feedback(void)
 {
        return vc_get_instance()->keyboard_feedback;