TSAM-6054 Call log does not change time format immediately 73/78673/1 submit/tizen/20160706.131809
authorEugene Kurzberg <i.kurtsberg@samsung.com>
Wed, 6 Jul 2016 11:13:01 +0000 (14:13 +0300)
committerEugene Kurzberg <i.kurtsberg@samsung.com>
Wed, 6 Jul 2016 11:13:01 +0000 (14:13 +0300)
Change-Id: I05dcf6a2704012102483e719223d617e919b040d
Signed-off-by: Eugene Kurzberg <i.kurtsberg@samsung.com>
lib-logs/inc/Logs/Details/DetailsView.h
lib-logs/inc/Logs/Details/LogDetailItem.h
lib-logs/src/Logs/Details/DetailsView.cpp
lib-logs/src/Logs/Details/LogDetailItem.cpp
lib-logs/src/Logs/List/LogsView.cpp

index 9431e53..aa2b104 100644 (file)
@@ -22,6 +22,8 @@
 #include "Ux/SelectView.h"
 #include "Logs/Model/NumberLogProvider.h"
 
+#include <system_settings.h>
+
 namespace Ui
 {
        class Genlist;
@@ -56,6 +58,7 @@ namespace Logs
                         * @param[in]   number   Number
                         */
                        explicit DetailsView(const char *number);
+                       virtual ~DetailsView() override;
 
                private:
                        virtual Evas_Object *onCreate(Evas_Object *parent) override;
@@ -79,6 +82,7 @@ namespace Logs
                        bool onSelected(Ux::SelectResults results);
                        bool onCanceled();
 
+                       void onTimeFormatChanged(system_settings_key_e key);
                        void onLogGroupInserted(Model::LogGroup *group);
                        void onGroupChanged(Model::LogGroup *group, List::LogGroupItem *groupItem, int type);
                        void onLogAdded(Model::Log *log);
index b6fd78f..e536c5b 100644 (file)
@@ -20,6 +20,8 @@
 
 #include "Ux/SelectItem.h"
 
+#define PART_LOG_TIME "elm.text"
+
 namespace Logs
 {
        namespace Model
index 751b8d4..f3b3261 100644 (file)
 #include "Common/Strings.h"
 
 #include "App/Path.h"
+#include "System/Settings.h"
 #include "Ui/Genlist.h"
 #include "Ui/Menu.h"
+#include "Utils/Callback.h"
 
 #include <algorithm>
 
@@ -35,6 +37,7 @@ using namespace Logs::Details;
 using namespace Logs::List;
 
 using namespace Ux;
+using namespace System;
 using namespace std::placeholders;
 
 DetailsView::DetailsView(const char *number)
@@ -52,6 +55,19 @@ DetailsView::DetailsView(const char *number)
 
        setSelectCallback(std::bind(&DetailsView::onSelected, this, _1));
        setCancelCallback(std::bind(&DetailsView::onCanceled, this));
+
+       Settings::addCallback(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR,
+                       { makeCallback(&DetailsView::onTimeFormatChanged), this });
+       Settings::addCallback(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY,
+                       { makeCallback(&DetailsView::onTimeFormatChanged), this });
+}
+
+DetailsView::~DetailsView()
+{
+       Settings::removeCallback(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR,
+                       { makeCallback(&DetailsView::onTimeFormatChanged), this });
+       Settings::removeCallback(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY,
+                       { makeCallback(&DetailsView::onTimeFormatChanged), this });
 }
 
 Evas_Object *DetailsView::onCreate(Evas_Object *parent)
@@ -206,6 +222,11 @@ bool DetailsView::onCanceled()
        return false;
 }
 
+void DetailsView::onTimeFormatChanged(system_settings_key_e key)
+{
+       m_Genlist->update(PART_LOG_TIME, ELM_GENLIST_ITEM_FIELD_TEXT);
+}
+
 void DetailsView::onLogGroupInserted(LogGroup *group)
 {
        if (m_Genlist) {
index e3e3bc3..e6ce20d 100644 (file)
@@ -28,9 +28,7 @@
 #define BUFFER_SIZE             64
 #define LOG_TYPE_SIZE           45
 
-#define PART_LOG_TIME           "elm.text"
 #define PART_LOG_TYPE           "elm.text.sub"
-
 #define PART_LOG_TYPE_ICON      "elm.swallow.icon"
 #define PART_CHECK              "elm.swallow.end"
 
index 9017f3f..a701970 100644 (file)
@@ -20,6 +20,7 @@
 #include "Logs/List/LogItem.h"
 #include "Common/Strings.h"
 
+#include "System/Settings.h"
 #include "Ui/Genlist.h"
 #include "Ui/Menu.h"
 #include "Ui/Navigator.h"
@@ -34,6 +35,7 @@
 #define PHONE_APPID "org.tizen.phone"
 
 using namespace Ux;
+using namespace System;
 using namespace Logs::Model;
 using namespace Logs::List;
 using namespace std::placeholders;
@@ -46,16 +48,22 @@ LogsView::LogsView(FilterType filterType)
        strings.titleDefault = "IDS_LOGS_ITAB3_LOGS";
        setStrings(strings);
 
-       system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, makeCallbackWithLastParam(&LogsView::onSettingsChanged), this);
-       system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, makeCallbackWithLastParam(&LogsView::onSettingsChanged), this);
-       system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED, makeCallbackWithLastParam(&LogsView::onSettingsChanged), this);
+       Settings::addCallback(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR,
+                       { makeCallback(&LogsView::onSettingsChanged), this });
+       Settings::addCallback(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY,
+                       { makeCallback(&LogsView::onSettingsChanged), this });
+       Settings::addCallback(SYSTEM_SETTINGS_KEY_TIME_CHANGED,
+                       { makeCallback(&LogsView::onSettingsChanged), this });
 }
 
 LogsView::~LogsView()
 {
-       system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR);
-       system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY);
-       system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED);
+       Settings::removeCallback(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR,
+                       { makeCallback(&LogsView::onSettingsChanged), this });
+       Settings::removeCallback(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY,
+                       { makeCallback(&LogsView::onSettingsChanged), this });
+       Settings::removeCallback(SYSTEM_SETTINGS_KEY_TIME_CHANGED,
+                       { makeCallback(&LogsView::onSettingsChanged), this });
 }
 
 Evas_Object *LogsView::onCreate(Evas_Object *parent)