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.
		
		
		
		
		
			
	
	
		
			
				
					
						
							|  |  |  | // | 
					
						
							|  |  |  | //  Copyright (c) 2018 Open Whisper Systems. All rights reserved. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import Foundation | 
					
						
							|  |  |  | import SignalServiceKit | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @objc | 
					
						
							|  |  |  | public class OWS112TypingIndicatorsMigration: OWSDatabaseMigration { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // MARK: - Dependencies | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private var typingIndicators: TypingIndicators { | 
					
						
							|  |  |  |         return SSKEnvironment.shared.typingIndicators | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // MARK: - | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Increment a similar constant for each migration. | 
					
						
							|  |  |  |     @objc | 
					
						
							|  |  |  |     class func migrationId() -> String { | 
					
						
							|  |  |  |         return "112" | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     override public func runUp(completion: @escaping OWSDatabaseMigrationCompletion) { | 
					
						
							|  |  |  |         Logger.debug("") | 
					
						
							|  |  |  |         BenchAsync(title: "Typing Indicators Migration") { (benchCompletion) in | 
					
						
							|  |  |  |             self.doMigrationAsync(completion:{ | 
					
						
							|  |  |  |                 benchCompletion() | 
					
						
							|  |  |  |                 completion() | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private func doMigrationAsync(completion : @escaping OWSDatabaseMigrationCompletion) { | 
					
						
							|  |  |  |         DispatchQueue.main.async { | 
					
						
							|  |  |  |             // Typing indicators should be disabled by default for | 
					
						
							|  |  |  |             // legacy users. | 
					
						
							|  |  |  |             self.typingIndicators.setTypingIndicatorsEnabled(value: false) | 
					
						
							|  |  |  |              | 
					
						
							|  |  |  |             DispatchQueue.global().async { | 
					
						
							|  |  |  |                 self.dbReadWriteConnection().readWrite { transaction in | 
					
						
							|  |  |  |                     self.save(with: transaction) | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                  | 
					
						
							|  |  |  |                 completion() | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |