This is an old revision of the document!
Create an application that allows to spread files over the mesh network by exchanging with servers that the handset can see (could be peers and web servers)
A Rhizome logical file is constituted of three elements:
> It's a personal file, never exchanged but generated when a file gets into your repository (ie, when imported or downloaded)A file can be imported from the local FS : informations are asked to create the manifest, and the meta is automatically generated.
A file can be downloaded from another repository (an HTTP server – can be another batphone or a classic server). It comes with its manifests, and the meta is built when the file is actually downloaded. Here is the algorythm for choosing what to do with a proposed file.
Every 15s, the app :
In the background.
There are three important locations on the SD card:
MAKE SURE YOUR SD CARD IS NOT MOUNTED ON A COMPUTER OR THE PROGRAM WILL CRASH WHILE STARTING!
Android doesn't manage to access to a filesystem which is already mounted somewhere else.
In order to demonstrate how bad I am with the UI, I made this small screenshots. Romana, I know you'll hate me.
The base application wihen the menu key is pressed.
Contextual menu
If I delete a file, here is the feedback (the file's no longer in the list)
Import a file from a picker.
Later, you can check the manifest using the menu
The file database.xml has been updated to the version 58 from the network (background update, no action from the user)
The code source is on GitHub : https://github.com/rbochet/Rhizome-Retriever
You're more than welcome to fork / push if you find a bug you can fix in a second.
You can import easily the project in Eclipse, there are no external dependencies.
The only _strangething for the moment is that if you want to test using the network updates, you'll have to have a place on the web where you can put manifests and files. My files are here:
* http://dl.dropbox.com/u/3505759/serval/.database.xml.manifest (and http://dl.dropbox.com/u/3505759/serval/database.xml)
* http://dl.dropbox.com/u/3505759/serval/.disable-lagfix.truite.manifest (and http://dl.dropbox.com/u/3505759/serval/disable-lagfix.truite)
But there's more fun if you can change their version number, and play with the file hash to test the functions… So find a place on the web where you can put them and where you have writing permissions.
If you want to try with other files, just grab files you have already imported and their manifests from the serval-rhizome directory.
The path is to set up in the StuffDownloader class for testing purposes:
StuffDownloader.java.
—-
===== Final Comments =====
I may have been unclear in this documentation. If you dont understand something, send a mail romain@servalproject NOSPAM org or to the developer list.