Bläddra i källkod

Add protocol support for disappearing messages

lilia 7 år sedan
förälder
incheckning
b3e932dce8
3 ändrade filer med 17 tillägg och 10 borttagningar
  1. 7 5
      js/libtextsecure.js
  2. 7 5
      libtextsecure/message_receiver.js
  3. 3 0
      protos/IncomingPushMessageSignal.proto

+ 7 - 5
js/libtextsecure.js

@@ -38237,7 +38237,7 @@ MessageReceiver.prototype.extend({
             throw e;
         });
     },
-    handleSentMessage: function(destination, timestamp, message) {
+    handleSentMessage: function(destination, timestamp, message, expirationStartTimestamp) {
         var p = Promise.resolve();
         if ((message.flags & textsecure.protobuf.DataMessage.Flags.END_SESSION) ==
                 textsecure.protobuf.DataMessage.Flags.END_SESSION ) {
@@ -38247,9 +38247,10 @@ MessageReceiver.prototype.extend({
             return this.processDecrypted(message, this.number).then(function(message) {
                 var ev = new Event('sent');
                 ev.data = {
-                    destination : destination,
-                    timestamp   : timestamp.toNumber(),
-                    message     : message
+                    destination              : destination,
+                    timestamp                : timestamp.toNumber(),
+                    message                  : message,
+                    expirationStartTimestamp : expirationStartTimestamp
                 };
                 this.dispatchEvent(ev);
             }.bind(this));
@@ -38310,7 +38311,8 @@ MessageReceiver.prototype.extend({
             return this.handleSentMessage(
                     sentMessage.destination,
                     sentMessage.timestamp,
-                    sentMessage.message
+                    sentMessage.message,
+                    sentMessage.expirationStartTimestamp
             );
         } else if (syncMessage.contacts) {
             this.handleContacts(syncMessage.contacts);

+ 7 - 5
libtextsecure/message_receiver.js

@@ -166,7 +166,7 @@ MessageReceiver.prototype.extend({
             throw e;
         });
     },
-    handleSentMessage: function(destination, timestamp, message) {
+    handleSentMessage: function(destination, timestamp, message, expirationStartTimestamp) {
         var p = Promise.resolve();
         if ((message.flags & textsecure.protobuf.DataMessage.Flags.END_SESSION) ==
                 textsecure.protobuf.DataMessage.Flags.END_SESSION ) {
@@ -176,9 +176,10 @@ MessageReceiver.prototype.extend({
             return this.processDecrypted(message, this.number).then(function(message) {
                 var ev = new Event('sent');
                 ev.data = {
-                    destination : destination,
-                    timestamp   : timestamp.toNumber(),
-                    message     : message
+                    destination              : destination,
+                    timestamp                : timestamp.toNumber(),
+                    message                  : message,
+                    expirationStartTimestamp : expirationStartTimestamp
                 };
                 this.dispatchEvent(ev);
             }.bind(this));
@@ -239,7 +240,8 @@ MessageReceiver.prototype.extend({
             return this.handleSentMessage(
                     sentMessage.destination,
                     sentMessage.timestamp,
-                    sentMessage.message
+                    sentMessage.message,
+                    sentMessage.expirationStartTimestamp
             );
         } else if (syncMessage.contacts) {
             this.handleContacts(syncMessage.contacts);

+ 3 - 0
protos/IncomingPushMessageSignal.proto

@@ -29,12 +29,14 @@ message Content {
 message DataMessage {
   enum Flags {
     END_SESSION = 1;
+    EXPIRATION_TIMER_UPDATE = 2;
   }
 
   optional string             body        = 1;
   repeated AttachmentPointer  attachments = 2;
   optional GroupContext       group       = 3;
   optional uint32             flags       = 4;
+  optional uint32             expireTimer = 5;
 }
 
 message SyncMessage {
@@ -42,6 +44,7 @@ message SyncMessage {
     optional string  destination = 1;
     optional uint64  timestamp   = 2;
     optional DataMessage message = 3;
+    optional uint64  expirationStartTimestamp = 4;
   }
 
   message Contacts {