{ "id": "152344", "key": "TIMOB-19797", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "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": [], "resolution": null, "resolutiondate": null, "created": "2015-10-26T15:33:43.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "cb-tooling", "titaniumlib" ], "versions": [], "issuelinks": [ { "id": "49461", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "152256", "key": "TIMOB-19765", "fields": { "summary": "Android: Support running on main/UI thread", "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": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "58212", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "171283", "key": "DAEMON-243", "fields": { "summary": "Create titaniumlib with tiapp.xml parsing, sdk and module detection logic", "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": "Critical", "id": "1" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2020-03-06T21:35:41.000+0000", "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" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" }, { "id": "13103", "name": "CLI", "description": "Node-based command line interface" }, { "id": "13715", "name": "Hyperloop", "description": "Hyperloop project" }, { "id": "10206", "name": "iOS", "description": "iOS Platform" }, { "id": "10207", "name": "Tooling" }, { "id": "12642", "name": "Windows", "description": "Windows authoring support" } ], "description": "Currently the CLi's XML parsing of tiapp.xml only handles known tags. We've used a series of generic properties tags before to get properties into the runtime. For platform-specific ones, we've just used prefix names of \"ti.android.\". We've started to move to preferring platform-specific properties to be under the root tag for a a platform in the xml:\r\n{code:xml}\r\n\r\n true\r\n \r\n...\r\n\r\n{code}\r\n\r\nHowever, we have no means of accessing those values at runtime, and we need to handle the tags specially in CLi code for each platform.\r\n\r\nIdeally we'd be able to have some straight XML->JSON serialization for access in the CLI code from each platform so we could do:\r\n{code:javascript}\r\nvar runOnMainThread = tiapp.ios[run-on-main-thread]\r\n{code}\r\n\r\nAnd we need some way to access this data at runtime. Maybe hack the properties into the properties file/json to generate \"properties\" with namespaced keys, like \"tiapp.ios.run-on-main-thread\"?", "attachment": [], "flagged": false, "summary": "CLI: Support accessing XML values from tiapp.xml's platform-specific sections at runtime.", "creator": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "environment": null, "comment": { "comments": [ { "id": "367813", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "We should use properties for things like \"run-on-main-thread\". We already have a mechanism for injecting properties into an app. All we would need to do is look for properties inside the platform specific tags and have the platform build commands mix the global and platform-specific properties together.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2015-10-26T15:56:20.000+0000", "updated": "2015-10-26T15:56:20.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }