From 0c75237768f62a473b054feeb7c31c56c156f67f Mon Sep 17 00:00:00 2001 From: Szymon Jastrzebski Date: Tue, 18 Jul 2017 11:20:35 +0200 Subject: [PATCH] [Systeminfo] Fixed condition, which caused to call successCallback when not needed According to documentation, the successCallback is called in 4 different possible situations. The condition, which fills the requirements is optimized. [Verification] SystemInfo TCT passed 100%. Change-Id: Ie6b24853ed233ecb8ac9d5ee28677e84d2b22f2f Signed-off-by: Szymon Jastrzebski --- src/systeminfo/systeminfo_api.js | 38 ++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/src/systeminfo/systeminfo_api.js b/src/systeminfo/systeminfo_api.js index bb656c04..63b3e5ea 100644 --- a/src/systeminfo/systeminfo_api.js +++ b/src/systeminfo/systeminfo_api.js @@ -901,10 +901,20 @@ function _systeminfoBatteryListenerCallback(eventObj) { var propObj = !listener.isArrayType ? _createProperty(property, eventObj.result.array[0]) : _createPropertyArray(property, eventObj.result); - var executeCall = (T_.isUndefined(listener.lowThreshold) || - (propObj.level <= listener.lowThreshold)) || - (T_.isUndefined(listener.highThreshold) || - (propObj.level >= listener.highThreshold)); + /* + * According to documentation, the condition should look like this: + * + * (T_.isUndefined(listener.lowThreshold) && T_.isUndefined(listener.highThreshold)) || + * (!T_.isUndefined(listener.lowThreshold) && !T_.isUndefined(listener.highThreshold) && (propObj.level <= listener.lowThreshold || propObj.level >= listener.highThreshold)) || + * (!T_.isUndefined(listener.lowThreshold) && (propObj.level <= listener.lowThreshold)) || + * (!T_.isUndefined(listener.highThreshold) && (propObj.level >= listener.highThreshold)) + * + * but it can be optimized like this: + */ + var executeCall = (T_.isUndefined(listener.lowThreshold) && T_.isUndefined(listener.highThreshold)) || + (!T_.isUndefined(listener.lowThreshold) && propObj.level <= listener.lowThreshold) || + (!T_.isUndefined(listener.highThreshold) && propObj.level >= listener.highThreshold); + if (executeCall) { listener.callback(propObj); } @@ -922,10 +932,12 @@ function _systeminfoCpuListenerCallback(eventObj) { var propObj = !listener.isArrayType ? _createProperty(property, eventObj.result.array[0]) : _createPropertyArray(property, eventObj.result); - var executeCall = (T_.isUndefined(listener.lowThreshold) || - (propObj.load <= listener.lowThreshold)) || - (T_.isUndefined(listener.highThreshold) || - (propObj.load >= listener.highThreshold)); + /* + * Optimized condition: + * */ + var executeCall = (T_.isUndefined(listener.lowThreshold) && T_.isUndefined(listener.highThreshold)) || + (!T_.isUndefined(listener.lowThreshold) && propObj.load <= listener.lowThreshold) || + (!T_.isUndefined(listener.highThreshold) && propObj.load >= listener.highThreshold); if (executeCall) { listener.callback(propObj); } @@ -958,10 +970,12 @@ function _systeminfoDisplayListenerCallback(eventObj) { var propObj = !listener.isArrayType ? _createProperty(property, eventObj.result.array[0]) : _createPropertyArray(property, eventObj.result); - var executeCall = (T_.isUndefined(listener.lowThreshold) || - (propObj.brightness <= listener.lowThreshold)) || - (T_.isUndefined(listener.highThreshold) || - (propObj.brightness >= listener.highThreshold)); + /* + * Optimized condition: + * */ + var executeCall = (T_.isUndefined(listener.lowThreshold) && T_.isUndefined(listener.highThreshold)) || + (!T_.isUndefined(listener.lowThreshold) && propObj.brightness <= listener.lowThreshold) || + (!T_.isUndefined(listener.highThreshold) && propObj.brightness >= listener.highThreshold); if (executeCall) { listener.callback(propObj); } -- 2.34.1