From 58f36fba47617205f6d75dd60129dad55bd55c32 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 1 Nov 2018 15:17:05 -0400 Subject: [PATCH] Disable typing indicators by default for legacy users. --- Signal.xcodeproj/project.pbxproj | 4 ++ .../OWS112TypingIndicatorsMigration.swift | 42 +++++++++++++++++++ .../migrations/OWSDatabaseMigrationRunner.m | 1 + 3 files changed, 47 insertions(+) create mode 100644 SignalMessaging/environment/migrations/OWS112TypingIndicatorsMigration.swift diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index d7732c32a..ff9da0efe 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -219,6 +219,7 @@ 34B6A903218B3F63007C4606 /* TypingIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34B6A902218B3F62007C4606 /* TypingIndicatorView.swift */; }; 34B6A905218B4C91007C4606 /* TypingIndicatorInteraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34B6A904218B4C90007C4606 /* TypingIndicatorInteraction.swift */; }; 34B6A907218B5241007C4606 /* TypingIndicatorCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34B6A906218B5240007C4606 /* TypingIndicatorCell.swift */; }; + 34B6A909218B8824007C4606 /* OWS112TypingIndicatorsMigration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34B6A908218B8824007C4606 /* OWS112TypingIndicatorsMigration.swift */; }; 34B6D27420F664C900765BE2 /* OWSUnreadIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 34B6D27220F664C800765BE2 /* OWSUnreadIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 34B6D27520F664C900765BE2 /* OWSUnreadIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B6D27320F664C800765BE2 /* OWSUnreadIndicator.m */; }; 34BECE2B1F74C12700D7438D /* DebugUIStress.m in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2A1F74C12700D7438D /* DebugUIStress.m */; }; @@ -872,6 +873,7 @@ 34B6A902218B3F62007C4606 /* TypingIndicatorView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TypingIndicatorView.swift; sourceTree = ""; }; 34B6A904218B4C90007C4606 /* TypingIndicatorInteraction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TypingIndicatorInteraction.swift; sourceTree = ""; }; 34B6A906218B5240007C4606 /* TypingIndicatorCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TypingIndicatorCell.swift; sourceTree = ""; }; + 34B6A908218B8824007C4606 /* OWS112TypingIndicatorsMigration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OWS112TypingIndicatorsMigration.swift; sourceTree = ""; }; 34B6D27220F664C800765BE2 /* OWSUnreadIndicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSUnreadIndicator.h; sourceTree = ""; }; 34B6D27320F664C800765BE2 /* OWSUnreadIndicator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSUnreadIndicator.m; sourceTree = ""; }; 34BECE291F74C12700D7438D /* DebugUIStress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DebugUIStress.h; sourceTree = ""; }; @@ -1628,6 +1630,7 @@ 34D5872E208E2C4100D2255A /* OWS109OutgoingMessageState.h */, 34D5872D208E2C4100D2255A /* OWS109OutgoingMessageState.m */, 349EA07B2162AEA700F7B17F /* OWS111UDAttributesMigration.swift */, + 34B6A908218B8824007C4606 /* OWS112TypingIndicatorsMigration.swift */, 346129931FD1E30000532771 /* OWSDatabaseMigration.h */, 346129941FD1E30000532771 /* OWSDatabaseMigration.m */, 346129E51FD5C0C600532771 /* OWSDatabaseMigrationRunner.h */, @@ -3189,6 +3192,7 @@ 346129F81FD5F31400532771 /* OWS100RemoveTSRecipientsMigration.m in Sources */, 34AC09DF211B39B100997B47 /* OWSNavigationController.m in Sources */, 34074F61203D0CBE004596AE /* OWSSounds.m in Sources */, + 34B6A909218B8824007C4606 /* OWS112TypingIndicatorsMigration.swift in Sources */, 346129B51FD1F7E800532771 /* OWSProfileManager.m in Sources */, 342950832124C9750000B063 /* OWSTextView.m in Sources */, 452EC6E1205FF5DC000E787C /* Bench.swift in Sources */, diff --git a/SignalMessaging/environment/migrations/OWS112TypingIndicatorsMigration.swift b/SignalMessaging/environment/migrations/OWS112TypingIndicatorsMigration.swift new file mode 100644 index 000000000..1cf248834 --- /dev/null +++ b/SignalMessaging/environment/migrations/OWS112TypingIndicatorsMigration.swift @@ -0,0 +1,42 @@ +// +// 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("") + Bench(title: "Typing Indicators Migration") { + self.doMigration() + } + completion() + } + + private func doMigration() { + // Typing indicators should be disabled by default for + // legacy users. + typingIndicators.setTypingIndicatorsEnabled(value: false) + + self.dbReadWriteConnection().readWrite { transaction in + self.save(with: transaction) + } + } +} diff --git a/SignalMessaging/environment/migrations/OWSDatabaseMigrationRunner.m b/SignalMessaging/environment/migrations/OWSDatabaseMigrationRunner.m index 82cfdd0ec..a2ea1950b 100644 --- a/SignalMessaging/environment/migrations/OWSDatabaseMigrationRunner.m +++ b/SignalMessaging/environment/migrations/OWSDatabaseMigrationRunner.m @@ -46,6 +46,7 @@ NS_ASSUME_NONNULL_BEGIN [[OWS108CallLoggingPreference alloc] initWithPrimaryStorage:primaryStorage], [[OWS109OutgoingMessageState alloc] initWithPrimaryStorage:primaryStorage], [[OWS111UDAttributesMigration alloc] initWithPrimaryStorage:primaryStorage], + [[OWS112TypingIndicatorsMigration alloc] initWithPrimaryStorage:primaryStorage], ]; }