From: Tomasz Marciniak Date: Wed, 24 Aug 2016 11:37:49 +0000 (+0200) Subject: [SecureElement] Added onSEError in SEChangeListener. X-Git-Tag: submit/tizen/20160920.235405~6^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=19867a095729f2774db5f2e3d2a07380d6b77aef;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [SecureElement] Added onSEError in SEChangeListener. [Verification] Code compiles. TCT pass rate did not change. Change-Id: I18880c2716b050cd69bfc4ac00b9d200b38cd734 Signed-off-by: Tomasz Marciniak --- diff --git a/src/secureelement/secureelement_api.js b/src/secureelement/secureelement_api.js index 4ff5bd2a..e175529e 100644 --- a/src/secureelement/secureelement_api.js +++ b/src/secureelement/secureelement_api.js @@ -33,7 +33,10 @@ function ListenerManager(native, listenerName) { ListenerManager.prototype.onListenerCalled = function(msg) { var d = undefined; + var e = undefined; switch (msg.action) { + case 'onSEError': + e = new WebAPIException(WebAPIException.IO_ERR, 'I/O error occurred on Secure Element reader'); case 'onSEReady': case 'onSENotReady': d = new Reader(msg.handle); @@ -45,7 +48,7 @@ ListenerManager.prototype.onListenerCalled = function(msg) { for (var watchId in this.listeners) { if (this.listeners.hasOwnProperty(watchId) && this.listeners[watchId][msg.action]) { - this.listeners[watchId][msg.action](d); + this.listeners[watchId][msg.action](d, e); } } }; @@ -130,7 +133,7 @@ var SEServiceRegisterSEListener = function() { { name : 'eventCallback', type : types_.LISTENER, - values: ['onSEReady', 'onSENotReady'] + values: ['onSEReady', 'onSENotReady', 'onSEError'] } ]); diff --git a/src/secureelement/secureelement_instance.cc b/src/secureelement/secureelement_instance.cc index ea01beeb..34555753 100644 --- a/src/secureelement/secureelement_instance.cc +++ b/src/secureelement/secureelement_instance.cc @@ -40,6 +40,7 @@ const std::string kListenerId = "listenerId"; const std::string kListener = "SecureElementChangeListener"; const std::string kReady = "onSEReady"; const std::string kNotReady = "onSENotReady"; +const std::string kError = "onSEError"; TizenResult ConvertErrorCode(int error) { switch (error) { @@ -68,11 +69,20 @@ TizenResult ConvertErrorCode(int error) { void SecureElementEventCb(int reader, smartcard_reader_event_type_e event_type, void *user_data) { ScopeLogger(); - //TODO What action should be performed in case of SMARTCARD_READER_EVENT_TYPE_IO_ERROR event - if (SMARTCARD_READER_EVENT_TYPE_INSERTED != event_type && - SMARTCARD_READER_EVENT_TYPE_REMOVED != event_type) { - LoggerD("Incorrect event type"); - return; + std::string action = ""; + switch (event_type) { + case SMARTCARD_READER_EVENT_TYPE_IO_ERROR: + action = kError; + break; + case SMARTCARD_READER_EVENT_TYPE_INSERTED: + action = kReady; + break; + case SMARTCARD_READER_EVENT_TYPE_REMOVED: + action = kNotReady; + break; + default: + LoggerD("Incorrect event type"); + return; } SecureElementInstance* instance = static_cast(user_data); @@ -84,8 +94,6 @@ void SecureElementEventCb(int reader, smartcard_reader_event_type_e event_type, picojson::value result{picojson::object{}}; auto& obj = result.get(); - std::string action = SMARTCARD_READER_EVENT_TYPE_INSERTED == event_type ? kReady : kNotReady; - obj.insert(std::make_pair(kAction, picojson::value(action))); obj.insert(std::make_pair(kHandle, picojson::value(static_cast(reader)))); obj.insert(std::make_pair(kListenerId, picojson::value(kListener))); @@ -170,7 +178,7 @@ TizenResult SecureElementInstance::GetReaders(picojson::object const& args, cons for (int i = 0; i < count; i++) { ret = smartcard_reader_is_secure_element_present(readers[i], &is_present); if (SMARTCARD_ERROR_NONE == ret && is_present) { - array.push_back(picojson::value(static_cast(readers[i]))); + array.push_back(picojson::value(static_cast(readers[i]))); } }