You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
// TODO legacy messages support will be removed in a future release
 | 
						|
import { ProtobufUtils, SignalService } from '../../protobuf';
 | 
						|
import { ReleasedFeatures } from '../../util/releaseFeature';
 | 
						|
import { DisappearingMessageConversationModeType } from './types';
 | 
						|
 | 
						|
export function isLegacyDisappearingModeEnabled(
 | 
						|
  expirationMode: DisappearingMessageConversationModeType | undefined
 | 
						|
): boolean {
 | 
						|
  return Boolean(
 | 
						|
    expirationMode &&
 | 
						|
      expirationMode !== 'off' &&
 | 
						|
      !ReleasedFeatures.isDisappearMessageV2FeatureReleasedCached()
 | 
						|
  );
 | 
						|
}
 | 
						|
 | 
						|
export function checkIsLegacyDisappearingDataMessage(
 | 
						|
  couldBeLegacyContent: boolean,
 | 
						|
  dataMessage: SignalService.DataMessage
 | 
						|
): boolean {
 | 
						|
  return (
 | 
						|
    couldBeLegacyContent &&
 | 
						|
    ProtobufUtils.hasDefinedProperty(dataMessage, 'expireTimer') &&
 | 
						|
    dataMessage.expireTimer > -1
 | 
						|
  );
 | 
						|
}
 | 
						|
 | 
						|
function contentHasTimerProp(contentMessage: SignalService.Content) {
 | 
						|
  return ProtobufUtils.hasDefinedProperty(contentMessage, 'expirationTimer');
 | 
						|
}
 | 
						|
function contentHasTypeProp(contentMessage: SignalService.Content) {
 | 
						|
  return ProtobufUtils.hasDefinedProperty(contentMessage, 'expirationType');
 | 
						|
}
 | 
						|
 | 
						|
/** Use this to check for legacy disappearing messages where the expirationType and expireTimer should be undefined on the ContentMessage */
 | 
						|
export function couldBeLegacyDisappearingMessageContent(
 | 
						|
  contentMessage: SignalService.Content
 | 
						|
): boolean {
 | 
						|
  const couldBe =
 | 
						|
    (contentMessage.expirationType === SignalService.Content.ExpirationType.UNKNOWN ||
 | 
						|
      ReleasedFeatures.isDisappearMessageV2FeatureReleasedCached()) &&
 | 
						|
    !contentHasTypeProp(contentMessage) &&
 | 
						|
    !contentHasTimerProp(contentMessage);
 | 
						|
 | 
						|
  return couldBe;
 | 
						|
}
 |