From: Tomasz Marciniak Date: Mon, 4 Jul 2016 11:03:44 +0000 (+0200) Subject: [Preference] Fix for PreferenceData objects. X-Git-Tag: submit/tizen/20160705.055000~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d5e3e3ca9480d7a69d8faf72185cfe2abd94afee;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Preference] Fix for PreferenceData objects. [Feature] PreferenceData is now created correctly by new and its attributes are read only. [Verification] TCT tests related to PreferenceData pass. Change-Id: I3ecf4cc6566c6550e6371d97981f51a7885817b3 Signed-off-by: Tomasz Marciniak --- diff --git a/src/preference/preference_api.js b/src/preference/preference_api.js index 23434021..8a0ed15b 100644 --- a/src/preference/preference_api.js +++ b/src/preference/preference_api.js @@ -20,6 +20,21 @@ var type_ = xwalk.utils.type; var types_ = validator_.Types; var native_ = new xwalk.utils.NativeManager(extension); +function PreferenceData(data) { + Object.defineProperties(this, { + key: { + value: data.key, + writable: false, + enumerable: true + }, + value: { + value: data.value, + writable: false, + enumerable: true + }, + }); +} + function PreferenceManager() { } @@ -33,7 +48,14 @@ PreferenceManager.prototype.getAll = function() { if (native_.isFailure(result)) { native_.callIfPossible(args.errorCallback, native_.getErrorObject(result)); } else { - args.successCallback(native_.getResultObject(result)); + var array = []; + var objects = native_.getResultObject(result); + + objects.forEach(function (d) { + array.push(new PreferenceData(d)); + }); + + args.successCallback(array); } }; @@ -116,12 +138,11 @@ function PreferenceChangedListener() { this.appListener = function (result) { var data = native_.getResultObject(result); var key = data.key; - var value = data.value; if (that.instances[key]) { var listener = that.instances[key]; if (type_.isFunction(listener)) { - listener({ key: key, value: value }); + listener(new PreferenceData(data)); } } };