[TIMOB-10853] iOS: Ti.App.Properties "change" event should not fire when setting an existing property to its current value
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Low |
Status | Reopened |
Resolution | Unresolved |
Affected Version/s | Release 3.0.0 |
Fix Version/s | Release 3.0.0, Sprint 2012-19 API |
Components | iOS |
Labels | api, module_app_properties, parity, qe-testadded |
Reporter | Hieu Pham |
Assignee | Hieu Pham |
Created | 2012-09-11T16:14:15.000+0000 |
Updated | 2013-08-13T11:05:44.000+0000 |
Description
1. Run this code
var win = Ti.UI.createWindow({
backgroundColor: 'white'
});
function onPropertiesChange()
{
Ti.API.info('change fired')
Ti.App.Properties.setBool('test', true);
Ti.App.Properties.setDouble('test1', 2.5);
Ti.App.Properties.setInt('test2', 45);
Ti.App.Properties.setString('test3', "hello");
}
Ti.App.Properties.addEventListener('change',onPropertiesChange);
Ti.App.Properties.setBool('test', true);
Ti.App.Properties.setDouble('test1', 2.5);
Ti.App.Properties.setInt('test2', 45);
Ti.App.Properties.setString('test3', "hello");
win.open();
2. Look at log and observe infinite loop. On Android, "change" is only called 4 times.
Expected Behavior:
- "change" should only be called 5 times - since iOS also adds appGUID when launching the app for the first time.
The change is fired 4 times on Android and 5 times on iOS. Verified on: Titanium Studio: 3.0.0.201211301903 Titanium SDK:3.0.0.v20121204181658 Device: Nexus 7 (Android v4.1), iOS Simulator (v6.0), iPad2 (v5.1) XCode: 4.5.1
Tested with: SDK: 3.1.2.v20130812225629 Appcelertaor Studio: 3.1.2.201308091728 OS: OSX 10.8.4 Device: iPhone5(v 6.1.4) Xcode: 4.6.3 Change event is fired 4 times on iOS whereas it should be fired 5 times since iOS also adds appGUID when launching the app for the first time