About the agreed XEP-0308 and XEP-0301 compatibility: I would like to amend the list of advantages that I sent earlier, due to the improved retroactive editing protocol that is already agreed between myself, Peter, Kevin, and Lance. (Except potential disagreement about whether to have a third separate 'disco' which I still think is unnecessary)
Advantages of the now-agreed 'id' attribute of <rtt/> ....It would still work in clients that didn't support either XEP-0301 or XEP-0308 Result: The retroactive edit may appear as a separate message (third message) (If software persisted in trying to do this regardless of recommended disco) ....It would still work in clients that supported XEP-0301 retroactive but didn't support XEP-0308 Result: The retroactive edit shows up as a new real time message, and then transmitted as a separate message. (If software persisted in trying to do this regardless of recommended disco) ....It would still work in clients that supported XEP-0308 retroactive but didn't support XEP-0301 Result: The retroactive edit shows up only when the edit is finished (no real time at all) ....It would still work in clients that supported XEP-0308 retroactive but only supported XEP-0301 non-retroactive *Result: Real-time text at all times, and real-time retroactive editing occurs where the "new message" normally is.* ....It would still work in clients that supported both XEP-0301 retroactive mode and XEP-0308 Result: Real-time text at all times, and real-time retroactive editing can occur "in-place". (enhanced user experience) Thanks, Mark Rejhon On Fri, Jul 20, 2012 at 2:34 AM, Mark Rejhon <marky...@gmail.com> wrote: > On Fri, Jul 20, 2012 at 2:16 AM, Gunnar Hellström < > gunnar.hellst...@omnitor.se> wrote: > >> Your current sentence is: >> >> "to have improved presentation of real-time text during message correction" >> >> Without the added feature of real-time edit, there is no presentation of >> real-time text during message correction. There will be a freeze and wait >> until the edit is done and sent as an XEP-0308 replace. So there is nothing >> there that can be enhanced or improved. Real-time text presentation during >> correction is introduced by the feature. >> therefore my proposal is still: >> >> "to have presentation of real-time text during message correction" >> >> No -- Not necessarily. > It's still possible for software to support XEP-0301 and XEP-0308, and > still be able to do real-time text during retroactive, without supporting > the 'id' attribute. The behavior is just slightly different. > I am re-quoting the behavior written in an earlier message. > > *Backwards compatible behavior (End User Viewpoint)* > The retroactive real-time edit will temporarily appear as if it was a > brand new message. Basically, the real-time message will be a *copy* of > the old message, while the retroactive edit is taking place. When the > edit is finished, the real-time message disappears and the edit shows up > above in the last message. > > *Backwards compatible behavior (Developer viewpoint)* > Technical reasoning in 0301+0308 clients that don't do 0301 retroactive: > Why this works 100% backwards compatible is due to section 4.2.2 and > section 4.3 of XEP-0301. For retroactive RTT, to remain backwards > compatibility, I would always require event='reset' everytime you begin to > reference a retroactive edit. Clients are REQUIRED to follow the > event='reset' behavior described in XEP-0301 section 4.2.2 .... > http://xmpp.org/extensions/xep-0301.html#event > The client doesn't know it's a retroactive edit (it ignores the id > attribute), so the real-time message temporarily shows up as a new message > -- a *copy* of the previous line. It's as if the user copy and pasted the > previous line, and began editing. When the retroactive edit begins, the > end user see a copy of the previous message, because the software thinks > it's a new real-time message being started. (event='reset' is treated as > event='new' thanks to the current version 0.3 wording of section 4.2.2) > ... Now, when the retroactive edit is finished, the <body/> gets > delivered, which forces the real-time message to be cleared. (Section 4.3 > says so) > http://xmpp.org/extensions/xep-0301.html#body_element > Thus, the real-time message disappears when the edit is finished, > simultaneously with the previous message being replaced by this. To the > user, it looks like the edit suddenly moves upwards to the previous line. > > The "enhanced" user experience would occur, when the software decides to > interpret the 'id' attribute. > The developer has several legitimate choices: > -- don't show RTT during retroactive (your scenario but it is not the only > possible one) > -- support RTT for retroactive (without id, or ignore id) and tolerate the > 'acceptable' behavior described above, > -- support RTT for retroactive (with id) for enhanced UI behaviour. > > But, observing that I have had to explain this scenario several times, is > slowly convincing me to add an example for XEP-0308. I shall, however, > wait, till v0.5 or v0.6, since I want feedback from Kevin/Peter sooner than > later, and I want to refocus my work on XEP-0301 for the BEEM-Android demo > for the August 20th Access Board stuff (the more LAST CALL is delayed, the > less we'll have to show for Access Board). Also I already added more > examples (Which you haven't seen yet). > > Thanks > Mark Rejhon >