From: Lukasz Bardeli Date: Mon, 18 Dec 2017 11:13:28 +0000 (+0100) Subject: [Alarm] Delete (add/get)AlarmNotification from tv, common and ivi profiles X-Git-Tag: submit/tizen/20180115.103658^2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F07%2F164307%2F4;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Alarm] Delete (add/get)AlarmNotification from tv, common and ivi profiles addAlarmNotification and getAlarmNotification methods are available on mobile and wearable profiles only. This fix delete those property from AlarmManager when plugins are build on different profile. [Verification] Code compiles without error. Checked in chrome console. TCT passrate on wearable 100% Change-Id: I5d35656845edfb10c06b3f3c978423ff3f0b6866 Signed-off-by: Lukasz Bardeli --- diff --git a/src/alarm/alarm.gyp b/src/alarm/alarm.gyp index 5d212ec6..6a5739e9 100644 --- a/src/alarm/alarm.gyp +++ b/src/alarm/alarm.gyp @@ -8,7 +8,6 @@ 'type': 'loadable_module', 'dependencies': [ '../common/common.gyp:tizen_common', - '../notification/notification.gyp:tizen_notification', ], 'sources': [ 'alarm_api.js', @@ -31,6 +30,16 @@ ] }, }], + ['extension_host_os == "mobile"', { + 'dependencies': [ + '../notification/notification.gyp:tizen_notification', + ], + }], + ['extension_host_os == "wearable"', { + 'dependencies': [ + '../notification/notification.gyp:tizen_notification', + ], + }] ], }, ], diff --git a/src/alarm/alarm_api.js b/src/alarm/alarm_api.js index cfa5f987..e8507f69 100755 --- a/src/alarm/alarm_api.js +++ b/src/alarm/alarm_api.js @@ -486,5 +486,44 @@ tizen.AlarmAbsolute.prototype.getNextScheduledDate = function () { } }; +// Singleton to check on which profile plugins are executed +var ProfileAlarm = (function() { + var m_profile = null; + function ProfileAlarm() { + if (m_profile == null) { + m_profile = privUtils_.checkProfile(); + } + Object.defineProperties(this, { + profile: { + get: function() { + return m_profile; + }, + set: function() {}, + enumerable: true + } + }) + }; + + var instance; + return { + getInstance: function() { + if (instance == null) { + instance = new ProfileAlarm(); + // Hide the constructor so the returned objected can't be new'd... + instance.constructor = null; + } + return instance; + } + }; +})(); + +var _profile = ProfileAlarm.getInstance().profile; + +// Notifications feature are available on mobile and wearable profile +if (_profile != 'mobile' && _profile != 'wearable') { + delete AlarmManager.prototype.addAlarmNotification; + delete AlarmManager.prototype.getAlarmNotification; +} + //exports ////////////////////////////////////////////////////////////// exports = new AlarmManager(); diff --git a/src/alarm/alarm_instance.cc b/src/alarm/alarm_instance.cc index a65a604b..504149cd 100644 --- a/src/alarm/alarm_instance.cc +++ b/src/alarm/alarm_instance.cc @@ -29,14 +29,10 @@ AlarmInstance::AlarmInstance() { using namespace std::placeholders; RegisterSyncHandler("AlarmManager_add", std::bind(&AlarmManager::Add, &manager_, _1, _2)); - RegisterSyncHandler("AlarmManager_addAlarmNotification", - std::bind(&AlarmManager::AddAlarmNotification, &manager_, _1, _2)); RegisterSyncHandler("AlarmManager_remove", std::bind(&AlarmManager::Remove, &manager_, _1, _2)); RegisterSyncHandler("AlarmManager_removeAll", std::bind(&AlarmManager::RemoveAll, &manager_, _1, _2)); RegisterSyncHandler("AlarmManager_get", std::bind(&AlarmManager::Get, &manager_, _1, _2)); - RegisterSyncHandler("AlarmManager_getAlarmNotification", - std::bind(&AlarmManager::GetAlarmNotification, &manager_, _1, _2)); RegisterSyncHandler("AlarmManager_getAll", std::bind(&AlarmManager::GetAll, &manager_, _1, _2)); // AlarmRelative RegisterSyncHandler("AlarmRelative_getRemainingSeconds", @@ -44,6 +40,14 @@ AlarmInstance::AlarmInstance() { // AlarmAbsolute RegisterSyncHandler("AlarmAbsolute_getNextScheduledDate", std::bind(&AlarmManager::GetNextScheduledDate, &manager_, _1, _2)); + + // Block of code related to Notification +#if defined(TIZEN_MOBILE) || defined(TIZEN_WEARABLE) + RegisterSyncHandler("AlarmManager_addAlarmNotification", + std::bind(&AlarmManager::AddAlarmNotification, &manager_, _1, _2)); + RegisterSyncHandler("AlarmManager_getAlarmNotification", + std::bind(&AlarmManager::GetAlarmNotification, &manager_, _1, _2)); +#endif } AlarmInstance::~AlarmInstance() { diff --git a/src/alarm/alarm_manager.cc b/src/alarm/alarm_manager.cc index 2588fa25..c7d67a11 100644 --- a/src/alarm/alarm_manager.cc +++ b/src/alarm/alarm_manager.cc @@ -20,7 +20,10 @@ #include #include #include + +#if defined(TIZEN_MOBILE) || defined(TIZEN_WEARABLE) #include +#endif #include "common/converter.h" #include "common/logger.h" @@ -245,6 +248,7 @@ void AlarmManager::Add(const picojson::value& args, picojson::object& out) { ReportSuccess(result, out); } +#if defined(TIZEN_MOBILE) || defined(TIZEN_WEARABLE) void AlarmManager::AddAlarmNotification(const picojson::value& args, picojson::object& out) { using namespace extension::notification; ScopeLogger(); @@ -466,6 +470,7 @@ void AlarmManager::AddAlarmNotification(const picojson::value& args, picojson::o result_obj.insert(std::make_pair("id", picojson::value(std::to_string(alarm_id)))); ReportSuccess(result, out); } +#endif void AlarmManager::Remove(const picojson::value& args, picojson::object& out) { ScopeLogger(); @@ -664,6 +669,7 @@ void AlarmManager::Get(const picojson::value& args, picojson::object& out) { } } +#if defined(TIZEN_MOBILE) || defined(TIZEN_WEARABLE) void AlarmManager::GetAlarmNotification(const picojson::value& args, picojson::object& out) { using namespace extension::notification; ScopeLogger(); @@ -711,7 +717,7 @@ void AlarmManager::GetAlarmNotification(const picojson::value& args, picojson::o ReportSuccess(result, out); } - +#endif static bool AlarmIterateCB(int alarm_id, void* user_data) { ScopeLogger(); diff --git a/src/alarm/alarm_manager.h b/src/alarm/alarm_manager.h index f7c0f3fd..df5559bf 100644 --- a/src/alarm/alarm_manager.h +++ b/src/alarm/alarm_manager.h @@ -29,13 +29,15 @@ class AlarmManager { virtual ~AlarmManager(); void Add(const picojson::value& args, picojson::object& out); - void AddAlarmNotification(const picojson::value& args, picojson::object& out); void Remove(const picojson::value& args, picojson::object& out); void RemoveAll(const picojson::value& args, picojson::object& out); void Get(const picojson::value& args, picojson::object& out); - void GetAlarmNotification(const picojson::value& args, picojson::object& out); void GetAll(const picojson::value& args, picojson::object& out); +#if defined(TIZEN_MOBILE) || defined(TIZEN_WEARABLE) + void AddAlarmNotification(const picojson::value& args, picojson::object& out); + void GetAlarmNotification(const picojson::value& args, picojson::object& out); +#endif // AlarmRelative void GetRemainingSeconds(const picojson::value& args, picojson::object& out); // AlarmAbsolute diff --git a/src/utils/utils_api.js b/src/utils/utils_api.js index 07dfedb3..26721ae7 100644 --- a/src/utils/utils_api.js +++ b/src/utils/utils_api.js @@ -287,6 +287,13 @@ Utils.prototype.checkBackwardCompabilityPrivilegeAccess = function(current_privi } }; +Utils.prototype.checkProfile = function() { + var result = native_.callSync('Utils_checkProfile', {}); + + return native_.getResultObject(result); +}; + + ///////////////////////////////////////////////////////////////////////////// /** @constructor */ var Type = function() {}; diff --git a/src/utils/utils_instance.cc b/src/utils/utils_instance.cc index 65f5995a..9cb9dd57 100644 --- a/src/utils/utils_instance.cc +++ b/src/utils/utils_instance.cc @@ -33,6 +33,7 @@ UtilsInstance::UtilsInstance() { CheckBackwardCompabilityPrivilegeAccess); REGISTER_SYNC("Utils_toLongLong", ToLongLong); REGISTER_SYNC("Utils_toUnsignedLongLong", ToUnsignedLongLong); + REGISTER_SYNC("Utils_checkProfile", CheckProfile); #undef REGISTER_SYNC #undef REGISTER_ASYNC @@ -116,5 +117,22 @@ void UtilsInstance::ToUnsignedLongLong(const picojson::value& args, picojson::ob ReportSuccess(picojson::value(static_cast(output)), out); } +void UtilsInstance::CheckProfile(const picojson::value& args, picojson::object& out) { + ScopeLogger(); + + std::string profile = "common"; +#if defined(TIZEN_MOBILE) + profile = "mobile"; +#elif defined(TIZEN_WEARABLE) + profile = "wearable"; +#elif defined(TIZEN_TV) || defined(USBHOST) + profile = "tv"; +#elif defined(TIZEN_IVI) + profile = "ivi"; +#endif + + ReportSuccess(picojson::value(profile), out); +} + } // namespace utils } // namespace extension diff --git a/src/utils/utils_instance.h b/src/utils/utils_instance.h index fee0d412..c39a91d4 100644 --- a/src/utils/utils_instance.h +++ b/src/utils/utils_instance.h @@ -24,6 +24,7 @@ class UtilsInstance : public common::ParsedInstance { void ToLongLong(const picojson::value& args, picojson::object& out); void ToUnsignedLongLong(const picojson::value& args, picojson::object& out); + void CheckProfile(const picojson::value& args, picojson::object& out); }; } // namespace utils } // namespace extension