Synchronizing Tracks and Shuffle
I did some open-source work last week. I created a synchronization option in the Android program called Shuffle. Allowing it to synchronize with the web tool called Tracks.
Here is a description of how to use the synchronization in Shuffle.
Configuration
Open the settings menu, select the Change Synchronization option.
Specify your Tracks installation URL, username and password.
Make sure that the URL is correctly formatted and that there is no ending slash in the url:
this is wrong: http://my.gtdify.com/
this is correct: http://my.gtdify.com
Usage
On the menu available in most screens there is a button called synchronize. Click it and the synchronization starts. It will first synchronize the contexts, then project and last the Tasks.
Details of the synchronization
The synchronization will try to reduce duplicates that might occur between Tracks and Shuffle. This is done by looking that the description of tasks and the names of contexts and projects.
The synchronization works with a server wins, modification date oriented approach. Should there be a conflict the latest version will win, and in it will try to take as much detail it can from Tracks.
Also, using the “Delete completed” option removes the tasks from Shuffle. This means that the synchronizer wont find them and can’t mark them as finished in Tracks. If you use this synchronization I recommend letting the synchronizer take care of the “cleaning up”. This will be done the second synchronization that a task is complete on.
That is, if you complete a task and synchronize, both tasks will be in both systems as completed. Synchronize again the the task will be removed from Shuffle, but maintained as completed in Tracks.


This looks very exciting indeed – thanks.
Are port numbers supported at the shuffle end, i.e. can I enter http://server.com:1000 or something similar?
Is there a specfic version of tracks required at the server end or any server related configuration required to enable API access? Shuffle is saying “Could not load contexts using these settings” and the server says “GET /contexts.xml HTTP/1.1″ 401″ but I have checked several times to make sure my username/password are correct.
@Steve
Hi Steve!
Port numbers “should” be accepted, I follow HttpClient and their implementation and I see no reason to why it shouldn’t work.
As for the user name and password, the synchronization is written to support BASIC authentication. Are you using another type of authentication with your server?
Do you have any ip-blocking going on?
The Synchronization has been tested against
1.7_branch
and gtdify.com ’s version which to be honest I don’t know exactly. I’ve mailed them to see if I can compile a list of tested versions.
Looks like you aren’t alone Steve; there’s an issue with several of us who can’t seem to connect to our Tracks installations:
http://code.google.com/p/android-shuffle/issues/detail?id=94
I’m really looking forward to using this once I can get it working. Morten, huge thanks for tackling the integration work!
@Stuart Morgan
Thanks!
Apparentlly the tracks synchronization has only been tested on version 1.7 of tracks. If any of you could provide me with a test user, I’d be able to see what the connection issues are to the tracks installation.
I’ve posted a note about how to fix this issue, the HttpHost needs to include the port:
http://code.google.com/p/android-shuffle/issues/detail?id=94
Looking forward to the fix being deployed!
@Roger Barnes
Nice! Thanks, I’ll take a look. I’ve been working on it last night but my environment is acting up. Not to worry it’s is on it’s way though.