Recently, I've been working on a file transfer app for the N900. It's called monorail and I uploaded it to extras-devel last night, so you can try it out right now.

Click for full-sized image

I implemented an OssoABookContactView with support for filtering on Contact Capabilities (or a draft of it, at least) as old-style caps aren't great. This gives a nice list of address book contacts who have at least one account that should support receiving file transfers. It would be nice if these extra caps could go into the address book which is where they belong, but it won't.

If someone would find this widget useful, I'll clean up the code and maybe throw it in its own library.

Click for full-sized image
Choose one of the accounts which support file transfer.

I also started to implement a sharing plugin, but it turns out it's poorly documented and appears to be impossible to do anything useful for my use-case, like popping up a dialog when the user taps "Share". The example isn't very exemplary, but does contain some amusing code.

This sharing plugin is only half-written and impossible to debug. If anyone has any pointers on writing these plugins, I would appreciate them.

Click for full-sized image

It's a shame that although Hildon widgets can look really good on the device, it can often take some fiddling to make them look consistent with the rest of the UI. Additionally, oddities in some widgets can leave you baffled, or amused.

The most annoying thing I have come across regarding this app is just how little I can get it integrated. The file manager is all hard-coded so there's no way to add a Send to Contact menu item, and no buttons can be added to the libsharing dialog (which appears when the user shares a photo) which is annoying as it looks like it's missing this feature.

Click for full-sized image

Oh, and Telepathy is pretty sweet.

You are talking about hildonfm widgets, mind you.
Comment by Claudio Thu Jan 14 15:42:00 2010
There's already a piece of software called MonoRail, and it's pretty popular in the Mono/.NET scene.
Comment by Andres G. Aragoneses Thu Jan 14 15:56:40 2010
Just tried it out, works very nicely! Good work!
Comment by Jörgen Thu Jan 14 19:22:01 2010

It took me a while to realise how to make the labels and image in the status panel button, showing the number of active transfers (as shown in the blog entry), take up the entire space available, like all the other buttons do there. Perhaps that's just me though.

I'm not going to rename this because users shouldn't actually see the word "monorail" anywhere. It's all labelled "File Transfers" and "Send a file" in the interface.

Comment by jonny Thu Jan 14 22:09:47 2010
Will you upload to Debian too?
Comment by Anonymous Fri Jan 15 04:24:38 2010
I just started working on developer documentation for maemo.org, and agree with you that the API reference for libsharing, the example sharing plugin and the wiki documentation is quite poor. I have started to improve the wiki documentation, but it will take longer for the API reference to get updated and improved. If you have any specific comments or suggestions for improvement, please file a bug at https://bugs.maemo.org/ or contact me directly at davidk@openismus.com.
Comment by David King Mon Jan 18 13:01:32 2010

i download it from extra -devel and when i open it it it keeps looking for contacts and stays like this forever with empty contacts!!@although i'm connected to different accounts msn,jabber,google,skype...! is there any additional package should i add to make it work!?

thanx

Comment by Ahmed Wed Feb 17 22:48:12 2010
I have the same problem - when I start the app it looks for contacts forever. I have to close it after some time. What can be the problem?
Comment by zlatko Sat Mar 20 10:18:19 2010
same thing for me... It's just looking for contacts.
Comment by IceJunior Mon Apr 12 01:01:54 2010
i have downloaded the app, but when i open it i am told that i have no contacts to transfer to, can someone please help
Comment by Rahman Fri May 7 13:20:35 2010
i need this app badly... but i can't see any contacts for my skype,ovi or gtalk someone help please
Comment by Anonymous Sun May 9 00:40:04 2010
same thing for me... It's just looking for contacts.
Comment by Abdullah Taibah Mon May 10 18:17:08 2010

The applications says i have no contacts,

I have ovi, msn, facebook, skype and gtalk online

Comment by Hac11 Sun May 16 20:10:31 2010

This application depends on Telepathy connection managers supporting file transfer. On the N900 there are a few of these preinstalled:

  • telepathy-gabble (for Jabber and Gtalk)
  • telepathy-sofiasip (for SIP)
  • telepathy-ring (for GSM)
  • telepathy-spirit (for Skype)

and I've uploaded several more to extras-devel:

  • telepathy-butterfly (MSN)
  • telepathy-salut (link-local XMPP)
  • telepathy-haze (all the Pidgin protocols, so AIM, Facebook, GaduGadu, Groupwise, ICQ, MSN, QQ, Sametime & Yahoo)

Out of all of these connection managers, the only two to actually support file transfers are telepathy-gabble, and telepathy-salut. I have only ever actually tested Monorail with jabber (so tp-gabble) but I can tell you now that salut will not work due to the way the contact list is being filtered (long story).

The initial contact list that pops up when you open Monorail is filtered to only show contacts which support file transfers. Therefore, if you're not using any accounts with telepathy-gabble then it will not show any contacts. Additionally, if you've got tens of jabber contacts but they are all using clients which don't support file transfer then the list will also not show any contacts.

Finally, please note that GTalk implemented their own file transfer mechanism, so this will not work to GTalk contacts.

So, that's all the bad news, here's the good news:

  • butterfly (MSN) file transfer support is on the way
  • GTalk file transfers are possibly already fixed upstream in gabble(?)

The former should be fixed in the next month or so, and it'll immediately hit extras-devel. I'll blog about it at the time, probably. Additionally, to get it working nicely, I'm going to have to fix the aforementioned problem with the contact list filtering so link-local XMPP file transfers will automatically get fixed too. I can't say anything about the latter because it gets shipped with the device. Of course, there's nothing stopping you building your own telepathy-gabble and using it on your device.

So, there you have it. This should clear any problems up. To respond to a comment above as an example:

I have ovi, msn, facebook, skype and gtalk online

ovi is actually jabber so that will work providing your contacts are using a file-transfer capable client. MSN will be provided by haze or butterfly but neither currently support file transfer. Facebook is either the nasty haze plugin (haze does not support file transfer) or using Facebook's jabber server now, but Facebook's server explicitly disallows anything other than messages, so no FT, video chats, etc. spirit does not support file transfers. GTalk also uses gabble, but again will only work providing your contacts are using a file-transfer capable client (that isn't GTalk).

That should clear all of this up. Sorry it's so restricted. I'll try and make it less so in the near future, so keep your eyes peeled.

Comment by jonny Mon May 17 08:53:33 2010
So... from the above post, the conclusion is it only works for Jabber contacts that have a file-transfer-enabled client. Everything else does not work, including skype and msn, which are the two most popular IM networks through which one normally does file transfers anyway... so what's the use of this app then? :-s
Comment by Dino Sun May 23 11:53:22 2010
Add a comment