From cea0f6c236c7236d11c3768cd6788621d72821ea Mon Sep 17 00:00:00 2001
From: Jiban Prakash
Date: Thu, 13 Dec 2012 11:16:55 +0530
Subject: [PATCH] Notification Manager refactoring code changes
Change-Id: Ie0ac56539eac23300145ff60c4c8caedaebf6817
Signed-off-by: Jiban Prakash
---
src/core/FShell_NotificationManagerImpl.cpp | 188 +++++++++++----------
src/core/FShell_NotificationRequestImpl.cpp | 2 +-
.../FShell_NotificationManagerEventParamTraits.h | 11 +-
.../FShell_NotificationManagerIpcMessages.h | 0
.../FShell_NotificationManagerProxy.h | 0
src/{core => inc}/FShell_NotificationRequestImpl.h | 0
6 files changed, 107 insertions(+), 94 deletions(-)
rename src/{core => inc}/FShell_NotificationManagerEventParamTraits.h (97%)
rename src/{core => inc}/FShell_NotificationManagerIpcMessages.h (100%)
rename src/{core => inc}/FShell_NotificationManagerProxy.h (100%)
rename src/{core => inc}/FShell_NotificationRequestImpl.h (100%)
diff --git a/src/core/FShell_NotificationManagerImpl.cpp b/src/core/FShell_NotificationManagerImpl.cpp
index 3ebf9d2..96cf197 100644
--- a/src/core/FShell_NotificationManagerImpl.cpp
+++ b/src/core/FShell_NotificationManagerImpl.cpp
@@ -47,6 +47,7 @@ using namespace Tizen::App;
using namespace Tizen::Shell;
extern "C" int service_create_request(bundle *data, service_h *service);
+extern "C" int service_to_bundle(service_h service, bundle** data);
namespace
{
@@ -56,17 +57,17 @@ ConvertNotificationResult(int error)
{
switch (error)
{
- case UI_NOTIFICATION_ERROR_NONE:
+ case NOTIFICATION_ERROR_NONE:
return E_SUCCESS;
- case UI_NOTIFICATION_ERROR_INVALID_PARAMETER:
+ case NOTIFICATION_ERROR_INVALID_DATA:
return E_INVALID_ARG;
- case UI_NOTIFICATION_ERROR_OUT_OF_MEMORY:
+ case NOTIFICATION_ERROR_NO_MEMORY:
return E_OUT_OF_MEMORY;
- case UI_NOTIFICATION_ERROR_DB_FAILED:
+ case NOTIFICATION_ERROR_FROM_DB:
return E_DATABASE;
- case UI_NOTIFICATION_ERROR_NO_SUCH_FILE:
+ case NOTIFICATION_ERROR_ALREADY_EXIST_ID:
return E_OPERATION_FAILED;
- case UI_NOTIFICATION_ERROR_INVALID_STATE:
+ case NOTIFICATION_ERROR_NOT_EXIST_ID:
return E_OPERATION_FAILED;
default:
return E_OPERATION_FAILED;
@@ -81,22 +82,6 @@ GetMessageLength()
return length;
}
-ui_notification_progress_type_e
-ConvertToNotificationProgressType(int progressType)
-{
- switch (progressType)
- {
- case ONGOING_ACTIVITY_TYPE_TEXT:
- return UI_NOTIFICATION_PROGRESS_TYPE_PERCENTAGE;
- case ONGOING_ACTIVITY_TYPE_PROGRESS_BYTE:
- return UI_NOTIFICATION_PROGRESS_TYPE_SIZE;
- case ONGOING_ACTIVITY_TYPE_PROGRESS_PERCENTAGE:
- return UI_NOTIFICATION_PROGRESS_TYPE_PERCENTAGE;
- default:
- return UI_NOTIFICATION_PROGRESS_TYPE_PERCENTAGE;
- }
-}
-
bool
IsPosted(ui_notification_h handle)
{
@@ -198,10 +183,13 @@ _NotificationManagerImpl::NotifyImpl(const String& messageText, int badgeNumber,
bool isOngoing) const
{
result r = E_SUCCESS;
- int retcode = 0;
char* pMsg = null;
- ui_notification_h core = NULL;
+ notification_h core = NULL;
char* pkgname = NULL;
+ bundle* pKb = NULL;
+ bundle* service_data = NULL;
+ service_h svc = NULL;
+ _AppArg arg;
if (!messageText.IsEmpty())
{
@@ -209,17 +197,19 @@ _NotificationManagerImpl::NotifyImpl(const String& messageText, int badgeNumber,
messageText.GetLength() <= GetMessageLength(), E_INVALID_ARG,
"MessageText is greater than MAX_NOTIFICATION_MESSAGE_LENGTH.");
- retcode = ui_notification_create(isOngoing, &core);
- SysTryReturnResult(NID_APP, retcode == UI_NOTIFICATION_ERROR_NONE, E_OPERATION_FAILED, "Notification creation error : 0x%x.", retcode);
+ if (isOngoing)
+ {
+ core = notification_new(NOTIFICATION_TYPE_ONGOING, NOTIFICATION_GROUP_ID_DEFAULT, NOTIFICATION_PRIV_ID_NONE);
+ SysTryReturnResult(NID_APP, core!= NULL , E_SYSTEM, "Notification creation failed ");
+ }
+ else
+ {
+ core = notification_new(NOTIFICATION_TYPE_NOTI, NOTIFICATION_GROUP_ID_DEFAULT, NOTIFICATION_PRIV_ID_NONE);
+ SysTryReturnResult(NID_APP, core!= NULL , E_SYSTEM, "Notification creation failed ");
+ }
pMsg = _StringConverter::CopyToCharArrayN(messageText);
-
- int ret = ui_notification_set_content(core, pMsg);
- SysTryLog(NID_APP, ret == UI_NOTIFICATION_ERROR_NONE, "Setting notification content failure : %d.", ret);
-
- bundle* pKb = NULL;
- service_h svc = NULL;
- _AppArg arg;
+ notification_set_text(core, NOTIFICATION_TEXT_TYPE_CONTENT, pMsg, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
app_get_package(&pkgname);
SysTryCatch(NID_APP, pkgname != NULL, r = E_OBJ_NOT_FOUND, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND] Cannot acquire package name for current application.");
@@ -230,12 +220,15 @@ _NotificationManagerImpl::NotifyImpl(const String& messageText, int badgeNumber,
pKb = arg.GetBundle();
service_create_request(pKb, &svc);
service_set_package(svc, pkgname);
- ui_notification_set_service(core, svc);
-
- SysLog(NID_APP, "Sending notification[%ls] for package %s.", messageText.GetPointer(), pkgname);
-
- r = ConvertNotificationResult(ui_notification_post(core));
-
+
+ if (service_to_bundle(svc, &service_data) == SERVICE_ERROR_NONE)
+ {
+ notification_set_property(core, 0);
+ notification_set_execute_option(core, NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH, NULL, NULL, service_data);
+ SysLog(NID_APP, "Sending notification[%ls] for package %s.", messageText.GetPointer(), pkgname);
+ }
+
+ r = ConvertNotificationResult(notification_insert(core, NULL));
SysTryLog(NID_APP, !IsFailed(r), "[%s] Notification post failure.", GetErrorMessage(r));
}
@@ -254,7 +247,7 @@ CATCH:
if (core)
{
- ui_notification_destroy(core);
+ notification_free(core);
}
return r;
@@ -266,12 +259,15 @@ _NotificationManagerImpl::NotifyImpl(const AppId& appId, const String& messageTe
bool isOngoing) const
{
result r = E_SUCCESS;
- int retcode = 0;
char* pMsg = null;
char* pIcon = NULL;
char* pName = NULL;
- ui_notification_h core = NULL;
+ notification_h core = NULL;
char buffer[256];
+ bundle* pKb = NULL;
+ bundle* service_data = NULL;
+ service_h svc = NULL;
+ _AppArg arg;
memset(buffer, 0, 256);
@@ -279,31 +275,33 @@ _NotificationManagerImpl::NotifyImpl(const AppId& appId, const String& messageTe
SysTryReturnResult(NID_APP, b == true, E_APP_NOT_INSTALLED, "The application %ls is not installed", appId.GetPointer());
- if (!isOngoing || !messageText.IsEmpty())
+ if (isOngoing || !messageText.IsEmpty())
{
SysTryReturnResult(NID_APP,
messageText.GetLength() <= GetMessageLength(), E_INVALID_ARG,
"MessageText is greater than MAX_NOTIFICATION_MESSAGE_LENGTH.");
- retcode = ui_notification_create(isOngoing, &core);
- SysTryReturnResult(NID_APP, retcode == UI_NOTIFICATION_ERROR_NONE, E_OPERATION_FAILED, "Notification creation error : 0x%x.", retcode);
+ if (isOngoing)
+ {
+ core = notification_new(NOTIFICATION_TYPE_ONGOING, NOTIFICATION_GROUP_ID_DEFAULT, NOTIFICATION_PRIV_ID_NONE);
+ SysTryReturnResult(NID_APP, core!= NULL , E_SYSTEM, "Notification creation failed ");
+ }
+ else
+ {
+ core = notification_new(NOTIFICATION_TYPE_NOTI, NOTIFICATION_GROUP_ID_DEFAULT, NOTIFICATION_PRIV_ID_NONE);
+ SysTryReturnResult(NID_APP, core!= NULL , E_SYSTEM, "Notification creation failed ");
+ }
pMsg = _StringConverter::CopyToCharArrayN(messageText);
-
- int ret = ui_notification_set_content(core, pMsg);
- SysTryLog(NID_APP, ret == UI_NOTIFICATION_ERROR_NONE, "Setting notification content failure : %d.", ret);
-
- bundle* pKb = NULL;
- service_h svc = NULL;
- _AppArg arg;
+ notification_set_text(core, NOTIFICATION_TEXT_TYPE_CONTENT, pMsg, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
snprintf(buffer, 256, "%ls", appId.GetPointer());
app_manager_get_app_icon_path(buffer, &pIcon);
- ui_notification_set_icon(core, pIcon);
+ notification_set_image(core, NOTIFICATION_IMAGE_TYPE_ICON, pIcon);
app_manager_get_app_name(buffer, &pName);
- ui_notification_set_title(core, pName);
+ notification_set_text(core, NOTIFICATION_TEXT_TYPE_TITLE, pName, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
r = arg.Construct(launchArguments);
SysTryCatch(NID_APP, !IsFailed(r), , r, "[%s] Propagating.", GetErrorMessage(r));
@@ -311,12 +309,15 @@ _NotificationManagerImpl::NotifyImpl(const AppId& appId, const String& messageTe
pKb = arg.GetBundle();
service_create_request(pKb, &svc);
service_set_app_id(svc, buffer);
- ui_notification_set_service(core, svc);
-
- SysLog(NID_APP, "Sending notification[%ls] for package %s.", messageText.GetPointer(), buffer);
-
- r = ConvertNotificationResult(ui_notification_post(core));
-
+
+ if (service_to_bundle(svc, &service_data) == SERVICE_ERROR_NONE)
+ {
+ notification_set_property(core, 0);
+ notification_set_execute_option(core, NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH, NULL, NULL, service_data);
+ SysLog(NID_APP, "Sending notification[%ls] for package %s.", messageText.GetPointer(), buffer);
+ }
+
+ r = ConvertNotificationResult(notification_insert(core,NULL));
SysTryLog(NID_APP, !IsFailed(r), "[%s] Notification post failure.", GetErrorMessage(r));
}
@@ -331,7 +332,7 @@ CATCH:
if (core)
{
- ui_notification_destroy(core);
+ notification_free(core);
}
if (pIcon)
@@ -352,13 +353,16 @@ result
_NotificationManagerImpl::NotifyMessageImpl(const NotificationRequest& notiMessage, bool isOngoing)
{
result r = E_SUCCESS;
- int retcode = 0;
int progress = -1;
- ui_notification_h core = NULL;
+ notification_h core = NULL;
char* pkgname = NULL;
char* pTitleText = NULL;
char* pIconPath = NULL;
char* pSoundPath = NULL;
+ bundle* pKb = NULL;
+ bundle* service_data = NULL;
+ service_h svc = NULL;
+ _AppArg arg;
const String& messageText = notiMessage.GetAlertText();
const String& launchArguments = notiMessage.GetAppMessage();
@@ -374,39 +378,42 @@ _NotificationManagerImpl::NotifyMessageImpl(const NotificationRequest& notiMessa
messageText.GetLength() <= GetMessageLength(), E_INVALID_ARG,
"MessageText is greater than MAX_NOTIFICATION_MESSAGE_LENGTH.");
- retcode = ui_notification_create(isOngoing, &core);
- SysTryReturnResult(NID_APP, retcode == UI_NOTIFICATION_ERROR_NONE, E_OPERATION_FAILED, "Notification creation error : 0x%x.", retcode);
+ if (isOngoing)
+ {
+ core = notification_new(NOTIFICATION_TYPE_ONGOING, NOTIFICATION_GROUP_ID_DEFAULT, NOTIFICATION_PRIV_ID_NONE);
+ SysTryReturnResult(NID_APP, core!= NULL , E_SYSTEM, "Notification creation failed ");
+ }
+ else
+ {
+ core = notification_new(NOTIFICATION_TYPE_NOTI, NOTIFICATION_GROUP_ID_DEFAULT, NOTIFICATION_PRIV_ID_NONE);
+ SysTryReturnResult(NID_APP, core!= NULL , E_SYSTEM, "Notification creation failed ");
+ }
std::unique_ptr pMsg(_StringConverter::CopyToCharArrayN(messageText));
if (pMsg)
{
- int ret = ui_notification_set_content(core, pMsg.get());
- SysTryLog(NID_APP, ret == UI_NOTIFICATION_ERROR_NONE, "Setting notification content failure : %d.", ret);
+ notification_set_text(core, NOTIFICATION_TEXT_TYPE_CONTENT, pMsg.get(), NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
}
if (!titleText.IsEmpty())
{
pTitleText = _StringConverter::CopyToCharArrayN(titleText);
- ui_notification_set_title(core, pTitleText);
+ notification_set_text(core, NOTIFICATION_TEXT_TYPE_TITLE, pTitleText, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
}
if (!iconPath.IsEmpty())
{
pIconPath = _StringConverter::CopyToCharArrayN(iconPath);
- ui_notification_set_icon(core, pIconPath);
+ notification_set_image(core, NOTIFICATION_IMAGE_TYPE_ICON, pIconPath);
}
if (!soundPath.IsEmpty())
{
pSoundPath = _StringConverter::CopyToCharArrayN(soundPath);
- ui_notification_set_sound(core, pSoundPath);
+ notification_set_sound(core, NOTIFICATION_SOUND_TYPE_USER_DATA, pSoundPath);
}
- bundle* pKb = NULL;
- service_h svc = NULL;
- _AppArg arg;
-
app_get_id(&pkgname);
SysTryCatch(NID_APP, pkgname != NULL, r = E_OBJ_NOT_FOUND, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND] Cannot acquire package name for current application.");
@@ -417,8 +424,12 @@ _NotificationManagerImpl::NotifyMessageImpl(const NotificationRequest& notiMessa
service_create_request(pKb, &svc);
service_set_app_id(svc, pkgname);
- ui_notification_set_service(core, svc);
- SysLog(NID_APP, "Sending notification[%ls] for package %s.", messageText.GetPointer(), pkgname);
+ if (service_to_bundle(svc, &service_data) == SERVICE_ERROR_NONE)
+ {
+ notification_set_property(core, 0);
+ notification_set_execute_option(core, NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH, NULL, NULL, service_data);
+ SysLog(NID_APP, "Sending notification[%ls] for package %s.", messageText.GetPointer(), pkgname);
+ }
if (isOngoing)
{
@@ -427,21 +438,20 @@ _NotificationManagerImpl::NotifyMessageImpl(const NotificationRequest& notiMessa
switch (activityType)
{
case ONGOING_ACTIVITY_TYPE_PROGRESS_PERCENTAGE:
- if (!IsPosted(core))
- {
- ui_notification_post(core);
- }
- r = ConvertNotificationResult(ui_notification_update_progress(core, ConvertToNotificationProgressType(activityType), progress/100.));
+ r = ConvertNotificationResult(notification_insert(core,NULL));
+ SysTryLog(NID_APP, !IsFailed(r), "[%s] Notification post failure.", GetErrorMessage(r));
+ r = ConvertNotificationResult(notification_update_progress(core, NOTIFICATION_PRIV_ID_NONE, progress/100.));
+ SysTryLog(NID_APP, !IsFailed(r), "[%s] Notification update failure.", GetErrorMessage(r));
break;
case ONGOING_ACTIVITY_TYPE_PROGRESS_BYTE:
- if (!IsPosted(core))
- {
- ui_notification_post(core);
- }
- r = ConvertNotificationResult(ui_notification_update_progress(core, ConvertToNotificationProgressType(activityType), progress));
+ r = ConvertNotificationResult(notification_insert(core,NULL));
+ SysTryLog(NID_APP, !IsFailed(r), "[%s] Notification post failure.", GetErrorMessage(r));
+ r = ConvertNotificationResult(notification_update_size(core, NOTIFICATION_PRIV_ID_NONE, progress));
+ SysTryLog(NID_APP, !IsFailed(r), "[%s] Notification update failure.", GetErrorMessage(r));
break;
case ONGOING_ACTIVITY_TYPE_TEXT:
- r = ConvertNotificationResult(ui_notification_post(core));
+ r = ConvertNotificationResult(notification_insert(core,NULL));
+ SysTryLog(NID_APP, !IsFailed(r), "[%s] Notification post failure.", GetErrorMessage(r));
break;
default:
r = E_OPERATION_FAILED;
@@ -451,7 +461,7 @@ _NotificationManagerImpl::NotifyMessageImpl(const NotificationRequest& notiMessa
}
else
{
- r = ConvertNotificationResult(ui_notification_post(core));
+ r = ConvertNotificationResult(notification_insert(core,NULL));
SysTryLog(NID_APP, !IsFailed(r), "[%s] Notification post failure.", GetErrorMessage(r));
}
}
@@ -493,7 +503,7 @@ CATCH:
}
if (core)
{
- ui_notification_destroy(core);
+ notification_free(core);
}
return r;
diff --git a/src/core/FShell_NotificationRequestImpl.cpp b/src/core/FShell_NotificationRequestImpl.cpp
index 4261ae3..6f73cb9 100644
--- a/src/core/FShell_NotificationRequestImpl.cpp
+++ b/src/core/FShell_NotificationRequestImpl.cpp
@@ -346,7 +346,7 @@ _NotificationRequestImpl::SetOngoingActivityProgress(int progressValue)
// use int type instead of OngoingActivityType to evade weired gcc optimization
int activitytype = static_cast(GetOngoingActivityType());
- SysTryReturnResult(NID_APP, activitytype > ONGOING_ACTIVITY_TYPE_TEXT && activitytype <= ONGOING_ACTIVITY_TYPE_PROGRESS_PERCENTAGE,
+ SysTryReturnResult(NID_APP, activitytype >= ONGOING_ACTIVITY_TYPE_TEXT && activitytype <= ONGOING_ACTIVITY_TYPE_PROGRESS_PERCENTAGE,
E_INVALID_STATE,"Invalid activity Type %d.", activitytype);
if (activitytype == ONGOING_ACTIVITY_TYPE_PROGRESS_PERCENTAGE)
diff --git a/src/core/FShell_NotificationManagerEventParamTraits.h b/src/inc/FShell_NotificationManagerEventParamTraits.h
similarity index 97%
rename from src/core/FShell_NotificationManagerEventParamTraits.h
rename to src/inc/FShell_NotificationManagerEventParamTraits.h
index 2d11e2e..fe32676 100644
--- a/src/core/FShell_NotificationManagerEventParamTraits.h
+++ b/src/inc/FShell_NotificationManagerEventParamTraits.h
@@ -51,7 +51,7 @@ struct ParamTraits
m->WriteInt(p.GetBadgeNumber());
m->WriteInt(p.GetBadgeOffset());
- m->WriteInt((int)p.GetOngoingActivityType());
+ m->WriteInt((Tizen::Shell::OngoingActivityType)p.GetOngoingActivityType());
m->WriteInt(p.GetOngoingActivityProgress());
}
@@ -65,8 +65,9 @@ struct ParamTraits
int badgeNo = -1;
int badgeOffset = 0;
- int progressValue = -1;
int activityType = Tizen::Shell::ONGOING_ACTIVITY_TYPE_TEXT;
+ int progressValue = -1;
+
if (!ReadParam(m, iter, &alertText))
{
@@ -90,8 +91,9 @@ struct ParamTraits
}
m->ReadInt(iter, &badgeNo);
m->ReadInt(iter, &badgeOffset);
- m->ReadInt(iter, &progressValue);
m->ReadInt(iter, &activityType);
+ m->ReadInt(iter, &progressValue);
+
Tizen::Shell::NotificationRequest notimessage;
notimessage.SetAlertText(alertText);
@@ -102,8 +104,9 @@ struct ParamTraits
notimessage.SetBadgeNumber(badgeNo);
notimessage.SetBadgeOffset(badgeOffset);
- notimessage.SetOngoingActivityProgress(progressValue);
notimessage.SetOngoingActivityType((Tizen::Shell::OngoingActivityType)activityType);
+ notimessage.SetOngoingActivityProgress(progressValue);
+
*r = notimessage;
diff --git a/src/core/FShell_NotificationManagerIpcMessages.h b/src/inc/FShell_NotificationManagerIpcMessages.h
similarity index 100%
rename from src/core/FShell_NotificationManagerIpcMessages.h
rename to src/inc/FShell_NotificationManagerIpcMessages.h
diff --git a/src/core/FShell_NotificationManagerProxy.h b/src/inc/FShell_NotificationManagerProxy.h
similarity index 100%
rename from src/core/FShell_NotificationManagerProxy.h
rename to src/inc/FShell_NotificationManagerProxy.h
diff --git a/src/core/FShell_NotificationRequestImpl.h b/src/inc/FShell_NotificationRequestImpl.h
similarity index 100%
rename from src/core/FShell_NotificationRequestImpl.h
rename to src/inc/FShell_NotificationRequestImpl.h
--
2.7.4