Skip to content

Commit 048a181

Browse files
committed
retain account accross DB updates to avoid logout
1 parent b499f36 commit 048a181

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

TinodiosDB/BaseDb.swift

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,17 @@ public class BaseDb {
9292
self.subscriberDb = SubscriberDb(self.db!, baseDb: self)
9393
self.messageDb = MessageDb(self.db!, baseDb: self)
9494

95+
var account: StoredAccount? = nil
96+
var deviceToken: String? = nil
9597
if self.db!.schemaVersion != BaseDb.kSchemaVersion {
96-
BaseDb.log.info("BaseDb - schema has changed from %d to %d",
97-
(self.db?.schemaVersion ?? -1), BaseDb.kSchemaVersion)
98-
// Delete database if schema has changed.
99-
self.dropDb()
98+
BaseDb.log.info("BaseDb - schema has changed from %d to %d", (self.db?.schemaVersion ?? -1), BaseDb.kSchemaVersion)
99+
100+
// Retain active account accross DB upgrades to keep user logged in.
101+
account = self.accountDb!.getActiveAccount()
102+
deviceToken = self.accountDb!.getDeviceToken()
100103

104+
// Schema has changed, delete database.
105+
self.dropDb()
101106
self.db!.schemaVersion = BaseDb.kSchemaVersion
102107
}
103108

@@ -109,8 +114,13 @@ public class BaseDb {
109114
// Enable foreign key enforcement.
110115
try! self.db!.run("PRAGMA foreign_keys = ON")
111116

117+
if let account = account {
118+
_ = self.accountDb!.addOrActivateAccount(for: account.uid, withCredMethods: account.credMethods)
119+
self.accountDb!.saveDeviceToken(token: deviceToken)
120+
}
112121
self.account = self.accountDb!.getActiveAccount()
113122
}
123+
114124
private func dropDb() {
115125
self.messageDb?.destroyTable()
116126
self.subscriberDb?.destroyTable()

0 commit comments

Comments
 (0)