{ "id": "166809", "key": "TIMOB-24537", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "17609", "description": "", "name": "Release 7.0.0", "archived": false, "released": true, "releaseDate": "2017-12-07" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-11-15T00:09:36.000+0000", "created": "2017-03-27T19:29:36.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "android", "breaking-change", "gesture", "orientation", "parity" ], "versions": [ { "id": "19275", "description": "Patch release for 6.0.x regressions or important fixes", "name": "Release 6.0.3", "archived": false, "released": true, "releaseDate": "2017-03-22" } ], "issuelinks": [ { "id": "56035", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "149980", "key": "TIMOB-19878", "fields": { "summary": "Android: Ti.Gesture orientation change is not always fired", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-11-15T06:21:23.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "h6. Description \r\nTI Gesture does not fire orientationchange event on Android. It works fine on iOS\r\n\r\nh6. Steps to Replicate\r\n1. Lauch app and tilt the device.\r\n\r\nh6. Expected results\r\nFire event as it does on iOS\r\n", "attachment": [ { "id": "62017", "filename": "S5_video.mp4", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-12T20:59:52.000+0000", "size": 5237043, "mimeType": "video/mp4" }, { "id": "61914", "filename": "TiGestureTest.zip", "author": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-03-27T19:30:04.000+0000", "size": 10475776, "mimeType": "application/zip" } ], "flagged": false, "summary": "Android: Ti.Gesture should provide device orientation like iOS", "creator": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "TI SDK 6.0.3 GA", "comment": { "comments": [ { "id": "416793", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~emerriman], I could not reproduce the issue. For me {{orientationchange}} in {{Ti.Gesture}} is correctly fired for the different orientation types.\r\nIn the example app, I see the window is set to have 2 orientation modes {{Titanium.UI.PORTRAIT}} & {{Titanium.UI.UPSIDE_PORTRAIT}}. \r\n\r\nFrom the docs:\r\n{code}\r\nAndroid and Mobile Web do not report the \"reverse\" orientations, UPSIDE_PORTRAIT and LANDSCAPE_RIGHT. These are reported as PORTRAIT and LANDSCAPE_LEFT, respectively.\r\n{code}\r\n\r\nRef: http://docs.appcelerator.com/platform/latest/#!/api/Titanium.Gesture-event-orientationchange", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-04T21:19:31.000+0000", "updated": "2017-04-04T21:37:40.000+0000" }, { "id": "416961", "author": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hey [~lchoudhary], in the sample app Event is not fired first time the screen is rotated as it does on iOS. I have attached a video to shows what I am seeing. As well, I've removed the orientation modes from the tss file. \r\nhttps://axwaysoftware-my.sharepoint.com/personal/vvazquezmontero_axway_com/_layouts/15/guestaccess.aspx?guestaccesstoken=FpIUW41Uy1lcTHHqLCzVjS3RFgDdAHRD82lbvxihe30%3d&docid=2_1a556a9c1988e4b90861e13375920cbcb&rev=1\r\nBest, \r\nVictor Montero", "updateAuthor": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-06T18:42:24.000+0000", "updated": "2017-04-06T18:42:24.000+0000" }, { "id": "416962", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~vvazquezmontero], Thanks, appreciate it. I will check it out.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-06T18:46:59.000+0000", "updated": "2017-04-06T18:46:59.000+0000" }, { "id": "417150", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~lchoudhary] please check this out again, then assign to Josh if able to repro. If unable, let me know.\r\n", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-10T22:43:28.000+0000", "updated": "2017-04-10T22:43:28.000+0000" }, { "id": "417201", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~emerriman], [~vvazquezmontero] I tried again with the 6.0.3.GA & with code below & event gets fired properly even for the first time the device is rotated.\r\n\r\nOne thing I am seeing is on emulator it does not fire the event for the first time while on device it does everytime. \r\n\r\nI tried it on 2 devices: \r\n1. One plus one android 6.0.1\r\n2. Nexus 6 android 6.0.1\r\n\r\nI won't take what you see on an emulator as final result for orientation as most of orientation stuff is device sensor dependent if orientations are not explicitly specified, can you please try on a device if you still see the issue ?\r\n\r\nMore ref: http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Window-property-orientationModes\r\n\r\n*index.js code:*\r\n{code}\r\nfunction doClick(e) {\r\n alert($.label.text);\r\n}\r\n\r\n$.index.open();\r\n\r\nTi.Gesture.addEventListener('orientationchange', function(){\r\n\talert('Orientation Changed');\r\n});\r\n{code}\r\n\r\n*index.tss code:*\r\n{code}\r\n\".container\": {\r\n\tbackgroundColor:\"white\"\r\n}\r\n\r\n\"Label\": {\r\n\twidth: Ti.UI.SIZE,\r\n\theight: Ti.UI.SIZE,\r\n\tcolor: \"#000\"\r\n}\r\n\r\n\"#label\": {\r\n\tfont: {\r\n\t\tfontSize: 12\r\n\t}\r\n}\r\n{code}", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-11T17:56:43.000+0000", "updated": "2017-04-11T17:56:43.000+0000" }, { "id": "417316", "author": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hey [~lchoudhary], \r\nUser says they can reproduce this bug on the following devices: \r\nAn s5 running lollipop\r\nAn s6 running marshmallow\r\nAn htc one m8 running marshmallow\r\nA moto x running lollipop\r\nBest, \r\nVictor Montero", "updateAuthor": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-12T18:45:09.000+0000", "updated": "2017-04-12T18:45:09.000+0000" }, { "id": "417317", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~vvazquezmontero], Ok we have a Samsung S5 will try to reproduce.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-12T18:54:31.000+0000", "updated": "2017-04-12T18:54:31.000+0000" }, { "id": "417324", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~vvazquezmontero], I tried on the S5 android 5.0 (lollipop) we had but still couldn't reproduce with the code above. I have attached this video for ref : [^S5_video.mp4]. \r\nUnsure why the customer is seeing the issue.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-12T21:03:47.000+0000", "updated": "2017-04-12T21:03:47.000+0000" }, { "id": "417325", "author": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I'l share with the customer and see what they give back. Thank you [~lchoudhary]", "updateAuthor": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-12T21:33:30.000+0000", "updated": "2017-04-12T21:33:30.000+0000" }, { "id": "417370", "author": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hey [~lchoudhary] the user is still seeing the same behavior where the ti.gesture is not firing using the code you provided. \r\nThis is what they are responding\r\n\"I'm looking for parity between the ios and android behavior. On ios orientationchange is fired when the device's orientation is changed, not the window (because the window is locked to portrait). I'm looking for the same behavior on android.\"", "updateAuthor": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-13T17:07:52.000+0000", "updated": "2017-04-13T17:07:52.000+0000" }, { "id": "418020", "author": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~lchoudhary] Hey Lokesh any update on this ticket with the additional comment from the cusomter? ", "updateAuthor": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-25T16:50:32.000+0000", "updated": "2017-04-25T16:50:32.000+0000" }, { "id": "418116", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~vvazquezmontero], We are working on this issue.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-26T17:37:24.000+0000", "updated": "2017-04-26T17:37:24.000+0000" }, { "id": "418118", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Failing review as PR was declined.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-26T17:38:00.000+0000", "updated": "2017-04-26T17:38:00.000+0000" }, { "id": "418121", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "We currently document that Android provides the window orientation and iOS provides the device orientation here...\r\n https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Gesture-property-orientation\r\n\r\nSo, at the moment, this is currently by design. What's being asked here is for us to make a breaking change and have this \"orientation\" property return the device orientation on Android to match the iOS (and Windows Phone) behavior. This is understandable since I'm not aware of any other API that provides device orientation, which means that an Android developer has no means of accessing device orientation. (An iOS and Windows Phone developer can listen to a Window's \"postlayout\" event to determine if the window orientation has changed.)\r\n\r\nThis is being discussed internally by engineering at the moment. No ETA yet.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-04-26T18:03:28.000+0000", "updated": "2017-04-26T18:03:28.000+0000" }, { "id": "419318", "author": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~jquick] Hello Joshua, \r\nIs there any viable work around which the customer can do to get the desired behavior? \r\n", "updateAuthor": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-05-08T19:22:39.000+0000", "updated": "2017-05-08T19:22:39.000+0000" }, { "id": "419319", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~vvazquezmontero], unfortunately no.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-05-08T19:34:51.000+0000", "updated": "2017-05-08T19:34:51.000+0000" }, { "id": "427186", "author": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~jquick] Thanks for the update!", "updateAuthor": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-08-24T16:57:19.000+0000", "updated": "2017-08-24T16:57:19.000+0000" }, { "id": "430105", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR (master): https://github.com/appcelerator/titanium_mobile/pull/9585", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-11-04T05:38:16.000+0000", "updated": "2017-11-04T05:38:16.000+0000" }, { "id": "430258", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR Passed.\r\nWaiting for merge to get enabled to merge.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-11-07T23:42:07.000+0000", "updated": "2017-11-07T23:42:07.000+0000" }, { "id": "430631", "author": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR merged.", "updateAuthor": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-11-15T00:09:36.000+0000", "updated": "2017-11-15T00:09:36.000+0000" }, { "id": "430671", "author": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Changes are seen in SDK 7.0.0.v20171114202841.", "updateAuthor": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-11-15T06:21:23.000+0000", "updated": "2017-11-15T06:21:23.000+0000" } ], "maxResults": 25, "total": 25, "startAt": 0 } } }