Agressive Reconnection + No ReconnectPanel Patch

Please someone review and test or suggest a different approach

Toggle On/Off in Preferences -> Login -> Show reconnectpanel on connection loss
agressiveReconnectionnoPanel.patch.zip (4943 Bytes)

Works. Probably we should make it deselected by default? Many users dislike Spark popping up when it looses connection. The only comment from me would be is that i would like to see the same message about connection loss and timer showing seconds to reconnect. Empty roster is not very intuitive to show that there is a connection loss. And also sometimes i want to be able to press Reconnect button to reconnect faster.

Somebody should fix offline button. Most of the time it looks distorted. Online icon also has one bright pixel and rough edges.

There is basically no need to have a slap in the face with the current panel. If the “agressive reconnection panel” is a status text line, it would make sense to show in the roster window and this is a really good idea to have it in the preference dialog.

There are basically two different windows affected by a disconnected client (for the sake of argument, I’ll leave out the search results window and others): The roster window and the Chat window.

The chat window is directly affected by a disconnection: This window should have a “nice” information about the diconnection. For example the entry box for new chat text lines get greyed out and a darker grey text is overlayed like “Your client is reconnecting to the server”. An active notification is needed, since the user is actually using the chat. Currently the reconnection is show as a red text line “your client is disconnected” in the chat history. That’s ok from the functional point of view. It is not using a lot of “eye candy”.

The roster window is affected by the disconnetion, if the user wants to chat with a contact. During the disconnected phase the shown presence will age and is out of sync to the reality. But this is nothing that the user has to know, unless the disconnected phase is going on for hours. The propose functionality should switch on a status icon/text informing about the disconnection but in “nice” way.

I would propose something like this. In a disconnected state, the roster window is deactivated with respect to the normal actions, e.g by capturing the click events and direct them to an alert box informing the user about the disconnected state.

Understandable, acceptable and feasible?

It looks to me more complex to create such mechanism that Spark will take a snapshot of the current roster when connection is lost, then make it locked for interaction and then correctly update it upon restoring the connection. Do we really need such solution? I agree that in Chat window we should make input area locked/grayed and add some text that connection is lost. But on the roster part i prefer to hide the roster and show a message saying that connection is lost and i would love to have manual reconnect button, though 10 seconds reconnect timeout is fairly quick. But this is just my personal preference (also i’m used to this as Exodus client does the same). You proposal looks interesting but i can’t say for sure is it acceptable or not. When the connection is lost and user opens the roster and sees all contacts in place, he would be thinking that everything is ok, until he tries to double click something. What if he doesn’t notice the gray systray icon and would be waiting for someone to get online from the away state and won’t try to click or something. He would be waiting forever and won’t know that connection is lost (maybe just on his side).

I agree that the users should have a clear indication, if the disconnection state (DS) is going on for a longer time. How about the idea to have the DS visible in a prominent way, if the cliet has tried to reconnect for more that 5 Min?

We have to recognize, that Smack is currently a little nervous about the detection of a DS. Even a malformed XML message is causing a DS signal to Spark. This nervous behaviour causes “false” alarm very often (at least in my production environment). Smack has to learn to be a bit more careful about it’s DS recognition, but Spark should also be less offensive in signaling it’s state.

5 mins is too long in my opinion. How about 3 reconnect attempts? This won’t fix your false alarm issue (haven’t seen such myself), you will still have an unresponsive roster, whether it will be hidden or locked. I don’t know how should i explain my users how they should know that there is a problem with a client. Like “if your client looks ok it doesn’t mean it’s ok”?

How about leaving an option for this? Popping roster up should be removed absolutely. But maybe we should add an option in Preferences > Login like “Use invisible reconnect logic”. And all others (like myself) will be able to disable it and get error message in the roster window. But this will involve maintaining those two features.

We need more opinions and suggestions on that. So far we are the only ones caring about that

Check Picture for Current status so far

and also apply Patch and test, please
agressiveReconnectionnoPanel.patch.zip (19179 Bytes)

Well, this is a nicer option. If this is the route we wan to take, we have to make sure that Smack is signaling a loss of connection, if it is really a connection loss and not because of a “misinterpretation” of a malformed package or something going wrong inside of Smack.

That’s ok. Though it doesn’t look nice that reconnection animation (in silent mode) is shown like a contact group. It can be a separate minipanel above or under the roster. Like a square with that reconnection animation. It should stand out, i think.

what about replacing the actual status combobox (Available, Away…) with the reonnect information?

when you client reconnects your neither online, away or dnd

Also ok. I think that GUI design is one of the toughest think to do. We usually need a couple of mockups to decide.

We can make it with the current design and plan GUI redesign for the later versions.

I wasn’t able to reconnect in the Icon mode (12120). Also it probably shouldn’t have that red border around it.

What about the offline systray icon? Can you say why it looks ok for a few seconds and then gets distorted?

12132, still doesnt work fine with icon mode. It doesnt pulls transports contacts (ICQ, MSN, XMPP) after reconnecting.

Do we really need an icon mode?

does this only happens, when you try reconnecting within the icon mode?

hopefully this isn’t a global reconnection problem. for me the reconnection works way better than before but i didnt test it especially with the icon mode wolf added

Yes, transports doesn’t reconnect (or it doesn’t show transports’ contacts, because transports icons in the toolbar are showing online) only in the icon mode.

what transports are you using?

Im using ICQ, MSN, Y! and AIM and all are reconnecting just fine with atleast 10 Online Contacts total

I’m using ICQ, MSN, Gtalk and XMPP transports. After icon mode reconnects i just see empty Friends group without any contacts. All my transports’ contacts go to separate Friends group.