{ "id": "62959", "key": "TIMOB-2327", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "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": "11238", "name": "Release 1.6.0 M05", "archived": true, "released": true, "releaseDate": "2011-01-17" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2011-04-17T01:58:46.000+0000", "created": "2011-04-15T03:16:48.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "android", "feature", "release-1.6.0", "rplist" ], "versions": [], "issuelinks": [ { "id": "13460", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "81604", "key": "TIMOB-5752", "fields": { "summary": "Android: Ti.Platform.id not unique", "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": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2011-10-14T08:25:21.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}

There is a bug in Froyo devices and we should probably just\ngenerate an ID for each app on device and give up on relying on the\nplatform ID.

{html}", "attachment": [], "flagged": false, "summary": "Android: Froyo ID is Non-Unique", "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": "128172", "author": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

If device returns platform id 9774d56d682e549c\ncreate a new UUID and put it in the analytics db. Google\ncode bug 10603

{html}", "updateAuthor": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:48.000+0000", "updated": "2011-04-15T03:16:48.000+0000" }, { "id": "128173", "author": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

This is a little more involved than originally anticipated.\nBasically we need to detect any change in ID and report both the\nprevious and new platform ID. We have to take into account that a\nvendor changes the platform id for whatever reason. For example, if\nmotorola pushes a patch to this problem to generate a \"correct\" ID.\nIf a platform doesn't have an ID and we generate a UUID, we need to\ndetect an ID change if the manufacturer begins shipping an updated\nOS where the ID now exists.

{html}", "updateAuthor": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:48.000+0000", "updated": "2011-04-15T03:16:48.000+0000" }, { "id": "128174", "author": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Moving to M05 need to test with Nika

{html}", "updateAuthor": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:49.000+0000", "updated": "2011-04-15T03:16:49.000+0000" }, { "id": "128175", "author": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

We'll talk about this one in MV. We need to work with Nika to\nconfirm.

{html}", "updateAuthor": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:50.000+0000", "updated": "2011-04-15T03:16:50.000+0000" }, { "id": "128176", "author": { "name": "opiecyrus", "key": "opiecyrus", "displayName": "Opie Cyrus", "active": true, "timeZone": "America/Chicago" }, "body": "{html}

(from [d25452b03140567d7855ce5d196c2ecffbb9f81d])\n[#2327 state:fixed-in-qa] replace bad machine ids\non android

\n

Changed initialize method in TiPlatformHelper to check for bad\nIDs and replace them with a generated ID. Made change to App.java\ntemplate in order to invoke the initialize method from the onCreate\nonce the AppInfo has been loaded. Made change to DatabaseHelper to\nsupport update calls. Modified analytics enroll message to include\nthe previous machine ID so the change from old to new ids can be\ntracked.
\n\nhttps://github.com/appcelerator/titanium_mobile/commit/d25452b03140...

{html}", "updateAuthor": { "name": "opiecyrus", "key": "opiecyrus", "displayName": "Opie Cyrus", "active": true, "timeZone": "America/Chicago" }, "created": "2011-04-15T03:16:50.000+0000", "updated": "2011-04-15T03:16:50.000+0000" }, { "id": "128177", "author": { "name": "opiecyrus", "key": "opiecyrus", "displayName": "Opie Cyrus", "active": true, "timeZone": "America/Chicago" }, "body": "{html}

Verified with Nika. Difficult to automate so including the\nenroll events received by Nika for the 4 test cases.

\n

\"

\n
\nTEST CASE 1 (invalid-invalid)
\n
\n\n\n
\n-rw-r--r-- 1 apache apache 467 Jan 13 17:04 13/ab/ti.start.ab6fb623-1ba1-4daa-b924-06f6ca0c5a72:f651f14b-a7c4-4ee0-8bfb-bc462f5cb970\n-rw-r--r-- 1 apache apache 587 Jan 13 17:04 13/fb/ti.enroll.fbbe4283-6652-4b2b-a4c4-6f3e640d0d8d:f651f14b-a7c4-4ee0-8bfb-bc462f5cb970\n[Thu Jan 13 Net1 /event_store/d/mobile/2011/01/13] vim 13/fb/ti.enroll.fbbe4283-6652-4b2b-a4c4-6f3e640d0d8d\\:f651f14b-a7c4-4ee0-8bfb-bc462f5cb970
\n
\n\n\n
\n{\"id\":\"fbbe4283-6652-4b2b-a4c4-6f3e640d0d8d:f651f14b-a7c4-4ee0-8bfb-bc462f5cb970\",\"sid\":\"356f69cd-1ea0-49f6-a1f5-824c4dde5bb3\",\"ts\":\"2011-01-14T01:04:11.347-0800\",\"event\":\"ti.enroll\",\"data\":{\"platform\":\"android\",\"osarch\":\"ARM926EJ-S rev 5 (v5l)\",\"model\":\"google_sdk\",\"mac_addr\":\"f651f14b-a7c4-4ee0-8bfb-bc462f5cb970\",\"previous_mid\":\"9774d56d682e549c\",\"oscpu\":1,\"ostype\":\"32bit\",\"deploytype\":\"development\",\"app_id\":\"com.appcelerator.base\",\"app_name\":\"base\"},\"seq\":63,\"mid\":\"f651f14b-a7c4-4ee0-8bfb-bc462f5cb970\",\"ver\":\"2\",\"type\":\"ti.enroll\",\"aguid\":\"c2c038c9-4b73-45cd-b150-14664c756986\"}
\n
\n\n\n
\nTEST CASE 2 (invalid-valid)
\n
\n\n\n
\n-rw-r--r-- 1 apache apache 433 Jan 13 17:17 13/55/ti.start.55b7fc69-b1e8-4d76-acf7-f25512ab0e2e:platformid123456789\n-rw-r--r-- 1 apache apache 556 Jan 13 17:17 13/9e/ti.enroll.9e712dfc-13e3-455d-869d-59a9c55b6ab3:platformid123456789\n[Thu Jan 13 Net2 /event_store/d/mobile/2011/01] vim 13/9e/ti.enroll.9e712dfc-13e3-455d-869d-59a9c55b6ab3:platformid123456789
\n
\n\n\n
\n{\"id\":\"9e712dfc-13e3-455d-869d-59a9c55b6ab3:platformid123456789\",\"sid\":\"5bb1911c-7842-4eb2-86d3-660f93c3b2f7\",\"ts\":\"2011-01-14T01:17:20.767-0800\",\"event\":\"ti.enroll\",\"data\":{\"platform\":\"android\",\"osarch\":\"ARM926EJ-S rev 5 (v5l)\",\"model\":\"google_sdk\",\"mac_addr\":\"platformid123456789\",\"previous_mid\":\"f651f14b-a7c4-4ee0-8bfb-bc462f5cb970\",\"oscpu\":1,\"ostype\":\"32bit\",\"deploytype\":\"development\",\"app_id\":\"com.appcelerator.base\",\"app_name\":\"base\"},\"seq\":65,\"mid\":\"platformid123456789\",\"ver\":\"2\",\"type\":\"ti.enroll\",\"aguid\":\"c2c038c9-4b73-45cd-b150-14664c756986\"}
\n
\n\n\n
\nTEST CASE 3 (valid-vaild)
\n
\n\n\n
\n-rw-r--r-- 1 apache apache 433 Jan 13 17:35 13/b9/ti.start.b925c613-867f-4ca0-953a-7bad77692d42:platformid987654321\n-rw-r--r-- 1 apache apache 539 Jan 13 17:35 13/f8/ti.enroll.f8997e7b-aca6-4e2c-830f-d53db5883dfb:platformid987654321\n[Thu Jan 13 Net1 /event_store/d/mobile/2011/01] vim 13/f8/ti.enroll.f8997e7b-aca6-4e2c-830f-d53db5883dfb:platformid987654321
\n
\n\n\n
\n{\"id\":\"f8997e7b-aca6-4e2c-830f-d53db5883dfb:platformid987654321\",\"sid\":\"20f90694-2c74-4aad-b052-4b19b7a8d52c\",\"ts\":\"2011-01-14T01:34:47.173-0800\",\"event\":\"ti.enroll\",\"data\":{\"platform\":\"android\",\"osarch\":\"ARM926EJ-S rev 5 (v5l)\",\"model\":\"google_sdk\",\"mac_addr\":\"platformid987654321\",\"previous_mid\":\"platformid123456789\",\"oscpu\":1,\"ostype\":\"32bit\",\"deploytype\":\"development\",\"app_id\":\"com.appcelerator.base\",\"app_name\":\"base\"},\"seq\":67,\"mid\":\"platformid987654321\",\"ver\":\"2\",\"type\":\"ti.enroll\",\"aguid\":\"c2c038c9-4b73-45cd-b150-14664c756986\"}
\n
\n\n\n
\nTEST CASE 4 (valid-invalid)
\n
\n\n\n
\n-rw-r--r-- 1 apache apache 590 Jan 13 17:38 13/7e/ti.enroll.7e414c62-b460-429b-af63-d3323638f719:a65bdf39-fb57-45a6-b0fc-dd90c2f5294e\n-rw-r--r-- 1 apache apache 467 Jan 13 17:38 13/97/ti.start.97f1b11d-5a01-4d27-b641-ab543c768bf4:a65bdf39-fb57-45a6-b0fc-dd90c2f5294e\n[Thu Jan 13 Net1 /event_store/d/mobile/2011/01] vim 13/7e/ti.enroll.7e414c62-b460-429b-af63-d3323638f719:a65bdf39-fb57-45a6-b0fc-dd90c2f5294e
\n
\n\n\n
\n{\"id\":\"7e414c62-b460-429b-af63-d3323638f719:a65bdf39-fb57-45a6-b0fc-dd90c2f5294e\",\"sid\":\"509ab0b6-2771-45aa-8891-d78f2feea98d\",\"ts\":\"2011-01-14T01:38:03.797-0800\",\"event\":\"ti.enroll\",\"data\":{\"platform\":\"android\",\"osarch\":\"ARM926EJ-S rev 5 (v5l)\",\"model\":\"google_sdk\",\"mac_addr\":\"a65bdf39-fb57-45a6-b0fc-dd90c2f5294e\",\"previous_mid\":\"platformid987654321\",\"oscpu\":1,\"ostype\":\"32bit\",\"deploytype\":\"development\",\"app_id\":\"com.appcelerator.base\",\"app_name\":\"base\"},\"seq\":69,\"mid\":\"a65bdf39-fb57-45a6-b0fc-dd90c2f5294e\",\"ver\":\"2\",\"type\":\"ti.enroll\",\"aguid\":\"c2c038c9-4b73-45cd-b150-14664c756986\"}
\n
\n\"
{html}", "updateAuthor": { "name": "opiecyrus", "key": "opiecyrus", "displayName": "Opie Cyrus", "active": true, "timeZone": "America/Chicago" }, "created": "2011-04-15T03:16:50.000+0000", "updated": "2011-04-15T03:16:50.000+0000" }, { "id": "128178", "author": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

closing based on Opies comments

{html}", "updateAuthor": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:50.000+0000", "updated": "2011-04-15T03:16:50.000+0000" } ], "maxResults": 7, "total": 7, "startAt": 0 } } }