{ "id": "114033", "key": "TIMOB-13796", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "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": "15547", "description": "2013 Sprint 14", "name": "2013 Sprint 14", "archived": true, "released": true, "releaseDate": "2013-07-15" }, { "id": "15548", "description": "2013 Sprint 14 API", "name": "2013 Sprint 14 API", "archived": true, "released": true, "releaseDate": "2013-07-15" }, { "id": "15479", "description": "Release 3.1.2", "name": "Release 3.1.2", "archived": true, "released": true, "releaseDate": "2013-07-31" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-07-10T20:35:10.000+0000", "created": "2013-05-08T23:10:00.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "module_window", "qe-testadded" ], "versions": [], "issuelinks": [ { "id": "28751", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "outwardIssue": { "id": "110469", "key": "TIMOB-12939", "fields": { "summary": "Android: Developer option \"do not keep activities\" cause Titanium apps to close", "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": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "30215", "type": { "id": "10122", "name": "Gantt: start-finish", "inward": "is triggered by", "outward": "is triggering" }, "outwardIssue": { "id": "117198", "key": "TIMOB-14558", "fields": { "summary": "Android: Map V2: addAnnotation crashes", "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": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "30116", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "116859", "key": "TIMOB-14482", "fields": { "summary": "Android: Heavyweight window: child view does not respect the opacity of the window", "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": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "30115", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "112763", "key": "TIMOB-13543", "fields": { "summary": "Android: add support for activityEnterAnimation and activityExitAnimation for Window.close method", "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": "Medium", "id": "3" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "30459", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "117727", "key": "TISTUD-5182", "fields": { "summary": "Need an alert dialog to warn the developers about the new Window Architecture on Android", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "28530", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "113517", "key": "TIMOB-13714", "fields": { "summary": "Android: Experiment: Android \"lightweight windows\" should be used instead of \"heavyweight windows.", "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": "High", "id": "2" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "30227", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "114758", "key": "TIMOB-13953", "fields": { "summary": "Android: Setting navBarHidden true causes window background image to cut off at the top", "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": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "32259", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "120598", "key": "TIMOB-15371", "fields": { "summary": "Android: Unable to overlay multiple lightweight windows", "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": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "30460", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "117728", "key": "TIDOC-1214", "fields": { "summary": "3.2.0 Release Notes", "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": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2016-07-07T09:06:54.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": "In the current architecture, the window has two proxies. One is the wrapper proxy (TiBaseWindowProxy) and the other is the real proxy (TiViewProxy or ActivityWindowProxy). This design leads to many problems, eg. we have two copies of properties in the two proies and we need to keep them sync with each other, we need to take special care of adding / removing children, etc. And this design also affects the performance. \r\nWe are going to implement a new architecture for the window. A window is a TiViewProxy. For LW window, this TiViewProxy is associated with the current activity. For HW window, this TiViewProxy is associated with a newly created activity. This new architecture will simplify the current window system, make it more maintainable and improve the performance.\r\n\r\nh4. Update on behavior change:\r\nIn the new architecture, all the windows are heavyweight. If the developers want the old window behavior which has both lightweight and heavyweight windows, they can enable the property \"ti.android.useLegacyWindow\" in the tiapp.xml.\r\n{code}true{code}\r\n\r\nh4. Update on performance improvement:\r\nDid a similar performance experiment as TIMOB-13714 using this new window architecture. The result is posted on the [wiki page|https://wiki.appcelerator.org/display/spe/Platform+Performance+Improvements#PlatformPerformanceImprovements-Performance_Experiment_for_Windows] (Table 2). The performance to open one heavyweight window with 100 children views is improved by *~120%* compared to the old window implementation.", "attachment": [ { "id": "40512", "filename": "windowtest 2.zip", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-03T18:24:48.000+0000", "size": 3735256, "mimeType": "application/zip" } ], "flagged": false, "summary": "Android: Implement new window architecture", "creator": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [ { "id": "115550", "key": "TIMOB-14126", "fields": { "summary": "Android: Create a new window proxy to handle both LW and HW windows", "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": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } }, { "id": "115551", "key": "TIMOB-14127", "fields": { "summary": "Android: Implement all the properties except \"url\" for both LW and HW windows", "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": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } }, { "id": "115552", "key": "TIMOB-14128", "fields": { "summary": "Android: Implement the \"url\" property for windows and Ti.UI.currentWindow", "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": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } }, { "id": "115554", "key": "TIMOB-14130", "fields": { "summary": "Android: Window events, windows in the Tab and test", "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": "Medium", "id": "3" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } } ], "reporter": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "259054", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Steps for FR:\r\n1. Run KS with \"ti.android.useLegacyWindow\" enabled in the tiapp.xml on 2.3, 3.x and 4.x devices. {code}true{code}\r\n*Note:* since the new windows will respect the \"width\" and \"height\" properties in the window creation, we need to modify the KS->Base UI->Window(Standalone) test. Please run the KS in https://github.com/appcelerator-developer-relations/KitchenSink/pull/107 .\r\n\r\n2. Run Anvil. Should have 371 passed / 35 failed on Android (*Note:* in the latest master, there is a new regression \"android/android/android -> jsActivityUrl\". So it will be 370 passed / 36 failed). Please also verify that Anvil runs fine on other platforms without new regression (on iOS, it should have 216 passed / 34 failed).\r\n\r\n3. Run the attached project \"windowtest2\" on 3.2 (with the new window architecture) and on 3.1.1.GA to compare the behavior.\r\n *Note:* a) A modal window without backgroundColor/Image should have a translucent background. Pre 3.2, it has a black background on 4.0+ devices.\r\n b) Pre 3.2, the height/width properties do not work if specified in the open() function.\r\n c) Pre 3.2, the activityEnter/ExitAnimation properties is not supported in the close() function.\r\n\r\n4. Run TIMOB-10809, TIMOB-9262 and TIMOB-5119 with \"ti.android.useLegacyWindow\" enabled.\r\n\r\n5. Run the below tickets *with and without* \"ti.android.useLegacyWindow\" enabled.\r\n a) Tabgroup events: TIMOB-3139, TIMOB-4063, TIMOB-11031\r\n b) Window events: TIMOB-8648(the first two test cases), TIMOB-8976\r\n c) Window URL: TIMOB-11525\r\n d) Memory leak: TIMOB-12160\r\n\r\n6. This PR also adds support for activityEnter/ExitAnimation for window.close() (TIMOB-13543). Please run the test case in TIMOB-13543 and resolve it after the PR is merged.\r\n\r\n7. This PR also fixes TIMOB-14482. Please test and resolve it after the PR is merged.", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-06-21T21:32:16.000+0000", "updated": "2013-07-03T21:57:57.000+0000" }, { "id": "259416", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/4417", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-06-25T20:20:55.000+0000", "updated": "2013-06-25T20:20:55.000+0000" }, { "id": "261326", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "KS PR: https://github.com/appcelerator-developer-relations/KitchenSink/pull/107", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-10T20:57:30.000+0000", "updated": "2013-07-10T20:57:30.000+0000" }, { "id": "262511", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR to fix the GC issue (TIMOB-14558): https://github.com/appcelerator/titanium_mobile/pull/4466", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-19T21:03:15.000+0000", "updated": "2013-07-19T21:03:15.000+0000" }, { "id": "262864", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "backport PR: https://github.com/appcelerator/titanium_mobile/pull/4474\r\nFor FR, please follow the above step 1-7 *without* \"ti.android.useLegacyWindow\" enabled since this property is not introduced in the backport PR. Please also follow the test steps in TIMOB-14558.", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-23T17:43:48.000+0000", "updated": "2013-07-24T00:03:29.000+0000" }, { "id": "264325", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "3_1_X KS PR: https://github.com/appcelerator-developer-relations/KitchenSink/pull/111", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-01T00:01:08.000+0000", "updated": "2013-08-01T00:01:08.000+0000" }, { "id": "268913", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "We have verified this feature with passes against our full stack on Android. Closing.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-29T18:40:37.000+0000", "updated": "2013-08-29T18:40:37.000+0000" }, { "id": "273817", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "So \"For LW window, this TiViewProxy is associated with the current activity. For HW window...\" and then in the next paragraph, \"In the new architecture, all the windows are heavyweight.\" Why the talk of both LW and HW, when everything is HW?", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2013-10-04T17:37:22.000+0000", "updated": "2013-10-04T17:37:22.000+0000" }, { "id": "273820", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The second paragraph actually should be \"In the new architecture, all the windows are heavyweight *by default*.\" If the developers enable the \"ti.android.useLegacyWindow\" property in the tiapp.xml, they can still use the LW windows.", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-10-04T17:48:40.000+0000", "updated": "2013-10-04T17:48:40.000+0000" }, { "id": "273821", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "So that's not a deprecated property that will go away at some point in the future?", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2013-10-04T17:50:31.000+0000", "updated": "2013-10-04T17:50:31.000+0000" }, { "id": "273822", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Yes. The \"ti.android.useLegacyWindow\" property will go away and there will be only HW windows on Android in the future.", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-10-04T17:53:34.000+0000", "updated": "2013-10-04T17:53:34.000+0000" } ], "maxResults": 12, "total": 12, "startAt": 0 } } }