Removed the debug code and added a migration to remove the old YDB
Fixed a typo
This commit is contained in:
parent
b468efc33b
commit
8f3e7fc36a
|
@ -800,6 +800,7 @@
|
||||||
FDF2220B2818F38D000A4995 /* SessionApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF2220A2818F38D000A4995 /* SessionApp.swift */; };
|
FDF2220B2818F38D000A4995 /* SessionApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF2220A2818F38D000A4995 /* SessionApp.swift */; };
|
||||||
FDF2220F281B55E6000A4995 /* QueryInterfaceRequest+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF2220E281B55E6000A4995 /* QueryInterfaceRequest+Utilities.swift */; };
|
FDF2220F281B55E6000A4995 /* QueryInterfaceRequest+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF2220E281B55E6000A4995 /* QueryInterfaceRequest+Utilities.swift */; };
|
||||||
FDF22211281B5E0B000A4995 /* TableRecord+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF22210281B5E0B000A4995 /* TableRecord+Utilities.swift */; };
|
FDF22211281B5E0B000A4995 /* TableRecord+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF22210281B5E0B000A4995 /* TableRecord+Utilities.swift */; };
|
||||||
|
FDF40CDE2897A1BC006A0CC4 /* _004_RemoveLegacyYDB.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF40CDD2897A1BC006A0CC4 /* _004_RemoveLegacyYDB.swift */; };
|
||||||
FDFD645927F26C6800808CA1 /* Array+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C2A5D12553860800C340D1 /* Array+Utilities.swift */; };
|
FDFD645927F26C6800808CA1 /* Array+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C2A5D12553860800C340D1 /* Array+Utilities.swift */; };
|
||||||
FDFD645B27F26D4600808CA1 /* Data+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFD645A27F26D4600808CA1 /* Data+Utilities.swift */; };
|
FDFD645B27F26D4600808CA1 /* Data+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFD645A27F26D4600808CA1 /* Data+Utilities.swift */; };
|
||||||
FDFD645D27F273F300808CA1 /* MockGeneralCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFD645C27F273F300808CA1 /* MockGeneralCache.swift */; };
|
FDFD645D27F273F300808CA1 /* MockGeneralCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFD645C27F273F300808CA1 /* MockGeneralCache.swift */; };
|
||||||
|
@ -1837,6 +1838,7 @@
|
||||||
FDF2220A2818F38D000A4995 /* SessionApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionApp.swift; sourceTree = "<group>"; };
|
FDF2220A2818F38D000A4995 /* SessionApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionApp.swift; sourceTree = "<group>"; };
|
||||||
FDF2220E281B55E6000A4995 /* QueryInterfaceRequest+Utilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "QueryInterfaceRequest+Utilities.swift"; sourceTree = "<group>"; };
|
FDF2220E281B55E6000A4995 /* QueryInterfaceRequest+Utilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "QueryInterfaceRequest+Utilities.swift"; sourceTree = "<group>"; };
|
||||||
FDF22210281B5E0B000A4995 /* TableRecord+Utilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TableRecord+Utilities.swift"; sourceTree = "<group>"; };
|
FDF22210281B5E0B000A4995 /* TableRecord+Utilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TableRecord+Utilities.swift"; sourceTree = "<group>"; };
|
||||||
|
FDF40CDD2897A1BC006A0CC4 /* _004_RemoveLegacyYDB.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = _004_RemoveLegacyYDB.swift; sourceTree = "<group>"; };
|
||||||
FDFD645A27F26D4600808CA1 /* Data+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Data+Utilities.swift"; sourceTree = "<group>"; };
|
FDFD645A27F26D4600808CA1 /* Data+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Data+Utilities.swift"; sourceTree = "<group>"; };
|
||||||
FDFD645C27F273F300808CA1 /* MockGeneralCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockGeneralCache.swift; sourceTree = "<group>"; };
|
FDFD645C27F273F300808CA1 /* MockGeneralCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockGeneralCache.swift; sourceTree = "<group>"; };
|
||||||
FDFDE123282D04F20098B17F /* MediaDismissAnimationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaDismissAnimationController.swift; sourceTree = "<group>"; };
|
FDFDE123282D04F20098B17F /* MediaDismissAnimationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaDismissAnimationController.swift; sourceTree = "<group>"; };
|
||||||
|
@ -3451,6 +3453,7 @@
|
||||||
FD17D79527F3E04600122BE0 /* _001_InitialSetupMigration.swift */,
|
FD17D79527F3E04600122BE0 /* _001_InitialSetupMigration.swift */,
|
||||||
FDF0B7412804EA4F004C14C5 /* _002_SetupStandardJobs.swift */,
|
FDF0B7412804EA4F004C14C5 /* _002_SetupStandardJobs.swift */,
|
||||||
FD17D79827F40AB800122BE0 /* _003_YDBToGRDBMigration.swift */,
|
FD17D79827F40AB800122BE0 /* _003_YDBToGRDBMigration.swift */,
|
||||||
|
FDF40CDD2897A1BC006A0CC4 /* _004_RemoveLegacyYDB.swift */,
|
||||||
);
|
);
|
||||||
path = Migrations;
|
path = Migrations;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -5089,6 +5092,7 @@
|
||||||
FD09799927FFC1A300936362 /* Attachment.swift in Sources */,
|
FD09799927FFC1A300936362 /* Attachment.swift in Sources */,
|
||||||
FD245C5F2850662200B966DD /* OWSWindowManager.m in Sources */,
|
FD245C5F2850662200B966DD /* OWSWindowManager.m in Sources */,
|
||||||
C3471ECB2555356A00297E91 /* MessageSender+Encryption.swift in Sources */,
|
C3471ECB2555356A00297E91 /* MessageSender+Encryption.swift in Sources */,
|
||||||
|
FDF40CDE2897A1BC006A0CC4 /* _004_RemoveLegacyYDB.swift in Sources */,
|
||||||
FDF0B74928060D13004C14C5 /* QuotedReplyModel.swift in Sources */,
|
FDF0B74928060D13004C14C5 /* QuotedReplyModel.swift in Sources */,
|
||||||
FD77289A284AF1BD0018502F /* Sodium+Utilities.swift in Sources */,
|
FD77289A284AF1BD0018502F /* Sodium+Utilities.swift in Sources */,
|
||||||
FD5C7309285007920029977D /* BlindedIdLookup.swift in Sources */,
|
FD5C7309285007920029977D /* BlindedIdLookup.swift in Sources */,
|
||||||
|
|
|
@ -240,54 +240,40 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
|
||||||
private func showFailedMigrationAlert(error: Error?) {
|
private func showFailedMigrationAlert(error: Error?) {
|
||||||
let alert = UIAlertController(
|
let alert = UIAlertController(
|
||||||
title: "Session",
|
title: "Session",
|
||||||
message: ((error as? StorageError) == StorageError.devRemigrationRequired ?
|
message: "DATABASE_MIGRATION_FAILED".localized(),
|
||||||
"The database has changed since the last version and you need to re-migrate (this will close the app and migrate on the next launch)" :
|
|
||||||
"DATABASE_MIGRATION_FAILED".localized()
|
|
||||||
),
|
|
||||||
preferredStyle: .alert
|
preferredStyle: .alert
|
||||||
)
|
)
|
||||||
|
alert.addAction(UIAlertAction(title: "modal_share_logs_title".localized(), style: .default) { _ in
|
||||||
switch (error as? StorageError) {
|
ShareLogsModal.shareLogs(from: alert) { [weak self] in
|
||||||
case .devRemigrationRequired:
|
self?.showFailedMigrationAlert(error: error)
|
||||||
alert.addAction(UIAlertAction(title: "Re-Migrate Database", style: .default) { _ in
|
}
|
||||||
Storage.deleteDatabaseFiles()
|
})
|
||||||
try? Storage.deleteDbKeys()
|
alert.addAction(UIAlertAction(title: "vc_restore_title".localized(), style: .destructive) { _ in
|
||||||
exit(1)
|
// Remove the legacy database and any message hashes that have been migrated to the new DB
|
||||||
})
|
try? SUKLegacy.deleteLegacyDatabaseFilesAndKey()
|
||||||
|
|
||||||
default:
|
Storage.shared.write { db in
|
||||||
alert.addAction(UIAlertAction(title: "modal_share_logs_title".localized(), style: .default) { _ in
|
try SnodeReceivedMessageInfo.deleteAll(db)
|
||||||
ShareLogsModal.shareLogs(from: alert) { [weak self] in
|
}
|
||||||
self?.showFailedMigrationAlert(error: error)
|
|
||||||
}
|
// The re-run the migration (should succeed since there is no data)
|
||||||
})
|
AppSetup.runPostSetupMigrations(
|
||||||
alert.addAction(UIAlertAction(title: "vc_restore_title".localized(), style: .destructive) { _ in
|
migrationProgressChanged: { [weak self] progress, minEstimatedTotalTime in
|
||||||
// Remove the legacy database and any message hashes that have been migrated to the new DB
|
self?.loadingViewController?.updateProgress(
|
||||||
try? SUKLegacy.deleteLegacyDatabaseFilesAndKey()
|
progress: progress,
|
||||||
|
minEstimatedTotalTime: minEstimatedTotalTime
|
||||||
Storage.shared.write { db in
|
|
||||||
try SnodeReceivedMessageInfo.deleteAll(db)
|
|
||||||
}
|
|
||||||
|
|
||||||
// The re-run the migration (should succeed since there is no data)
|
|
||||||
AppSetup.runPostSetupMigrations(
|
|
||||||
migrationProgressChanged: { [weak self] progress, minEstimatedTotalTime in
|
|
||||||
self?.loadingViewController?.updateProgress(
|
|
||||||
progress: progress,
|
|
||||||
minEstimatedTotalTime: minEstimatedTotalTime
|
|
||||||
)
|
|
||||||
},
|
|
||||||
migrationsCompletion: { [weak self] error, needsConfigSync in
|
|
||||||
guard error == nil else {
|
|
||||||
self?.showFailedMigrationAlert(error: error)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
self?.completePostMigrationSetup(needsConfigSync: needsConfigSync)
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
})
|
},
|
||||||
}
|
migrationsCompletion: { [weak self] error, needsConfigSync in
|
||||||
|
guard error == nil else {
|
||||||
|
self?.showFailedMigrationAlert(error: error)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
self?.completePostMigrationSetup(needsConfigSync: needsConfigSync)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
alert.addAction(UIAlertAction(title: "Close", style: .default) { _ in
|
alert.addAction(UIAlertAction(title: "Close", style: .default) { _ in
|
||||||
DDLog.flushLog()
|
DDLog.flushLog()
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -652,7 +652,7 @@
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
|
||||||
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";
|
||||||
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
"LOADING_CONVERSATIONS" = "Loading Conversations...";
|
||||||
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore our device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
"DATABASE_MIGRATION_FAILED" = "An error occurred when optimising the database\n\nYou can export your application logs to be able to share for troubleshooting or you can restore your device\n\nWarning: Restoring your device will result in loss of any data older than two weeks";
|
||||||
"CHATS_TITLE" = "Chats";
|
"CHATS_TITLE" = "Chats";
|
||||||
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
"MESSAGE_TRIMMING_TITLE" = "Message Trimming";
|
||||||
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
"MESSAGE_TRIMMING_OPEN_GROUP_TITLE" = "Delete Old Open Group Messages";
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import NVActivityIndicatorView
|
import NVActivityIndicatorView
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import SessionMessagingKit
|
||||||
|
|
||||||
final class PathVC : BaseVC {
|
final class PathVC : BaseVC {
|
||||||
|
|
||||||
|
|
|
@ -298,8 +298,6 @@ final class SettingsVC: BaseVC, AvatarViewHelperDelegate {
|
||||||
return button
|
return button
|
||||||
}
|
}
|
||||||
|
|
||||||
let debugReMigrateButton = getSettingButton(withTitle: "DEBUG - Re-Migrate Database", color: Colors.destructive, action: #selector(remigrateDatabase))
|
|
||||||
|
|
||||||
let pathButton = getSettingButton(withTitle: NSLocalizedString("vc_path_title", comment: ""), color: Colors.text, action: #selector(showPath))
|
let pathButton = getSettingButton(withTitle: NSLocalizedString("vc_path_title", comment: ""), color: Colors.text, action: #selector(showPath))
|
||||||
let pathStatusView = PathStatusView()
|
let pathStatusView = PathStatusView()
|
||||||
pathStatusView.set(.width, to: PathStatusView.size)
|
pathStatusView.set(.width, to: PathStatusView.size)
|
||||||
|
@ -310,8 +308,6 @@ final class SettingsVC: BaseVC, AvatarViewHelperDelegate {
|
||||||
pathStatusView.autoVCenterInSuperview()
|
pathStatusView.autoVCenterInSuperview()
|
||||||
|
|
||||||
return [
|
return [
|
||||||
getSeparator(),
|
|
||||||
debugReMigrateButton,
|
|
||||||
getSeparator(),
|
getSeparator(),
|
||||||
pathButton,
|
pathButton,
|
||||||
getSeparator(),
|
getSeparator(),
|
||||||
|
@ -603,22 +599,6 @@ final class SettingsVC: BaseVC, AvatarViewHelperDelegate {
|
||||||
navigationController!.present(shareVC, animated: true, completion: nil)
|
navigationController!.present(shareVC, animated: true, completion: nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc private func remigrateDatabase() {
|
|
||||||
let alert = UIAlertController(
|
|
||||||
title: "Session",
|
|
||||||
message: "Are you sure you want to re-migrate from your old database state?\n\nWarning: If you had a migration error and picked the \"Restore your account\" option this will result in a complete loss of data and the need to manually restore from the seed",
|
|
||||||
preferredStyle: .alert
|
|
||||||
)
|
|
||||||
alert.addAction(UIAlertAction(title: "Re-migrate", style: .destructive) { _ in
|
|
||||||
Storage.deleteDatabaseFiles()
|
|
||||||
try? Storage.deleteDbKeys()
|
|
||||||
exit(1)
|
|
||||||
})
|
|
||||||
alert.addAction(UIAlertAction(title: "Cancel", style: .default))
|
|
||||||
|
|
||||||
navigationController?.present(alert, animated: true)
|
|
||||||
}
|
|
||||||
|
|
||||||
@objc private func showPath() {
|
@objc private func showPath() {
|
||||||
let pathVC = PathVC()
|
let pathVC = PathVC()
|
||||||
navigationController!.pushViewController(pathVC, animated: true)
|
navigationController!.pushViewController(pathVC, animated: true)
|
||||||
|
|
|
@ -12,6 +12,9 @@ public enum SNMessagingKit { // Just to make the external API nice
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
_003_YDBToGRDBMigration.self
|
_003_YDBToGRDBMigration.self
|
||||||
|
],
|
||||||
|
[
|
||||||
|
_004_RemoveLegacyYDB.self
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import GRDB
|
||||||
|
import Curve25519Kit
|
||||||
|
import SessionUtilitiesKit
|
||||||
|
import SessionSnodeKit
|
||||||
|
|
||||||
|
/// This migration removes the legacy YapDatabase files
|
||||||
|
enum _004_RemoveLegacyYDB: Migration {
|
||||||
|
static let target: TargetMigrations.Identifier = .messagingKit
|
||||||
|
static let identifier: String = "RemoveLegacyYDB"
|
||||||
|
static let needsConfigSync: Bool = false
|
||||||
|
static let minExpectedRunDuration: TimeInterval = 0.1
|
||||||
|
|
||||||
|
static func migrate(_ db: Database) throws {
|
||||||
|
try? SUKLegacy.deleteLegacyDatabaseFilesAndKey()
|
||||||
|
Storage.update(progress: 1, for: self, in: target) // In case this is the last migration
|
||||||
|
}
|
||||||
|
}
|
|
@ -41,40 +41,6 @@ public enum DisappearingMessagesJob: JobExecutor {
|
||||||
|
|
||||||
// The 'if' is only there to prevent the "variable never read" warning from showing
|
// The 'if' is only there to prevent the "variable never read" warning from showing
|
||||||
if backgroundTask != nil { backgroundTask = nil }
|
if backgroundTask != nil { backgroundTask = nil }
|
||||||
|
|
||||||
// TODO: Remove this for the final build
|
|
||||||
Storage.shared.writeAsync { db in
|
|
||||||
// Re-process all WebP images, and images with no width/height values to update their validity state
|
|
||||||
let supportedVisualMediaMimeTypes: Set<String> = MIMETypeUtil.supportedImageMIMETypes()
|
|
||||||
.appending(contentsOf: MIMETypeUtil.supportedAnimatedImageMIMETypes())
|
|
||||||
.appending(contentsOf: MIMETypeUtil.supportedVideoMIMETypes())
|
|
||||||
.asSet()
|
|
||||||
let attachments: [Attachment] = try Attachment
|
|
||||||
.filter(Attachment.Columns.state == Attachment.State.downloaded)
|
|
||||||
.filter(
|
|
||||||
Attachment.Columns.contentType == "image/webp" || (
|
|
||||||
(
|
|
||||||
Attachment.Columns.width == nil ||
|
|
||||||
Attachment.Columns.height == nil
|
|
||||||
) &&
|
|
||||||
supportedVisualMediaMimeTypes.contains(Attachment.Columns.contentType)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.filter(
|
|
||||||
!Attachment.Columns.isValid ||
|
|
||||||
!Attachment.Columns.isVisualMedia ||
|
|
||||||
Attachment.Columns.width == nil ||
|
|
||||||
Attachment.Columns.height == nil
|
|
||||||
)
|
|
||||||
.fetchAll(db)
|
|
||||||
|
|
||||||
if !attachments.isEmpty {
|
|
||||||
attachments.forEach { attachment in
|
|
||||||
_ = try? attachment.with(state: attachment.state).saved(db)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// TODO: Remove this for the final build
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -128,8 +128,8 @@ public final class PushNotificationAPI : NSObject {
|
||||||
promises.append(
|
promises.append(
|
||||||
attempt(maxRetryCount: maxRetryCount, recoveringOn: DispatchQueue.global()) {
|
attempt(maxRetryCount: maxRetryCount, recoveringOn: DispatchQueue.global()) {
|
||||||
OnionRequestAPI.sendOnionRequest(request, to: server, using: .v2, with: serverPublicKey)
|
OnionRequestAPI.sendOnionRequest(request, to: server, using: .v2, with: serverPublicKey)
|
||||||
.map2 { _, response -> Void in
|
.map2 { _, data -> Void in
|
||||||
guard let response: UpdateRegistrationResponse = try? response?.decoded(as: UpdateRegistrationResponse.self) else {
|
guard let response: UpdateRegistrationResponse = try? data?.decoded(as: UpdateRegistrationResponse.self) else {
|
||||||
return SNLog("Couldn't register device token.")
|
return SNLog("Couldn't register device token.")
|
||||||
}
|
}
|
||||||
guard response.body.code != 0 else {
|
guard response.body.code != 0 else {
|
||||||
|
|
|
@ -186,30 +186,7 @@ public final class Storage {
|
||||||
SNLog("[Migration Error] Migration failed with error: \(error)")
|
SNLog("[Migration Error] Migration failed with error: \(error)")
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Remove this once everyone has updated
|
onComplete(error, needsConfigSync)
|
||||||
var finalError: Error? = error
|
|
||||||
let jobTableInfo: [Row] = (try? Row.fetchAll(db, sql: "PRAGMA table_info(\(Job.databaseTableName))"))
|
|
||||||
.defaulting(to: [])
|
|
||||||
if !jobTableInfo.contains(where: { $0["name"] == "shouldSkipLaunchBecomeActive" }) {
|
|
||||||
finalError = StorageError.devRemigrationRequired
|
|
||||||
}
|
|
||||||
// Forcibly change any 'infoUpdates' on open groups from '-1' to '0' (-1 is invalid)
|
|
||||||
try? db.execute(literal: """
|
|
||||||
UPDATE openGroup
|
|
||||||
SET infoUpdates = 0
|
|
||||||
WHERE openGroup.infoUpdates = -1
|
|
||||||
""")
|
|
||||||
// TODO: Remove this once everyone has updated
|
|
||||||
let openGroupTableInfo: [Row] = (try? Row.fetchAll(db, sql: "PRAGMA table_info(openGroup)"))
|
|
||||||
.defaulting(to: [])
|
|
||||||
if !openGroupTableInfo.contains(where: { $0["name"] == "pollFailureCount" }) {
|
|
||||||
try? db.execute(literal: """
|
|
||||||
ALTER TABLE openGroup
|
|
||||||
ADD pollFailureCount INTEGER NOT NULL DEFAULT 0
|
|
||||||
""")
|
|
||||||
}
|
|
||||||
|
|
||||||
onComplete(finalError, needsConfigSync)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: The non-async migration should only be used for unit tests
|
// Note: The non-async migration should only be used for unit tests
|
||||||
|
@ -314,14 +291,13 @@ public final class Storage {
|
||||||
try? self.deleteDbKeys()
|
try? self.deleteDbKeys()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Change these back to private
|
private static func deleteDatabaseFiles() {
|
||||||
public/*private*/ static func deleteDatabaseFiles() {
|
|
||||||
OWSFileSystem.deleteFile(databasePath)
|
OWSFileSystem.deleteFile(databasePath)
|
||||||
OWSFileSystem.deleteFile(databasePathShm)
|
OWSFileSystem.deleteFile(databasePathShm)
|
||||||
OWSFileSystem.deleteFile(databasePathWal)
|
OWSFileSystem.deleteFile(databasePathWal)
|
||||||
}
|
}
|
||||||
|
|
||||||
public/*private*/ static func deleteDbKeys() throws {
|
private static func deleteDbKeys() throws {
|
||||||
try SSKDefaultKeychainStorage.shared.remove(service: keychainService, key: dbCipherKeySpecKey)
|
try SSKDefaultKeychainStorage.shared.remove(service: keychainService, key: dbCipherKeySpecKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue