{ "id": "99198", "key": "TIMOB-10444", "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": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" }, { "id": "14127", "description": "Sprint 2012-19 API", "name": "Sprint 2012-19 API", "archived": true, "released": true, "releaseDate": "2012-09-24" }, { "id": "14271", "description": "2012 Sprint 19", "name": "2012 Sprint 19", "archived": true, "released": true, "releaseDate": "2012-09-24" }, { "id": "15479", "description": "Release 3.1.2", "name": "Release 3.1.2", "archived": true, "released": true, "releaseDate": "2013-07-31" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-08-07T20:48:43.000+0000", "created": "2012-08-14T13:47:09.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "api", "module_tabgroup", "qe-and082012", "qe-testadded" ], "versions": [ { "id": "13273", "description": "Release 2.0.2", "name": "Release 2.0.2", "archived": false, "released": true, "releaseDate": "2012-05-31" }, { "id": "13271", "description": "Release 2.1.0", "name": "Release 2.1.0", "archived": false, "released": true, "releaseDate": "2012-06-29" }, { "id": "14096", "description": "Release 2.1.2", "name": "Release 2.1.2", "archived": true, "released": true, "releaseDate": "2012-08-31" } ], "issuelinks": [], "assignee": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2013-08-08T10:59:44.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": "Adding a child tabGroup to a window will crash app on window.open().\r\n\r\nThis is not a regression.\r\n\r\nThis does not occur on iOS or MobileWeb.\r\n\r\nSteps to Reproduce:\r\n\r\n1. Run code:\r\n\r\n{code}\r\nvar win = Ti.UI.createWindow();\r\nvar tabGroup = Ti.UI.createTabGroup();\r\nwin.add(tabGroup);\r\nwin.open();\r\n{code}\r\n\r\nActual Result:\r\n\r\nCrash.\r\n\r\nExpected Result:\r\n\r\n1. tabGroup opens, OR\r\n2. an android-specific runtime error is generated and the api documentation is updated, OR\r\n3. a platform-independent runtime error is generated on all platforms, OR\r\n4. the api documentation is updated to note crash\r\n\r\n2.1 API Documentation:\r\n\r\n{code}\r\nPlatform Implementation Notes\r\nWhen using a tab group, note the following differences between platforms.\r\n\r\nThe tab group controls are positioned at the top of the display on Android and at the bottom on iOS.\r\n\r\nOn Android, only one tab group may exist at one time. A tab group may be closed to allow a new one to be opened later, but the root of the application must be a heavyweight window to prevent it exiting. Tabs cannot be removed from the tab group once added, and tabs cannot be reordered.\r\n\r\nOn iOS, more than one tab group may exist, and the may be opened and closed as required. Each tab can contain a stack of windows, and the user can switch between them by tapping the tab's associated control. Tabs can be removed, and the user may (optionally) be allowed to reorder tabs.\r\n\r\nOn iOS and Mobile Web, it is also possible to add tabs by updating the tabs property, and to switch active tabs by setting the active property on one of the tabs to true. Since these mechanisms are platform-specific, it is recommended that you use addTab and setActiveTab instead.\r\n\r\nIf you use the iOS/Mobile Web-specific mechanisms, it is possible to add multiple active tabs to a tab group. In this case, the result of which tab is initially selected is undefined.\r\n{code}", "attachment": [ { "id": "30490", "filename": "console.txt", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-08-14T13:47:09.000+0000", "size": 47529, "mimeType": "text/plain" } ], "flagged": false, "summary": "Android: child TabGroup of Window crashes on open", "creator": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Titanium Studio: 2.1.1\r\nTitanium SDK: 2.0.1, 2.0.2, 2.0.1, 2.1.1, 2.1.2\r\nOS: Mountain Lion\r\nDevices Tested: Android Emulator 2.2", "comment": { "comments": [ { "id": "218912", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This also applies to child windows of windows on android.", "updateAuthor": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-09-13T14:00:03.000+0000", "updated": "2012-09-13T14:00:03.000+0000" }, { "id": "227995", "author": { "name": "amittal", "key": "amittal", "displayName": "Anshu Mittal", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified with:\r\nSDK: 3.0.0.v20121119164700\r\nStudio: 3.0.0.201211131839\r\n\r\nA runtime error is thrown instead of crash on app launch.", "updateAuthor": { "name": "amittal", "key": "amittal", "displayName": "Anshu Mittal", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-20T11:43:41.000+0000", "updated": "2012-11-20T11:43:41.000+0000" }, { "id": "265314", "author": { "name": "pagarwal", "key": "pagarwal", "displayName": "Priya Agarwal", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This is Regression.\r\nApp crashes.\r\nNo runtime error is thrown.\r\n\r\nExpected Result:Runtime error is thrown as:\r\n\r\n\"E/TiExceptionHandler(1788): (main) [0,193] - Message: Uncaught Error: Cannot add window/tabGroup to another window/tabGroup.\"\r\n\r\nVerified with:\r\n\r\nStudio: 3.1.2.201308021524\r\nSDK: 3.1.2.v20130806104555\r\nacs:1.0.5\r\nalloy:1.2.0-alpha6\r\ntitanium:3.1.2-alpha\r\ntitanium-code-processor:1.0.2-alpha\r\nOS: OSX 10.8.4\r\nDevice: nexus 7(v4.3)\r\nXcode:4.6.3\r\n\r\n", "updateAuthor": { "name": "pagarwal", "key": "pagarwal", "displayName": "Priya Agarwal", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-07T12:29:35.000+0000", "updated": "2013-08-07T12:29:35.000+0000" }, { "id": "265381", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/4551\n3_1_X PR: https://github.com/appcelerator/titanium_mobile/pull/4552", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-07T18:08:15.000+0000", "updated": "2013-08-07T18:08:15.000+0000" }, { "id": "265541", "author": { "name": "pagarwal", "key": "pagarwal", "displayName": "Priya Agarwal", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified with:\r\n\r\nStudio: 3.1.2.201308071912\r\nSDK: 3.1.2.v20130807171139\r\nacs:1.0.5\r\nalloy:1.2.0-alpha6\r\ntitanium:3.1.2-alpha\r\ntitanium-code-processor:1.0.2-alpha\r\nOS: OSX 10.8.4\r\nDevice: nexus 7(v4.3)\r\nXcode:4.6.3\r\n\r\nAdding child TabGroup on Window now does not crashes app gives runtime error.", "updateAuthor": { "name": "pagarwal", "key": "pagarwal", "displayName": "Priya Agarwal", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-08T10:59:44.000+0000", "updated": "2013-08-08T10:59:44.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }