{ "id": "163223", "key": "TIMOB-23907", "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": "18246", "name": "Hyperloop 2.0.1", "archived": false, "released": true, "releaseDate": "2017-03-17" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-03-03T14:02:57.000+0000", "created": "2016-09-15T06:45:42.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [], "versions": [], "issuelinks": [ { "id": "54499", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "164326", "key": "TIMOB-24186", "fields": { "summary": "Hyperloop: iOS - Allow Obj-C categories in generated metabase", "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": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-03-16T13:11:47.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": [], "description": "The class SFSpeechRecognitionResult will be detected but does not include any metadata info about its properties or methods. This is due to the class being forward declared with {{@class}} and then being used as a block argument which is an argument to another method.\r\n\r\nSFSpeechRecognizer.h:\r\n{code:objective-c}\r\n- (SFSpeechRecognitionTask *)recognitionTaskWithRequest:(SFSpeechRecognitionRequest *)request resultHandler:(void (^)(SFSpeechRecognitionResult * __nullable result, NSError * __nullable error))resultHandler;\r\n{code}\r\n\r\nThis probably applies to other Classes that are also referenced like this.", "attachment": [ { "id": "61669", "filename": "one_more_thing.mp3", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-02-23T14:56:48.000+0000", "size": 220472, "mimeType": "audio/mp3" } ], "flagged": false, "summary": "Hyperloop: Incomplete Metadata for forward declarations", "creator": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "comment": { "comments": [ { "id": "407741", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (master): https://github.com/appcelerator/hyperloop.next/pull/125\r\nPR (2_0_X): https://github.com/appcelerator/hyperloop.next/pull/126\r\n\r\n*Testing steps*\r\n1. Create a new Hyperloop enabled classic app\r\n2. Add a usage description to the plist section in tiapp.xml\r\n{code}\r\nNSSpeechRecognitionUsageDescription\r\nUse speech recognition\r\n{code}\r\n3. Paste the following code in your app.js\r\n{code:js}\r\nvar SFSpeechRecognizer = require(\"Speech/SFSpeechRecognizer\");\r\nvar SFSpeechURLRecognitionRequest = require(\"Speech/SFSpeechURLRecognitionRequest\");\r\nvar NSBundle = require('Foundation/NSBundle');\r\nvar NSLocale = require(\"Foundation/NSLocale\");\r\nvar NSURL = require('Foundation/NSURL');\r\nvar speechRecognizer = SFSpeechRecognizer.alloc().initWithLocale(NSLocale.alloc().initWithLocaleIdentifier(\"en_US\"));\r\nif (speechRecognizer.isAvailable()) {\r\n var soundPath = NSBundle.mainBundle.pathForResourceOfType(\"one_more_thing\", \"mp3\");\r\n var soundURL = NSURL.fileURLWithPath(soundPath);\r\n var request = SFSpeechURLRecognitionRequest.alloc().initWithURL(soundURL);\r\n speechRecognizer.recognitionTaskWithRequestResultHandler(request, function(result, error) {\r\n Ti.API.debug(result.bestTranscription.formattedString);\r\n Ti.API.debug(result.isFinal());\r\n });\r\n} else {\r\n Ti.API.info('Speech recognizer not available');\r\n}\r\n{code}\r\n4. Save the attached audio file under {{Resources/iphone}}\r\n5. Build and launch the app on a device. It should log the transcriptions process.", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-02-23T14:55:42.000+0000", "updated": "2017-02-23T14:59:08.000+0000" }, { "id": "412783", "author": { "name": "htbryant", "key": "htbryant", "displayName": "Harry Bryant", "active": true, "timeZone": "Europe/London" }, "body": "Verified as fixed, testing with both Hyperloop module versions 2.0.1 & 2.1.0, the demo code provided above now transcribes audio files correctly.\r\n\r\nTested On:\r\nHyperloop Module (2.0.1 / 2.1.0)\r\nCocoaPods 1.2.0\r\niPhone 7 10.2 Device\r\nMac OS Sierra (10.12.2)\r\nTi SDK: 6.0.3.v20170314141715\r\nAppc NPM: 4.2.9-1\r\nApp CLI: 6.1.0\r\nXcode 8.2.1\r\nNode v4.6.0\r\n\r\n*Closing ticket.*\r\n\r\n", "updateAuthor": { "name": "htbryant", "key": "htbryant", "displayName": "Harry Bryant", "active": true, "timeZone": "Europe/London" }, "created": "2017-03-16T13:11:32.000+0000", "updated": "2017-03-16T13:11:32.000+0000" } ], "maxResults": 2, "total": 2, "startAt": 0 } } }