mark profiles missing avatar files for redownload
This commit is contained in:
parent
c0c81b5e53
commit
4db2dec47a
@ -514,7 +514,7 @@
|
||||
4C8A6DFC22E5499300469AE7 /* MediaZoomAnimationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C8A6DFB22E5499300469AE7 /* MediaZoomAnimationController.swift */; };
|
||||
4C8A6DFE22E54AFA00469AE7 /* MediaInteractiveDismiss.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C8A6DFD22E54AFA00469AE7 /* MediaInteractiveDismiss.swift */; };
|
||||
4C948FF72146EB4800349F0D /* BlockListCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C948FF62146EB4800349F0D /* BlockListCache.swift */; };
|
||||
4C9B4F23225025F100DD5B9A /* OWS115GRDBMigration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C9B4F22225025F100DD5B9A /* OWS115GRDBMigration.swift */; };
|
||||
4C9B4F23225025F100DD5B9A /* OWS1XXGRDBMigration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C9B4F22225025F100DD5B9A /* OWS1XXGRDBMigration.swift */; };
|
||||
4C9CA25D217E676900607C63 /* ZXingObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C9CA25C217E676900607C63 /* ZXingObjC.framework */; };
|
||||
4CA46F4C219CCC630038ABDE /* CaptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA46F4B219CCC630038ABDE /* CaptionView.swift */; };
|
||||
4CA46F4D219CFDAA0038ABDE /* GalleryRailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA46F49219C78050038ABDE /* GalleryRailView.swift */; };
|
||||
@ -523,6 +523,7 @@
|
||||
4CB5F26920F7D060004D1B42 /* MessageActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB5F26820F7D060004D1B42 /* MessageActions.swift */; };
|
||||
4CB93DC22180FF07004B9764 /* ProximityMonitoringManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB93DC12180FF07004B9764 /* ProximityMonitoringManager.swift */; };
|
||||
4CBBCA6321714B4500EEB37D /* OWS110SortIdMigration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CBBCA6221714B4500EEB37D /* OWS110SortIdMigration.swift */; };
|
||||
4CBF6F7B230B03C000549FFC /* OWS115CleanupProfileAvatars.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CBF6F7A230B03C000549FFC /* OWS115CleanupProfileAvatars.swift */; };
|
||||
4CC0B59C20EC5F2E00CF6EE0 /* ConversationConfigurationSyncOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC0B59B20EC5F2E00CF6EE0 /* ConversationConfigurationSyncOperation.swift */; };
|
||||
4CC1ECF9211A47CE00CC13BE /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CC1ECF8211A47CD00CC13BE /* StoreKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
4CC1ECFB211A553000CC13BE /* AppUpdateNag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC1ECFA211A553000CC13BE /* AppUpdateNag.swift */; };
|
||||
@ -1303,7 +1304,7 @@
|
||||
4C8A6DFB22E5499300469AE7 /* MediaZoomAnimationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaZoomAnimationController.swift; sourceTree = "<group>"; };
|
||||
4C8A6DFD22E54AFA00469AE7 /* MediaInteractiveDismiss.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInteractiveDismiss.swift; sourceTree = "<group>"; };
|
||||
4C948FF62146EB4800349F0D /* BlockListCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockListCache.swift; sourceTree = "<group>"; };
|
||||
4C9B4F22225025F100DD5B9A /* OWS115GRDBMigration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OWS115GRDBMigration.swift; sourceTree = "<group>"; };
|
||||
4C9B4F22225025F100DD5B9A /* OWS1XXGRDBMigration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OWS1XXGRDBMigration.swift; sourceTree = "<group>"; };
|
||||
4C9CA25C217E676900607C63 /* ZXingObjC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ZXingObjC.framework; path = ThirdParty/Carthage/Build/iOS/ZXingObjC.framework; sourceTree = "<group>"; };
|
||||
4CA46F49219C78050038ABDE /* GalleryRailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GalleryRailView.swift; sourceTree = "<group>"; };
|
||||
4CA46F4B219CCC630038ABDE /* CaptionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CaptionView.swift; sourceTree = "<group>"; };
|
||||
@ -1312,6 +1313,7 @@
|
||||
4CB5F26820F7D060004D1B42 /* MessageActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageActions.swift; sourceTree = "<group>"; };
|
||||
4CB93DC12180FF07004B9764 /* ProximityMonitoringManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProximityMonitoringManager.swift; sourceTree = "<group>"; };
|
||||
4CBBCA6221714B4500EEB37D /* OWS110SortIdMigration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OWS110SortIdMigration.swift; sourceTree = "<group>"; };
|
||||
4CBF6F7A230B03C000549FFC /* OWS115CleanupProfileAvatars.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OWS115CleanupProfileAvatars.swift; sourceTree = "<group>"; };
|
||||
4CC0B59B20EC5F2E00CF6EE0 /* ConversationConfigurationSyncOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConversationConfigurationSyncOperation.swift; sourceTree = "<group>"; };
|
||||
4CC1ECF8211A47CD00CC13BE /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
|
||||
4CC1ECFA211A553000CC13BE /* AppUpdateNag.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateNag.swift; sourceTree = "<group>"; };
|
||||
@ -1855,7 +1857,8 @@
|
||||
34B6A908218B8824007C4606 /* OWS112TypingIndicatorsMigration.swift */,
|
||||
4C7537882193779700DF5E37 /* OWS113MultiAttachmentMediaMessages.swift */,
|
||||
34BEDB0A21C2FA3D007B0EAE /* OWS114RemoveDynamicInteractions.swift */,
|
||||
4C9B4F22225025F100DD5B9A /* OWS115GRDBMigration.swift */,
|
||||
4CBF6F7A230B03C000549FFC /* OWS115CleanupProfileAvatars.swift */,
|
||||
4C9B4F22225025F100DD5B9A /* OWS1XXGRDBMigration.swift */,
|
||||
346129931FD1E30000532771 /* OWSDatabaseMigration.h */,
|
||||
346129941FD1E30000532771 /* OWSDatabaseMigration.m */,
|
||||
346129E51FD5C0C600532771 /* OWSDatabaseMigrationRunner.h */,
|
||||
@ -3636,7 +3639,7 @@
|
||||
34AC0A1F211B39EA00997B47 /* AvatarImageView.swift in Sources */,
|
||||
3466087220E550F400AFFE73 /* ConversationStyle.swift in Sources */,
|
||||
3478506B1FD9B78A007B8332 /* NoopCallMessageHandler.swift in Sources */,
|
||||
4C9B4F23225025F100DD5B9A /* OWS115GRDBMigration.swift in Sources */,
|
||||
4C9B4F23225025F100DD5B9A /* OWS1XXGRDBMigration.swift in Sources */,
|
||||
340872CA2239563500CB25B0 /* AttachmentApprovalViewController.swift in Sources */,
|
||||
346129AD1FD1F34E00532771 /* ImageCache.swift in Sources */,
|
||||
34D5872F208E2C4200D2255A /* OWS109OutgoingMessageState.m in Sources */,
|
||||
@ -3663,6 +3666,7 @@
|
||||
454A965A1FD6017E008D2A0E /* SignalAttachment.swift in Sources */,
|
||||
45BC829D1FD9C4B400011CF3 /* ShareViewDelegate.swift in Sources */,
|
||||
3461295B1FD1D74C00532771 /* Environment.m in Sources */,
|
||||
4CBF6F7B230B03C000549FFC /* OWS115CleanupProfileAvatars.swift in Sources */,
|
||||
346129D51FD20ADC00532771 /* UIViewController+OWS.m in Sources */,
|
||||
34BBC851220B8EEF00857249 /* ImageEditorCanvasView.swift in Sources */,
|
||||
347850691FD9B78A007B8332 /* AppSetup.m in Sources */,
|
||||
|
||||
@ -0,0 +1,50 @@
|
||||
//
|
||||
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import SignalServiceKit
|
||||
|
||||
@objc
|
||||
public class OWS115EnsureProfileAvatars: YDBDatabaseMigration {
|
||||
|
||||
// MARK: - Dependencies
|
||||
|
||||
// MARK: -
|
||||
|
||||
// Increment a similar constant for each migration.
|
||||
@objc
|
||||
public override class var migrationId: String {
|
||||
return "115"
|
||||
}
|
||||
|
||||
var fileManager: FileManager {
|
||||
return FileManager.default
|
||||
}
|
||||
|
||||
override public func runUp(with transaction: YapDatabaseReadWriteTransaction) {
|
||||
Bench(title: "\(self.logTag)") {
|
||||
var profilesWithMissingAvatars: [String] = []
|
||||
OWSUserProfile.anyEnumerate(transaction: transaction.asAnyWrite) { profile, _ in
|
||||
guard let filename = profile.avatarFileName else {
|
||||
return
|
||||
}
|
||||
|
||||
let filepath = OWSUserProfile.profileAvatarFilepath(withFilename: filename)
|
||||
guard !self.fileManager.fileExists(atPath: filepath) else {
|
||||
return
|
||||
}
|
||||
profilesWithMissingAvatars.append(profile.uniqueId)
|
||||
}
|
||||
|
||||
for uniqueId in profilesWithMissingAvatars {
|
||||
guard let profile = OWSUserProfile.anyFetch(uniqueId: uniqueId, transaction: transaction.asAnyRead) else {
|
||||
owsFailDebug("profile was unexpectedly nil")
|
||||
continue
|
||||
}
|
||||
Logger.info("removing reference to non-existant avatar file")
|
||||
profile.update(withAvatarFileName: nil, transaction: transaction.asAnyWrite, completion: {})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -7,12 +7,12 @@ import GRDBCipher
|
||||
import SignalServiceKit
|
||||
|
||||
@objc
|
||||
public class OWS115GRDBMigration: YDBDatabaseMigration {
|
||||
public class OWS1XXGRDBMigration: YDBDatabaseMigration {
|
||||
|
||||
// Increment a similar constant for each migration.
|
||||
@objc
|
||||
public override class var migrationId: String {
|
||||
return "115"
|
||||
return "1XX"
|
||||
}
|
||||
|
||||
override public func runUp(completion: @escaping OWSDatabaseMigrationCompletion) {
|
||||
@ -47,11 +47,12 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
[[OWS111UDAttributesMigration alloc] init],
|
||||
[[OWS112TypingIndicatorsMigration alloc] init],
|
||||
[[OWS113MultiAttachmentMediaMessages alloc] init],
|
||||
[[OWS114RemoveDynamicInteractions alloc] init]
|
||||
[[OWS114RemoveDynamicInteractions alloc] init],
|
||||
[OWS115EnsureProfileAvatars new]
|
||||
];
|
||||
|
||||
if (SSKFeatureFlags.useGRDB) {
|
||||
return [prodMigrations arrayByAddingObjectsFromArray:@ [[OWS115GRDBMigration new]]];
|
||||
return [prodMigrations arrayByAddingObjectsFromArray:@ [[OWS1XXGRDBMigration new]]];
|
||||
} else {
|
||||
return prodMigrations;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user