|  |  |  | import { ContentMessage } from '..'; | 
					
						
							|  |  |  | import { Constants } from '../../..'; | 
					
						
							|  |  |  | import { SignalService } from '../../../../protobuf'; | 
					
						
							|  |  |  | import { MessageParams } from '../Message'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | interface TypingMessageParams extends MessageParams { | 
					
						
							|  |  |  |   isTyping: boolean; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export class TypingMessage extends ContentMessage { | 
					
						
							|  |  |  |   public readonly isTyping: boolean; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   constructor(params: TypingMessageParams) { | 
					
						
							|  |  |  |     super({ | 
					
						
							|  |  |  |       createAtNetworkTimestamp: params.createAtNetworkTimestamp, | 
					
						
							|  |  |  |       identifier: params.identifier, | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     this.isTyping = params.isTyping; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   public ttl(): number { | 
					
						
							|  |  |  |     return Constants.TTL_DEFAULT.TYPING_MESSAGE; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   public contentProto(): SignalService.Content { | 
					
						
							|  |  |  |     return new SignalService.Content({ | 
					
						
							|  |  |  |       typingMessage: this.typingProto(), | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   protected typingProto(): SignalService.TypingMessage { | 
					
						
							|  |  |  |     const action = this.isTyping | 
					
						
							|  |  |  |       ? SignalService.TypingMessage.Action.STARTED | 
					
						
							|  |  |  |       : SignalService.TypingMessage.Action.STOPPED; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const typingMessage = new SignalService.TypingMessage(); | 
					
						
							|  |  |  |     typingMessage.action = action; | 
					
						
							|  |  |  |     typingMessage.timestamp = this.createAtNetworkTimestamp; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return typingMessage; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |