@ -352,7 +352,7 @@ export function changeToDisappearingMessageConversationType(
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// TODO legacy messages support will be removed in a future release
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// NOTE We need this to check for legacy disappearing messages where the expirationType and expireTimer should be undefined on the ContentMessage
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				function  checkIsLegacy ContentMessage( contentMessage : SignalService.Content ) :  boolean  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				function  checkIsLegacy Disappearing ContentMessage( contentMessage : SignalService.Content ) :  boolean  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  ( 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ( contentMessage . expirationType  ===  SignalService . Content . ExpirationType . UNKNOWN  || 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      ! ProtobufUtils . hasDefinedProperty ( contentMessage ,  'expirationType' ) )  && 
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -360,7 +360,7 @@ function checkIsLegacyContentMessage(contentMessage: SignalService.Content): boo
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				function  checkIsLegacyD ataMessage( dataMessage : SignalService.DataMessage ) :  boolean  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				function  checkIsLegacyD isappearingD ataMessage( dataMessage : SignalService.DataMessage ) :  boolean  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  ( 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ProtobufUtils . hasDefinedProperty ( dataMessage ,  'expireTimer' )  &&  dataMessage . expireTimer  >  - 1 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  ) ; 
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -375,9 +375,10 @@ export async function checkForExpireUpdateInContentMessage(
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  // We will only support legacy disappearing messages for a short period before disappearing messages v2 is unlocked
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  const  isDisappearingMessagesV2Released  =  await  ReleasedFeatures . checkIsDisappearMessageV2FeatureReleased ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  const  isLegacyContentMessage  =  checkIsLegacy ContentMessage( content ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  const  isLegacyContentMessage  =  checkIsLegacy Disappearing ContentMessage( content ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  const  isLegacyDataMessage  =  Boolean ( 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    isLegacyContentMessage  &&  checkIsLegacyDataMessage ( dataMessage  as  SignalService . DataMessage ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    isLegacyContentMessage  && 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      checkIsLegacyDisappearingDataMessage ( dataMessage  as  SignalService . DataMessage ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  const  isLegacyConversationSettingMessage  =  isDisappearingMessagesV2Released 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ?  isLegacyContentMessage  && 
 
			
		 
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
			
			 
			 
			
				@ -414,12 +415,38 @@ export async function checkForExpireUpdateInContentMessage(
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    convoToUpdate . get ( 'expirationType' )  !==  'off'  && 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    convoToUpdate . get ( 'expireTimer' )  !==  0 ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  // If it is a legacy message and disappearing messages v2 is released then we ignore it and use the local client's conversation settings
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  // NOTE some platforms do not include the diappearing message values in the Data Message for sent messages so we have to trust the conversation settings until v2 is released
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  if  ( 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ! isDisappearingMessagesV2Released  && 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ! isLegacyConversationSettingMessage  && 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    isLegacyContentMessage  && 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    convoToUpdate . get ( 'expirationType' )  !==  'off' 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    if  ( 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      expirationType  !==  convoToUpdate . get ( 'expirationType' )  || 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      expirationTimer  !==  convoToUpdate . get ( 'expireTimer' ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      window . log . debug ( 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        'WIP: Received a legacy disappearing message before v2 was released without values set. Using the conversation settings.' , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        content 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      expirationTimer  =  convoToUpdate . get ( 'expireTimer' ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      expirationType  =  changeToDisappearingMessageType ( 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        convoToUpdate , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        convoToUpdate . get ( 'expirationType' ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  // NOTE If it is a legacy message and disappearing messages v2 is released then we ignore it and use the local client's conversation settings
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  if  ( 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    isDisappearingMessagesV2Released  && 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ( isLegacyDataMessage  ||  isLegacyConversationSettingMessage  ||  shouldDisappearButIsntMessage ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    window . log . warn ( 'Received a legacy disappearing message after v2 was released.' ,  content ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    window . log . warn ( 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      'Received a legacy disappearing message after v2 was released. Overriding it with the conversation settings' , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      content 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    expirationTimer  =  convoToUpdate . get ( 'expireTimer' ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    expirationType  =  changeToDisappearingMessageType ( 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      convoToUpdate ,