### Timer change ```jsx const fromOther = new Whisper.Message({ type: 'incoming', flags: textsecure.protobuf.DataMessage.Flags.EXPIRATION_TIMER_UPDATE, source: '+12025550003', sent_at: Date.now() - 200000, expireTimer: 120, expirationStartTimestamp: Date.now() - 1000, expirationTimerUpdate: { source: '+12025550003', }, }); const fromUpdate = new Whisper.Message({ type: 'incoming', flags: textsecure.protobuf.DataMessage.Flags.EXPIRATION_TIMER_UPDATE, source: util.ourNumber, sent_at: Date.now() - 200000, expireTimer: 120, expirationStartTimestamp: Date.now() - 1000, expirationTimerUpdate: { fromSync: true, source: util.ourNumber, }, }); const fromMe = new Whisper.Message({ type: 'incoming', flags: textsecure.protobuf.DataMessage.Flags.EXPIRATION_TIMER_UPDATE, source: util.ourNumber, sent_at: Date.now() - 200000, expireTimer: 120, expirationStartTimestamp: Date.now() - 1000, expirationTimerUpdate: { source: util.ourNumber, }, }); const View = Whisper.ExpirationTimerUpdateView; console.log('onClick')} /> ; ``` ### Safety number change ```js const incoming = new Whisper.Message({ type: 'keychange', sent_at: Date.now() - 200000, key_changed: '+12025550003', }); const View = Whisper.KeyChangeView; ; ``` ### Marking as verified ```js const fromPrimary = new Whisper.Message({ type: 'verified-change', sent_at: Date.now() - 200000, verifiedChanged: '+12025550003', verified: true, }); const local = new Whisper.Message({ type: 'verified-change', sent_at: Date.now() - 200000, verifiedChanged: '+12025550003', local: true, verified: true, }); const View = Whisper.VerifiedChangeView; ; ``` ### Marking as not verified ```js const fromPrimary = new Whisper.Message({ type: 'verified-change', sent_at: Date.now() - 200000, verifiedChanged: '+12025550003', }); const local = new Whisper.Message({ type: 'verified-change', sent_at: Date.now() - 200000, verifiedChanged: '+12025550003', local: true, }); const View = Whisper.VerifiedChangeView; ; ``` ### Group update ```js const outgoing = new Whisper.Message({ type: 'outgoing', sent_at: Date.now() - 200000, group_update: { joined: ['+12025550007', '+12025550008', '+12025550009'], }, }); const incoming = new Whisper.Message( Object.assign({}, outgoing.attributes, { source: '+12025550003', type: 'incoming', }) ); const View = Whisper.MessageView; ; ``` ### End session ```js const outgoing = new Whisper.Message({ type: 'outgoing', sent_at: Date.now() - 200000, flags: textsecure.protobuf.DataMessage.Flags.END_SESSION, }); const incoming = new Whisper.Message( Object.assign({}, outgoing.attributes, { source: '+12025550003', type: 'incoming', }) ); const View = Whisper.MessageView; ; ```