{ "id": "60748", "key": "TIMOB-116", "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": "11213", "name": "Release 0.7.0", "archived": true, "released": true, "releaseDate": "2009-10-05" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2011-04-17T01:52:02.000+0000", "created": "2011-04-15T02:23:51.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "android", "defect" ], "versions": [], "issuelinks": [], "assignee": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2011-04-17T01:52:02.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": "{html}

The shake algorithm in Android has always been difficult or too\neasy to trigger depending on the amount of motion of the device.\n\nIssue with event listener for \"shake\" gesture on Android.

\n

A couple of notes regarding listeners.

\n

1) When the activity (window) is paused via the Android onPause\nmethod, the hardware listeners are disconnected.
\n2) If you press end and put your phone to sleep, onPause will be\ncalled if your app was active.
\n3) If you press home, answer a call, or a notification, onPause is\ncalled.
\n4) If another activity/window completely covers your application\nonPause is called.
\n5) If your app was active, you press end to put it to sleep, then\nyou cause the device to wake even if you don't unlock the display,\nonResume will be called and the hardware listeners restored.

\n

What this means is that if you put the phone in your pocket,\npurse, or just hit a hardware key. Your application is resumed.

{html}", "attachment": [], "flagged": false, "summary": "Shake Gesture unstable (Android)", "creator": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "122778", "author": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

(from [d4aaf77edad820df2831af82ed97e03e45bf7528])\n[#116\nstate:resolved] Changed shake gesture to respond to shake motion\nmore reliably. Added three new system properties for tuning:

\n

1) ti.android.shake.factor - double - default 1.3d - used to\nbuild threshold value for accelerometer changes that should be\nconsidered a potential shake

\n

2) ti.android.shake.quiet.milliseconds - int - default 500 - the\nnumber of milliseconds of no shaking after shaking has started that\nwill cause the shake event to fire.

\n

3) ti.android.shake.active.milliseconds - int - default 1000 -\nthe number of milliseconds that shaking must occur before allowing\nshake event to fire. The quiet period must elapse before this value\nis considered.

\n

These properties may be set in your tiapp.xml to tune the shake\nalgorithm on android devices
\n\nhttp://github.com/appcelerator/titanium_mobile/commit/d4aaf77edad82...

{html}", "updateAuthor": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:23:51.000+0000", "updated": "2011-04-15T02:23:51.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }