{ "id": "121538", "key": "ALOY-858", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "11113", "key": "ALOY", "name": "Alloy", "projectCategory": { "id": "10400", "description": "Tools for developing applications", "name": "Tooling" } }, "fixVersions": [ { "id": "16692", "name": "Alloy 1.7.0", "archived": false, "released": true, "releaseDate": "2015-07-22" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2015-02-11T15:09:55.000+0000", "created": "2013-10-23T08:36:51.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "SupportTeam", "notable" ], "versions": [], "issuelinks": [ { "id": "39518", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "inwardIssue": { "id": "134070", "key": "TIMOB-17446", "fields": { "summary": "Build scripts should accept flags indicating the path to the platform and i18n folders to use for a build", "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": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "38396", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "127308", "key": "ALOY-967", "fields": { "summary": "Support i18n directory in widgets", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "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": "37177", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "129782", "key": "ALOY-997", "fields": { "summary": "Add theme support for i18n and platform directories", "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": "39387", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "133822", "key": "AC-1531", "fields": { "summary": "Alloy destroy i18n/ and platform/ app directories", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "50010", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "153499", "key": "ALOY-1336", "fields": { "summary": "Alloy Theme Fails to merge/overwrite the platform/iphone folder - specifically 'Settings.bundle' sub-folder", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "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 } } } }, { "id": "40210", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "133363", "key": "ALOY-1118", "fields": { "summary": "Allow theming of tiapp.xml e.g. through Alloy themes", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "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": "36091", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "128205", "key": "TIDOC-1602", "fields": { "summary": "Support i18n and platform folders with Alloy theming", "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": "50992", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "155594", "key": "TIMOB-20543", "fields": { "summary": "Build flags for custom platform and i18n folders should be reverted", "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": "None", "id": "6" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "39530", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "134098", "key": "ALOY-1107", "fields": { "summary": "Rollback Theme \"i18n\" and \"platform\" folders implementations", "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": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "updated": "2016-06-28T15:02:31.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "12326", "name": "XML", "description": "View XML and parsing" } ], "description": "I would like to be able to theme the {{i18n}} and {{platform}} folders so that for a white-label app I can keep all brand-specific stuff in the theme folder.\r\n\r\nh1. Use case\r\nFor example, the i18n strings would include brand-specific texts in multiple languages and the platform folder would include brand-specific Android themes and UrbanAirship configurations.\r\n\r\nh1. Implementation\r\nIt would be most ideal to not just overwrite the {{i18n}} files, but really merge the strings in the XML. For the platform folder we could just overwrite files, just like we do for {{assets}} and {{lib}} with the {{Resources}} folder.", "attachment": [ { "id": "49228", "filename": "ALOY858_updated.zip", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2014-06-24T05:12:59.000+0000", "size": 6188511, "mimeType": "application/zip" }, { "id": "49215", "filename": "ALOY858.zip", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-06-23T20:59:20.000+0000", "size": 6132624, "mimeType": "application/zip" }, { "id": "49180", "filename": "android.png", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2014-06-23T04:50:34.000+0000", "size": 102710, "mimeType": "image/png" } ], "flagged": false, "summary": "Alloy: Theme \"i18n\" and \"platform\" folders", "creator": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "subtasks": [], "reporter": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "environment": "Alloy 1.2.2.GA", "closedSprints": [ { "id": 147, "state": "closed", "name": "2014 Sprint 13 Alloy", "startDate": "2014-06-23T14:36:08.509Z", "endDate": "2014-07-04T00:00:00.000Z", "completeDate": "2014-07-07T16:06:44.759Z", "originBoardId": 124 }, { "id": 319, "state": "closed", "name": "2015 Sprint 03 Tooling", "startDate": "2015-01-31T03:56:17.033Z", "endDate": "2015-02-14T02:30:00.000Z", "completeDate": "2015-02-14T02:18:47.439Z", "originBoardId": 121 } ], "comment": { "comments": [ { "id": "276317", "author": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "body": "This would GREATLY improve things. The themes folders are a dream for this problem, but because they work so well it highlights the omission of i18n and platform folders. Whilst the theme folders can change the iOS splash screens, the Android versions (if dot nines) cannot be swapped as they are outside the scope of the app folder. Also any changes to custom android manifests are also not possible as they also sit in the platform folder. \n\nFor iOS the language specific app names cannot be changes, nor the strings associated because they are in the i18n folder.\n\nMerging the i18n files would be ideal as noted in the description - this would give the best outcome.\n\nHigh priority request from me.", "updateAuthor": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "created": "2013-10-23T09:02:39.000+0000", "updated": "2013-10-23T09:02:39.000+0000" }, { "id": "276344", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "I can do a PR for simple overwrite like assets if you can get it in 1.3 that way. Have it locally.\r\n\r\nMerge of i18n would take more work and maybe relates to extract-i18n being moved out of the core?", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2013-10-23T14:35:26.000+0000", "updated": "2013-10-23T14:35:26.000+0000" }, { "id": "276757", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Pull Request: https://github.com/appcelerator/alloy/pull/257\r\n\r\nTo test:\r\n# Run automated tests: jake app:run dir=testing/ALOY-858 platform=android\r\n# 0 of 2 specs should fail\r\n# Text should read: Hello ALOY-858!\r\n# Image should show the Appcelerator \"a\"\r\n# On Android, the app's icon should be the Appcelerator \"a\"", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2013-10-25T10:00:32.000+0000", "updated": "2013-10-25T10:04:34.000+0000" }, { "id": "276758", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Let's resolve this ticket without an intelligent i18n merge. I don't even know if that's desirable. I can open a new ticket to investigate that further.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2013-10-25T10:01:17.000+0000", "updated": "2013-10-25T10:01:17.000+0000" }, { "id": "276776", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Actually, merging i18n would be useless. Since you're writing from {{/app/themes/mytheme/i18n}} to {{/i18n}}, the next time you compile the {{/i18n}} folder would have the merged version.\r\n\r\nSo the PR is good as it is. Hope it can be merged for 1.3", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2013-10-25T12:38:54.000+0000", "updated": "2013-10-25T12:38:54.000+0000" }, { "id": "290760", "author": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "body": "Really looking forward to this feature, hoping you very talented people can get it sorted as soon as possible.", "updateAuthor": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "created": "2014-02-01T00:43:09.000+0000", "updated": "2014-02-01T00:43:09.000+0000" }, { "id": "296304", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "Passes all tests, appears to have no side effects. OK to merge.", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-03-10T15:36:46.000+0000", "updated": "2014-04-03T16:56:07.000+0000" }, { "id": "302903", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "We'll continue to track development here rather than on the other ticket.\r\n\r\nThe ultimate solution will likely involve using the CLI pre/post hooks to create temporary files to be included in the final app build steps.", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-04-29T17:28:50.000+0000", "updated": "2014-04-29T17:28:50.000+0000" }, { "id": "303316", "author": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "body": "I strongly believe that including the tiapp.xml file into those files that can be included via theme folders would add the final hurdle to these two extra folder.\r\n\r\nAssuming each theme was aimed to provide the same base app but to different clients or markets then the appid and if required things like the google map api values would also need to swap over. \r\n\r\nThe simplest solution would be to have tiapp.xml as one of the theme folder file and then that is used in place of the default tiapp.xml if found.\r\n\r\nI imagine many professional app houses have a need to manage several variations of one base app engine and having manual steps in the process lead to potentially dangerous miss-managed store releases.\r\n\r\nThe idea of the theme folders are superb; adding i18n and platform folder is a great move and championed by myself - but the tiapp.xml is the final hurdle to complete the process. ", "updateAuthor": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "created": "2014-05-02T17:38:45.000+0000", "updated": "2014-05-02T17:38:45.000+0000" }, { "id": "310403", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "body": "PR: https://github.com/appcelerator/alloy/pull/459\r\nTest app: https://github.com/feons/alloy/tree/ALOY-858/test/apps/testing/ALOY-858\r\n\r\nFunctional Test:\r\n\r\n 1. run the test app on android\r\n 2. the UI should look like the attach screenshot", "updateAuthor": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2014-06-23T04:50:34.000+0000", "updated": "2014-06-23T04:50:34.000+0000" }, { "id": "310520", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "The updated sample app attached includes a platform directory with custom Android theme. The app icon in the app's mytheme should override the app icon in the Android theme. ", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-06-23T20:59:20.000+0000", "updated": "2014-06-23T20:59:20.000+0000" }, { "id": "310619", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "body": "Some changes to the sample apps [~skypanther] uploaded: \r\n- modified the strings in app/i18n\r\n- updated the plugins/ti.alloy/hook/alloy.js file", "updateAuthor": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2014-06-24T05:12:59.000+0000", "updated": "2014-06-24T05:12:59.000+0000" }, { "id": "311677", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "PR merged", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-06-30T20:20:26.000+0000", "updated": "2014-06-30T20:20:26.000+0000" }, { "id": "316038", "author": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "updateAuthor": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "created": "2014-07-28T19:15:54.000+0000", "updated": "2014-07-28T19:15:54.000+0000" }, { "id": "316100", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "body": "[~farwayer] we made a copy of the {{i18n}} and {{platform}} folders and put them in {{build}} directory. So the {{i18n}} and {{platform}} folders you see in the {{build}} directory are the backups of the original folders from developer.\r\n\r\nTitanium looks for the {{i18n/platform}} folder at the top level, so to use the merged {{i18n/platform}} for the build process, we have to temporarily overwrite them.\r\nAfter the Titanium build process, the merged files in {{app/i18n}} & {{app/platform}} are deleted and developer's original files are copied back to the app folder.", "updateAuthor": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2014-07-29T05:28:57.000+0000", "updated": "2014-07-29T05:28:57.000+0000" }, { "id": "316116", "author": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "body": "[~fmiao], I understood purpose of this manipulations. But do you not think that it is dangerous? And it isn't potential risk. From time to time I catch situation when {{build/i18b}} or {{build/platform}} became empty for some reasons (error syncing to {{build}}?) and after back syncing alloy erase my files. Also I can imagine that there can be problems with parallel building. I think we need more clever and secure way.", "updateAuthor": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "created": "2014-07-29T11:02:16.000+0000", "updated": "2014-07-29T11:03:16.000+0000" }, { "id": "316125", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "Reopening for consideration of alternate ways to implement the desired functionality.", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-07-29T14:11:22.000+0000", "updated": "2014-07-29T14:11:22.000+0000" }, { "id": "316549", "author": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "body": "IMHO, It will be more correct if titanium will use {{build/i18n}} and {{build/platform}} directories while building. So at any moment we can clean {{build}} directory without any chance to get irreparable consequences.", "updateAuthor": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "created": "2014-07-31T23:30:56.000+0000", "updated": "2014-07-31T23:30:56.000+0000" }, { "id": "316696", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "I have opened TIMOB-17446 to resolve this at the build scripts level, which Alloy can then use to more safely and reliably theme these folders.", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-08-01T21:35:20.000+0000", "updated": "2014-08-01T21:35:20.000+0000" }, { "id": "316734", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Excellent idea Tim", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-08-02T07:30:08.000+0000", "updated": "2014-08-02T07:30:08.000+0000" }, { "id": "337571", "author": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "body": "Any news, movement or love coming towards this ticket?", "updateAuthor": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "created": "2014-12-29T18:38:27.000+0000", "updated": "2014-12-29T18:38:27.000+0000" }, { "id": "339485", "author": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "body": "Dear Sir - sometime ago I used to be a ticket - now I appear to be a distant memory.", "updateAuthor": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "created": "2015-01-16T20:28:53.000+0000", "updated": "2015-01-16T20:28:53.000+0000" }, { "id": "339498", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "TIMOB-17446 is scheduled for the next sprint. Assuming that goes smoothly, we should be able to resolve this ticket shortly thereafter. ", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2015-01-16T20:57:57.000+0000", "updated": "2015-01-16T20:57:57.000+0000" }, { "id": "341477", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "This ticket should be do-able now that TIMOB-17446 has been resolved. Though, it will add an SDK dependency which will need to be managed (backward compatibility for developers using older SDKs)", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2015-01-30T19:52:05.000+0000", "updated": "2015-01-30T19:52:05.000+0000" }, { "id": "342750", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "body": "PR: https://github.com/appcelerator/alloy/pull/662\r\nThis PR also takes care of ALOY-967 & ALOY-1059", "updateAuthor": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2015-02-10T06:34:45.000+0000", "updated": "2015-02-10T06:34:45.000+0000" }, { "id": "342907", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "Functional review steps:\r\n\r\n1. Install a 4.x version of the Titanium SDK and set it as your default\r\n2. Create a new Alloy app\r\n3. Copy the contents of the alloy_repo/test/apps/advanced/themes folder to my app\r\n4. Copy the alloy_repo/test/projects/HarnessTemplate/i18n folder to my app's project directory\r\n5. Modify the app's project_name/i18n/en/strings.xml to define a single key title the value of which is STOCK i18N\r\n6. Copy the i18n folder to each of the blue, green, and dark theme folders\r\n7. Modify each of theme's i18n/en/strings.xml files to set the title key equal to the theme's name\r\n8. Modify index.xml, changing the first label to \r\n9. Build the app -- the title bar label should match the active theme (green for iOS, dark for android, blue for others)\r\n10. Update the config.json file to set a different theme for your platform and build again. The title should match your theme.\r\n", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2015-02-11T15:08:33.000+0000", "updated": "2015-02-11T15:08:33.000+0000" }, { "id": "342908", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "FR and CR passed, merged", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2015-02-11T15:09:55.000+0000", "updated": "2015-02-11T15:09:55.000+0000" }, { "id": "389262", "author": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "body": "This is marked as closed but there is still a big problem with it.\r\n\r\nThese two root folders that are auto-generated during the build process do not get deleted during a project Clean.\r\n\r\n* project/platform\r\n* project/i18n\r\n\r\nUnless these two folders are manually deleted their contents do not update into the next app build.\r\n\r\nAnyone know of a ticket showing that the deletion of these two folders will be included in an future update?\r\n\r\nI know there has been discussion over how it is achieved as my suggestion was the first tried, then rejected, then realised it was the best solution at the time. However since then it was suggested these auto-generated folders be moved into the project/build itself. Sounds like a great idea, but does not doe this in Alloy 1.9.0, Ti CLI 5.0.9, Ti SDK 5.3.0.", "updateAuthor": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "created": "2016-06-28T15:02:31.000+0000", "updated": "2016-06-28T15:02:31.000+0000" } ], "maxResults": 29, "total": 29, "startAt": 0 } } }