@ -47,7 +47,7 @@ window.textsecure.messaging = function() {
 
		
	
		
			
				
 
		
	
		
			
					// success_callback(server success/failure map), error_callback(error_msg)
 
 
		
	
		
			
					// message == PushMessageContentProto (NOT STRING)
 
 
		
	
		
			
					function  sendMessageToDevices ( ,  deviceObjectList ,  message ,  success _callback ,  error _callback )  { 
 
		
	
		
			
					function  sendMessageToDevices ( timestamp,   number,  deviceObjectList ,  message ,  success _callback ,  error _callback )  { 
 
		
	
		
			
						var  jsonData  =  [ ] ; 
 
		
	
		
			
						var  relay  =  undefined ; 
 
		
	
		
			
						var  promises  =  [ ] ; 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -71,7 +71,7 @@ window.textsecure.messaging = function() {
 
		
	
		
			
									destinationDeviceId :  textsecure . utils . unencodeNumber ( deviceObjectList [ i ] . encodedNumber ) [ 1 ] , 
 
		
	
		
			
									destinationRegistrationId :  deviceObjectList [ i ] . registrationId , 
 
		
	
		
			
									body :  encryptedMsg . body , 
 
		
	
		
			
									timestamp :  new  Date ( ) . getTime ( ) 
 
		
	
		
			
									timestamp :  timestamp 
 
		
	
		
			
								} ; 
 
		
	
		
			
				
 
		
	
		
			
								if  ( deviceObjectList [ i ] . relay  !==  undefined ) 
 
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
			
			@ -136,7 +136,7 @@ window.textsecure.messaging = function() {
 
		
	
		
			
					} ; 
 
		
	
		
			
					textsecure . replay . registerFunction ( tryMessageAgain ,  textsecure . replay . Type . SEND _MESSAGE ) ; 
 
		
	
		
			
				
 
		
	
		
			
					var  sendMessageProto  =  function ( ,  message ,  callback )  { 
 
		
	
		
			
					var  sendMessageProto  =  function ( timestamp,   numbers,  message ,  callback )  { 
 
		
	
		
			
						var  numbersCompleted  =  0 ; 
 
		
	
		
			
						var  errors  =  [ ] ; 
 
		
	
		
			
						var  successfulNumbers  =  [ ] ; 
 
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
			
			@ -170,7 +170,7 @@ window.textsecure.messaging = function() {
 
		
	
		
			
						} 
 
		
	
		
			
				
 
		
	
		
			
						doSendMessage  =  function ( number ,  devicesForNumber ,  recurse )  { 
 
		
	
		
			
							return  sendMessageToDevices ( ,  devicesForNumber ,  message ) . then ( function ( result )  { 
 
		
	
		
			
							return  sendMessageToDevices ( timestamp,   number,  devicesForNumber ,  message ) . then ( function ( result )  { 
 
		
	
		
			
								successfulNumbers [ successfulNumbers . length ]  =  number ; 
 
		
	
		
			
								numberCompleted ( ) ; 
 
		
	
		
			
							} ) . catch ( function ( error )  { 
 
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
			
			@ -234,9 +234,9 @@ window.textsecure.messaging = function() {
 
		
	
		
			
						} ) ; 
 
		
	
		
			
					} 
 
		
	
		
			
				
 
		
	
		
			
					var  sendIndividualProto  =  function ( number ,  proto { 
 
		
	
		
			
					var  sendIndividualProto  =  function ( number ,  proto , timestamp  ) { 
 
		
	
		
			
						return  new  Promise ( function ( resolve ,  reject )  { 
 
		
	
		
			
							sendMessageProto ( [ number ] ,  proto ,  function ( res )  { 
 
		
	
		
			
							sendMessageProto ( timestamp ,  [ number ] ,  proto ,  function ( res )  { 
 
		
	
		
			
								if  ( res . failure . length  >  0 ) 
 
		
	
		
			
									reject ( res . failure [ 0 ] . error ) ; 
 
		
	
		
			
								else 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -245,12 +245,13 @@ window.textsecure.messaging = function() {
 
		
	
		
			
						} ) ; 
 
		
	
		
			
					} 
 
		
	
		
			
				
 
		
	
		
			
					sendGroupProto  =  function ( numbers ,  proto )  { 
 
		
	
		
			
					sendGroupProto  =  function ( numbers ,  proto ,  timestamp )  { 
 
		
	
		
			
				        timestamp  =  timestamp  ||  Date . now ( ) ; 
 
		
	
		
			
						var  me  =  textsecure . utils . unencodeNumber ( textsecure . storage . getUnencrypted ( "number_id" ) ) [ 0 ] ; 
 
		
	
		
			
						numbers  =  numbers . filter ( function ( number )  {  return  number  !=  me ;  } ) ; 
 
		
	
		
			
				
 
		
	
		
			
						return  new  Promise ( function ( resolve ,  reject )  { 
 
		
	
		
			
							sendMessageProto ( ,  proto ,  function ( res )  { 
 
		
	
		
			
							sendMessageProto ( timestamp,   numbers,  proto ,  function ( res )  { 
 
		
	
		
			
								if  ( res . failure . length  >  0 ) 
 
		
	
		
			
									reject ( res . failure ) ; 
 
		
	
		
			
								else 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -259,7 +260,7 @@ window.textsecure.messaging = function() {
 
		
	
		
			
						} ) ; 
 
		
	
		
			
					} 
 
		
	
		
			
				
 
		
	
		
			
					self . sendMessageToNumber  =  function ( number ,  messageText ,  attachments { 
 
		
	
		
			
					self . sendMessageToNumber  =  function ( number ,  messageText ,  attachments , timestamp  ) { 
 
		
	
		
			
						var  proto  =  new  textsecure . protobuf . PushMessageContent ( ) ; 
 
		
	
		
			
						proto . body  =  messageText ; 
 
		
	
		
			
				
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -268,7 +269,7 @@ window.textsecure.messaging = function() {
 
		
	
		
			
							promises . push ( makeAttachmentPointer ( attachments [ i ] ) ) ; 
 
		
	
		
			
						return  Promise . all ( promises ) . then ( function ( attachmentsArray )  { 
 
		
	
		
			
							proto . attachments  =  attachmentsArray ; 
 
		
	
		
			
							return  sendIndividualProto ( number ,  proto ; 
 
		
	
		
			
							return  sendIndividualProto ( number ,  proto , timestamp  ); 
 
		
	
		
			
						} ) ; 
 
		
	
		
			
					} 
 
		
	
		
			
				
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -285,7 +286,7 @@ window.textsecure.messaging = function() {
 
		
	
		
			
						} ) ; 
 
		
	
		
			
					} 
 
		
	
		
			
				
 
		
	
		
			
					self . sendMessageToGroup  =  function ( groupId ,  messageText ,  attachments { 
 
		
	
		
			
					self . sendMessageToGroup  =  function ( groupId ,  messageText ,  attachments , timestamp  ) { 
 
		
	
		
			
						var  proto  =  new  textsecure . protobuf . PushMessageContent ( ) ; 
 
		
	
		
			
						proto . body  =  messageText ; 
 
		
	
		
			
						proto . group  =  new  textsecure . protobuf . PushMessageContent . GroupContext ( ) ; 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -301,7 +302,7 @@ window.textsecure.messaging = function() {
 
		
	
		
			
							promises . push ( makeAttachmentPointer ( attachments [ i ] ) ) ; 
 
		
	
		
			
						return  Promise . all ( promises ) . then ( function ( attachmentsArray )  { 
 
		
	
		
			
							proto . attachments  =  attachmentsArray ; 
 
		
	
		
			
							return  sendGroupProto ( numbers ,  proto ; 
 
		
	
		
			
							return  sendGroupProto ( numbers ,  proto , timestamp  ); 
 
		
	
		
			
						} ) ; 
 
		
	
		
			
					}