Here's a patch to query a contact's last acitivty and show the info in the contact pop up, if they're not available. If the contact is away, it will show how long the user has been idle or, if they are offline, when they logged off.
The only issue is Spark/Smack doesn't respond properly, but it would work with clients that handle a last activity query correctly. Spark/Smack does respond, it just resets the idle time on any packet delivery so the information from the contact is not accurate. The Openfire server does respond properly when a user is offline.