Modify TimeZoneChangedEvent implementation 43/304843/2
authorHwankyu Jhun <h.jhun@samsung.com>
Wed, 24 Jan 2024 08:02:25 +0000 (17:02 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Wed, 24 Jan 2024 08:50:43 +0000 (17:50 +0900)
The vconf event of time zone changed is registered when the AppCoreBase::Init()
is called. The tzset() should be called when the time zone is changed.

Change-Id: Icc6a5fda4e92c11dbecda089179c5a590588e235
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
tizen-cpp/app-core-cpp/app_core_base.cc

index aa55b1d..a5251b4 100644 (file)
@@ -36,6 +36,7 @@
 #include <sys/time.h>
 #include <sys/types.h>
 #include <system_info.h>
+#include <time.h>
 #include <ttrace.h>
 #include <unistd.h>
 #include <vconf.h>
@@ -575,6 +576,8 @@ void AppCoreBase::Impl::SetDefaultEvents() {
   }
 
   vconf_notify_key_changed(VCONFKEY_SYSMAN_LOW_MEMORY, LowMemoryCb, parent_);
+  vconf_notify_key_changed(VCONFKEY_SETAPPL_TIMEZONE_ID, OnTimeZoneChangedCb,
+      parent_);
 }
 
 void AppCoreBase::Impl::UnsetDefaultEvents() {
@@ -584,6 +587,7 @@ void AppCoreBase::Impl::UnsetDefaultEvents() {
     vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, RegionChangeCb);
 
   vconf_ignore_key_changed(VCONFKEY_SYSMAN_LOW_MEMORY, LowMemoryCb);
+  vconf_ignore_key_changed(VCONFKEY_SETAPPL_TIMEZONE_ID, OnTimeZoneChangedCb);
 }
 
 int AppCoreBase::OnReceive(aul_type type, tizen_base::Bundle b) {
@@ -757,6 +761,7 @@ void AppCoreBase::Impl::OnLowBatteryCb(keynode_t* key, void* data) {
 }
 
 void AppCoreBase::Impl::OnTimeZoneChangedCb(keynode_t* key, void* data) {
+  tzset();
   char* time_zone_id = vconf_keynode_get_str(key);
   if (time_zone_id == nullptr) {
     return;
@@ -812,10 +817,6 @@ int AppCoreBase::OnSetEvent(IEvent::Type event) {
     break;
   case IEvent::Type::SUSPENDED_STATE_CHANGE:
     break;
-  case IEvent::Type::TIME_ZONE_CHANGED:
-    vconf_notify_key_changed(VCONFKEY_SETAPPL_TIMEZONE_ID,
-        impl_->OnTimeZoneChangedCb, this);
-    break;
   default:
     break;
   }