{ "id": "172333", "key": "TIMOB-27083", "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": [], "resolution": { "id": "10100", "description": "This issue won't be actioned.", "name": "Won't Do" }, "resolutiondate": "2019-05-21T21:49:34.000+0000", "created": "2018-09-21T19:42:43.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "activity", "andoid", "bluetooth", "engTriage", "memory", "reset" ], "versions": [], "issuelinks": [ { "id": "57133", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "172929", "key": "TIMOB-26777", "fields": { "summary": "Android: Window UI disappears when connecting/disconnecting keyboard", "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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2019-05-21T21:49:34.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": "Build this app onto an android device. Connect a bluetooth keyboard. Open the app. Press the blue button a few times. Disconnect the scanner while the app is counting. The app resets and picks back up where it left off.\r\n\r\nThis is a problem because if I am running sql queries while the app resets it can continue to run the backbone functions without variables/Globals defined yet resulting in red screens.\r\n\r\nI am restarting the app. Why are variables still defined? Why are functions still running?\r\n\r\nIn this app some variables are keeping their values, but in a larger scale app not all variables are redefined on Resume.\r\n\r\nI have added a testString variable that is defined initially as 'not Clicked', but redefined as 'clicked' once the runQueries function runs. You can see this in the second set of logs. If you press Clear after a reset it outputs 'not Clicked' and if you press it before the restart it says 'clicked'.\r\n\r\nThis makes it very difficult when using an app that has bluetooth devices connected since it is impossible to know which variables will be defined correctly after a bluetooth reset. Now if you could fix the app from restarting when a bluetooth scanner is connected that would be great, but I think that's just an android problem.\r\n\r\nLog:\r\n\r\n{code:java}\r\n09-21 14:46:41.950: E/TiAPI(8748): currentCount: 58/150\r\n09-21 14:46:42.017: E/TiAPI(8748): currentCount: 59/150\r\n09-21 14:46:42.248: E/TiAPI(8748): currentCount: 60/150\r\n09-21 14:46:42.292: E/TiAPI(8748): currentCount: 61/150\r\n09-21 14:46:42.602: E/TiAPI(8748): currentCount: 62/150\r\n09-21 14:46:42.602: E/TiAPI(8748): currentCount: 63/150\r\n09-21 14:46:42.951: E/TiAPI(8748): currentCount: 64/150\r\n09-21 14:46:43.017: E/TiAPI(8748): currentCount: 65/150\r\n09-21 14:46:43.236: E/TiAPI(8748): *-*-*-*-*-*-* PAUSE BY OS *-*-*-*-*-*-*\r\n09-21 14:46:43.246: E/TiAPI(8748): *-*-*-*-*-*-* STOP BY OS *-*-*-*-*-*-*\r\n09-21 14:46:43.247: E/TiAPI(8748): *-*-*-*-*-*-* DESTROY BY OS *-*-*-*-*-*-*\r\n09-21 14:46:43.247: E/TiAPI(8748): Restart Start\r\n09-21 14:46:43.348: E/TiAPI(8748): Restart End\r\n09-21 14:46:43.348: E/TiAPI(8748): currentCount: 66/150\r\n09-21 14:46:43.348: E/TiAPI(8748): currentCount: 67/150\r\n09-21 14:46:43.601: E/TiAPI(8748): currentCount: 68/150\r\n09-21 14:46:43.601: E/TiAPI(8748): currentCount: 69/150\r\n09-21 14:46:43.952: E/TiAPI(8748): currentCount: 70/150\r\n09-21 14:46:44.017: E/TiAPI(8748): currentCount: 71/150\r\n09-21 14:46:44.029: E/TiAPI(8748): *-*-*-*-*-*-* WINDOW OPENED *-*-*-*-*-*-*\r\n09-21 14:46:44.029: I/TiAPI(8748): OS_ANDROID\r\n09-21 14:46:44.033: I/TiAPI(8748): END OS_ANDROID\r\n09-21 14:46:44.033: E/TiAPI(8748): *-*-*-*-*-*-* START BY OS *-*-*-*-*-*-*\r\n09-21 14:46:44.041: E/TiAPI(8748): *-*-*-*-*-*-* RESUME BY OS *-*-*-*-*-*-*\r\n09-21 14:46:44.185: I/TiAPI(8748): ACS Login Results for environment `development`:\r\n09-21 14:46:44.185: I/TiAPI(8748): [object Object]\r\n09-21 14:46:44.349: E/TiAPI(8748): currentCount: 72/150\r\n09-21 14:46:44.349: E/TiAPI(8748): currentCount: 73/150\r\n09-21 14:46:44.602: E/TiAPI(8748): currentCount: 74/150\r\n09-21 14:46:44.602: E/TiAPI(8748): currentCount: 75/150\r\n09-21 14:46:44.954: E/TiAPI(8748): currentCount: 76/150\r\n09-21 14:46:45.018: E/TiAPI(8748): currentCount: 77/150\r\n09-21 14:46:45.350: E/TiAPI(8748): currentCount: 78/150\r\n09-21 14:46:45.350: E/TiAPI(8748): currentCount: 79/150\r\n09-21 14:46:45.602: E/TiAPI(8748): currentCount: 80/150\r\n{code}\r\n\r\nanother:\r\n\r\n{code:java}\r\n09-21 14:58:55.394: I/TiAPI(11235): count: 175\r\n09-21 14:58:55.471: E/TiAPI(11235): currentCount: 129/175\r\n09-21 14:58:55.739: E/TiAPI(11235): currentCount: 130/175\r\n09-21 14:58:55.773: E/TiAPI(11235): currentCount: 131/175\r\n09-21 14:58:55.835: E/TiAPI(11235): currentCount: 132/175\r\n09-21 14:58:55.900: E/TiAPI(11235): *-*-*-*-*-*-* PAUSE BY OS *-*-*-*-*-*-*\r\n09-21 14:58:55.906: E/TiAPI(11235): *-*-*-*-*-*-* STOP BY OS *-*-*-*-*-*-*\r\n09-21 14:58:55.909: E/TiAPI(11235): *-*-*-*-*-*-* DESTROY BY OS *-*-*-*-*-*-*\r\n09-21 14:58:55.909: E/TiAPI(11235): Restart Start\r\n09-21 14:58:56.007: E/TiAPI(11235): Restart End\r\n09-21 14:58:56.134: E/TiAPI(11235): currentCount: 133/175\r\n09-21 14:58:56.139: E/TiAPI(11235): currentCount: 134/175\r\n09-21 14:58:56.609: E/TiAPI(11235): currentCount: 135/175\r\n09-21 14:58:56.609: E/TiAPI(11235): currentCount: 136/175\r\n09-21 14:58:56.739: E/TiAPI(11235): currentCount: 137/175\r\n09-21 14:58:56.778: E/TiAPI(11235): currentCount: 138/175\r\n09-21 14:58:56.786: E/TiAPI(11235): *-*-*-*-*-*-* WINDOW OPENED *-*-*-*-*-*-*\r\n09-21 14:58:56.786: I/TiAPI(11235): OS_ANDROID\r\n09-21 14:58:56.790: I/TiAPI(11235): END OS_ANDROID\r\n09-21 14:58:56.791: E/TiAPI(11235): *-*-*-*-*-*-* START BY OS *-*-*-*-*-*-*\r\n09-21 14:58:56.796: E/TiAPI(11235): *-*-*-*-*-*-* RESUME BY OS *-*-*-*-*-*-*\r\n09-21 14:58:56.835: E/TiAPI(11235): currentCount: 139/175\r\n09-21 14:58:57.097: I/TiAPI(11235): ACS Login Results for environment `development`:\r\n09-21 14:58:57.097: I/TiAPI(11235): [object Object]\r\n09-21 14:58:57.135: E/TiAPI(11235): currentCount: 140/175\r\n09-21 14:58:57.140: E/TiAPI(11235): currentCount: 141/175\r\n09-21 14:58:57.609: E/TiAPI(11235): currentCount: 142/175\r\n09-21 14:58:57.609: E/TiAPI(11235): currentCount: 143/175\r\n09-21 14:58:57.740: E/TiAPI(11235): currentCount: 144/175\r\n09-21 14:58:57.777: E/TiAPI(11235): currentCount: 145/175\r\n09-21 14:58:57.836: E/TiAPI(11235): currentCount: 146/175\r\n09-21 14:58:58.134: E/TiAPI(11235): currentCount: 147/175\r\n09-21 14:58:58.141: E/TiAPI(11235): currentCount: 148/175\r\n09-21 14:58:58.610: E/TiAPI(11235): currentCount: 149/175\r\n09-21 14:58:58.610: E/TiAPI(11235): currentCount: 150/175\r\n09-21 14:58:58.740: E/TiAPI(11235): currentCount: 151/175\r\n09-21 14:58:58.778: E/TiAPI(11235): currentCount: 152/175\r\n09-21 14:58:58.835: E/TiAPI(11235): currentCount: 153/175\r\n09-21 14:58:59.134: E/TiAPI(11235): currentCount: 154/175\r\n09-21 14:58:59.142: E/TiAPI(11235): currentCount: 155/175\r\n09-21 14:58:59.612: E/TiAPI(11235): currentCount: 156/175\r\n09-21 14:58:59.612: E/TiAPI(11235): currentCount: 157/175\r\n09-21 14:58:59.741: E/TiAPI(11235): currentCount: 158/175\r\n09-21 14:58:59.777: E/TiAPI(11235): currentCount: 159/175\r\n09-21 14:58:59.836: E/TiAPI(11235): currentCount: 160/175\r\n09-21 14:59:00.135: E/TiAPI(11235): currentCount: 161/175\r\n09-21 14:59:00.141: E/TiAPI(11235): currentCount: 162/175\r\n09-21 14:59:00.611: E/TiAPI(11235): currentCount: 163/175\r\n09-21 14:59:00.611: E/TiAPI(11235): currentCount: 164/175\r\n09-21 14:59:00.741: E/TiAPI(11235): currentCount: 165/175\r\n09-21 14:59:00.778: E/TiAPI(11235): currentCount: 166/175\r\n09-21 14:59:00.835: E/TiAPI(11235): currentCount: 167/175\r\n09-21 14:59:01.135: E/TiAPI(11235): currentCount: 168/175\r\n09-21 14:59:01.142: E/TiAPI(11235): currentCount: 169/175\r\n09-21 14:59:01.613: E/TiAPI(11235): currentCount: 170/175\r\n09-21 14:59:01.613: E/TiAPI(11235): currentCount: 171/175\r\n09-21 14:59:01.743: E/TiAPI(11235): currentCount: 172/175\r\n09-21 14:59:01.777: E/TiAPI(11235): currentCount: 173/175\r\n09-21 14:59:01.836: E/TiAPI(11235): currentCount: 174/175\r\n09-21 14:59:02.137: E/TiAPI(11235): currentCount: 175/175\r\n09-21 14:59:04.849: I/TiAPI(11235): testString: not Clicked\r\n{code}\r\n\r\n", "attachment": [ { "id": "65638", "filename": "alloy.js", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-09-21T19:41:10.000+0000", "size": 1696, "mimeType": "text/javascript" }, { "id": "65636", "filename": "app.tss", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-09-21T19:41:10.000+0000", "size": 780, "mimeType": "application/octet-stream" }, { "id": "65639", "filename": "index.js", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-09-21T20:02:46.000+0000", "size": 2640, "mimeType": "text/javascript" }, { "id": "65635", "filename": "index.tss", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-09-21T19:41:10.000+0000", "size": 155, "mimeType": "application/octet-stream" }, { "id": "65634", "filename": "index.xml", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-09-21T19:41:10.000+0000", "size": 386, "mimeType": "text/xml" }, { "id": "65633", "filename": "tiapp.xml", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-09-21T19:41:10.000+0000", "size": 3650, "mimeType": "text/xml" } ], "flagged": false, "summary": "[Android] Continues functions after Ti.App._restart()", "creator": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Android\r\n7.1.0 & 7.5.0\r\nrun-on-main-thread = false\r\nbluetooth connecting/disconnecting", "closedSprints": [ { "id": 1136, "state": "closed", "name": "2019 Sprint 11", "startDate": "2019-05-18T17:39:52.830Z", "endDate": "2019-05-31T17:39:00.000Z", "completeDate": "2019-06-04T21:37:11.485Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "444018", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello, Please test on SDK 7.5.0.GA and let us know if the issue still there. Thanks.", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2018-11-28T22:31:14.000+0000", "updated": "2018-11-28T22:31:14.000+0000" }, { "id": "444056", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Not fixed with 7.5.0", "updateAuthor": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-11-29T18:23:17.000+0000", "updated": "2018-11-29T18:23:17.000+0000" }, { "id": "444903", "author": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Hello,\r\nJust passing as update here. I thought I’d check in to see how things are progressing.\r\n Please let us know your current status of the issue.\r\n", "updateAuthor": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-01-02T05:02:01.000+0000", "updated": "2019-01-02T05:02:01.000+0000" }, { "id": "444919", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tested this on 7.1.0 and 7.5.0 again with run-on-main-thread = false and this is still an issue. If y'all have any update on this let me know.", "updateAuthor": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-01-02T14:43:55.000+0000", "updated": "2019-01-02T14:43:55.000+0000" }, { "id": "445735", "author": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Hello,\r\nJust wanted to circle back here. Still are you experiencing this issue? Can you please check, if the issue also reproducible without using a Bluetooth keyboard on your end?", "updateAuthor": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-01-29T07:15:42.000+0000", "updated": "2019-01-29T07:15:42.000+0000" }, { "id": "445738", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Still reproducible w/ the bluetooth keyboard. You will notice that in the OnDestroy listener I call Ti.App_restart() because on android it would restart anyway and this is cleaner than the dirty restart a bluetooth connect/disconnect forces. From what I understand is that on android the bluetooth connect and disconnect forces the app to restart. ", "updateAuthor": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-01-29T11:40:59.000+0000", "updated": "2019-01-29T11:40:59.000+0000" }, { "id": "445749", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Can someone summarize what the issue is in 1 sentence please?\r\n\r\nIs the issue that the app UI disappears when connecting/disconnecting a bluetooth keyboard?\r\n\r\nIf so, then it sounds like the \"AndroidManifest.xml\" main {{}} element's {{android:configChanges}} is missing the \"keyboard\" setting. This will override the Android OS' default behavior of destroying and recreating the activity when a keyboard has been attached/detached or if a device's slide-out keyboard has been slid-out/in.\r\nhttps://developer.android.com/guide/topics/manifest/activity-element#config\r\n\r\n[~josh.mocek], try adding the following to your \"tiapp.xml\". Note that your app's main activity name is based on your app's name, which for the attached test project is \"runOnMainThread\". So, you use the app's name, capitalize the first letter and lower case all other letters, and then append \"Activity\" to it.\r\n{code:javascript}\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n{code}\r\n\r\nNote that I don't have a bluetooth keyboard on me at the moment to confirm the issue, but this is how I remember it working on Google's end in the past. The Android OS by default will destroy, restart an activity, and then reload its UI from XML when various things happen such as orientation change, attaching/detaching a keyboard, etc. But for apps that create the UI dynamically via code (such as Titanium), there is no XML to reload the UI from. So, these \"configChanges\" types in the manifest need to be overridden to prevent this behavior.\r\n", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-01-29T18:58:56.000+0000", "updated": "2019-01-29T23:07:37.000+0000" }, { "id": "445751", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I've obtained a bluetooth keyboard and was able to reproduce the issue. What I've stated above is definitely the issue and I've confirmed that the above \"tiapp.xml\" change does work-around the issue.\r\n\r\nI've written up a separate bug report for this issue here: [TIMOB-26777]\r\nWe'll look into updating our build system to automatically add the \"keyboard\" setting into the \"AndroidManifest.xml\" in the future.\r\n\r\nThanks for bringing this issue to our attention.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-01-29T23:09:36.000+0000", "updated": "2019-01-29T23:09:36.000+0000" }, { "id": "445773", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~josh.mocek], Can you follow up here? Did the workaround solve the issue you were having? Let us know. Thanks.", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2019-01-30T17:43:56.000+0000", "updated": "2019-01-30T17:43:56.000+0000" }, { "id": "446015", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "body": "It still rebuilds, but now instead of calling:\r\ndestroy\r\nwindow open\r\nstart\r\nresume\r\n\r\nit rebuilds and just calls:\r\nwindow open\r\nstart\r\nresume", "updateAuthor": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-02-12T16:04:11.000+0000", "updated": "2019-02-12T16:04:11.000+0000" }, { "id": "446018", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~josh.mocek], Please post a comment in the TIMOB ticket for our engineers to follow up and updating any other requirements necessary. Thanks.", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2019-02-12T16:50:48.000+0000", "updated": "2019-02-12T16:50:48.000+0000" }, { "id": "446023", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-02-12T19:01:49.000+0000", "updated": "2019-02-12T19:01:49.000+0000" }, { "id": "446028", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Titanium's {{_restart()}} function is not a public API. We use it internally for LiveView to restart the app.\r\n\r\nAnd yes, the {{_restart()}} function will not recreate the root activity window. That is by design, because closing it would kick you out to the device's homescreen. Instead, it closes all child activity windows, brings you back to the root activity which shows the splash screen, and then restarts the JavaScript runtime. This means you will not get an activity destroy event from the root activity window. That is by design and is working correctly. We're not changing this behavior.\r\n\r\nThe XML settings I posted above resolves an issue where connecting/disconnecting a keyboard will destroy and re-create the current activity, causing all UI creating by Titanium to disappear. That's a legit issue you've found.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-02-12T21:44:56.000+0000", "updated": "2019-02-12T21:44:56.000+0000" }, { "id": "446056", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "body": "After adding that XML code I disconnected the scanner and it works. When I put that into our app it causes it to crash. Not sure why yet, but I'm going to do some more tests.\r\n\r\nWithout the XML:\r\nI did notice that on 7.5.0 run-on-main-thread = false when the scanner disconnects it calls:\r\ndestroy\r\nstop\r\nwindow open\r\nstart\r\nresume\r\nwhen run-on-main-thread = true it only runs:\r\nwindow open\r\nstart\r\nresume\r\n\r\nShould it not still be running destroy and stop when run-on-main-thread = true? Should I make a new ticket?", "updateAuthor": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-02-13T21:43:21.000+0000", "updated": "2019-02-13T21:43:21.000+0000" }, { "id": "446844", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The {{_restart()}} function is an undocumented feature that's intended for Titanium's LiveView feature. It's not intended to be used by app developers. We don't plan on making any changes to it.\r\n\r\nMy understanding is that you're using the {{_restart()}} function to work-around the bluetooth keyboard issue. If you add the XML configChanges \"keyboard\" setting as shown above, then you'll no longer need to implement your restart work-around.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-03-14T18:45:17.000+0000", "updated": "2019-03-14T18:45:17.000+0000" }, { "id": "447011", "author": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~josh.mocek],\r\nWe haven't heard back from you since our last response. I thought I’d check in to see how things are progressing with your need? \r\n\r\nPlease let us know if the problem persists. \r\n\r\nHave a great day.\r\nThanks", "updateAuthor": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-03-20T09:25:49.000+0000", "updated": "2019-03-20T09:25:49.000+0000" }, { "id": "447117", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "body": "When I put that code in the app we have in production and connect a bluetooth keyboard it doesn't restart, but the app freezes then crashes with no error.", "updateAuthor": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-03-25T13:41:50.000+0000", "updated": "2019-03-25T13:41:50.000+0000" }, { "id": "447145", "author": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~josh.mocek],\r\n\r\nDid you apply the work around suggested by Josua Quick?", "updateAuthor": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-03-26T09:31:33.000+0000", "updated": "2019-03-26T09:31:33.000+0000" }, { "id": "447159", "author": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Yes, that was what caused the freeze and crash", "updateAuthor": { "name": "josh.mocek", "key": "josh.mocek", "displayName": "josh.mocek", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-03-26T13:50:00.000+0000", "updated": "2019-03-26T13:50:00.000+0000" }, { "id": "448132", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~josh.mocek], Whats the status of your issue? [~jquick], What's can be done with the issue? ", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2019-05-01T22:34:08.000+0000", "updated": "2019-05-01T22:34:08.000+0000" }, { "id": "448573", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hello [~josh.mocek] - We have the ticket created for TIMOB-26777, and this can be used to track the bluetooth keyboard connection issue. This will be out in SDK 8.0.2 which should be our next release. I will close this ticket since you shouldn't need the restart functionality and since that API is intended only for live view use. \r\n\r\nIf you'd like we can let you know when we have a pre-release candidate of 8.0.2 for you to check the function with. This should be within days. \r\n\r\nIf you disagree with our course of action, please let me know.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-05-21T21:45:14.000+0000", "updated": "2019-05-21T21:45:14.000+0000" } ], "maxResults": 30, "total": 30, "startAt": 0 } } }