If you upload 'todo/todo.txt' it will happily replace an existing 'TODO/todo.txt' file if the revs match. We should ignore files that differ only by case when checking that our uploaded file was saved with the name we gave it on Dropbox.
* Don't assume a need to push unless we have modified a task. At the same time, never assume a need to pull. Added Generic SYNC_WITH_REMOTE intent for those ambiguous cases. That intent's handler will determine based on a persistent flag whether we need to push. The flag is set whenever a push is initiated directly, and cleared when that push succeeds or when a pull is later manually initiated. * Only sync after a connectivity change if we previously had no connectivity. Otherwise, we were syncing every few seconds. (whenever there was a signal change?) * Check for 404 errors specifically, instead of assuming all errors mean a non-existent remote file. * Added some logging in Dropbox logic. * Modify unit tests to work with new changes that look for DropboxServerException for missing files.
* The "work offline" option is now called "manual sync", which better represents what is happening because the app now works offline without going into an offline mode. * When not connected the app works just like it does connected, but will tell you with toasts that syncing couldn't be done. Will sync as soon as the device reconnects. * Syncing happens more often to reduce merge problems (before adding a task & when phone reconnects) closes #248, closes #209, closes #161, closes #271, closes #277