Offline access to Roster/RosterStore data

In a mobile client, it often makes sense to provide access to the user’s roster even when there is no connectivity available, e.g. to read up a conversation or to write (and queue for transmission) a response.

The Roster API is the most elegant way to access the roster, but it is only available after a connection was successfully authenticated and the roster was loaded (from the server or from a RosterStore). This is a big problem when the user re-starts the client after a phone restart / OOM condition.

Using the RosterStore API (or directly accessing the underlying SQL/file/whatever backend) means that the mobile client needs to wrap every single roster access through a switch depending on whether Roster has been loaded, and to mock the respective Roster API otherwise.

It would be awesome if we could load the RosterStore data into Roster even when no connection was made yet, and make it accessible to the application. Once a connection is established and the actual roster is loaded, a reset/delta operation would have to take place.

Thanks for the suggestion. :slight_smile: Created SMACK-875.

I agree that Smack definitely needs a way to provide storage functionality to disconnected connections.
This applies not only to RosterStore, but to OmemoStore as well.

bumping this thread to prevent the 3-months timeout.

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.