Skip to content

Commit da2b78f

Browse files
Merge branch 'main' into matt/PM-28540-bitwarden-shared-mocks
2 parents 94f4196 + c3d3862 commit da2b78f

File tree

94 files changed

+1839
-1015
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+1839
-1015
lines changed

AuthenticatorBridgeKit/AuthenticatorBridgeItemService.swift

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -219,12 +219,10 @@ public class DefaultAuthenticatorBridgeItemService: AuthenticatorBridgeItemServi
219219
)
220220
fetchRequest.sortDescriptors = [NSSortDescriptor(keyPath: \AuthenticatorBridgeItemData.userId, ascending: true)]
221221
return FetchedResultsPublisher(
222-
context: dataStore.persistentContainer.viewContext,
222+
context: dataStore.backgroundContext,
223223
request: fetchRequest,
224+
transform: { $0.compactMap(\.model) },
224225
)
225-
.map { dataItems in
226-
dataItems.compactMap(\.model)
227-
}
228226
.asyncTryMap { itemModel in
229227
try await self.cryptoService.decryptAuthenticatorItems(itemModel)
230228
}
@@ -237,13 +235,15 @@ public class DefaultAuthenticatorBridgeItemService: AuthenticatorBridgeItemServi
237235
/// logout timeout. If so, then their shared items are deleted.
238236
///
239237
private func checkForLogout() async throws {
240-
let fetchRequest = NSFetchRequest<NSDictionary>(entityName: AuthenticatorBridgeItemData.entityName)
241-
fetchRequest.propertiesToFetch = ["userId"]
242-
fetchRequest.returnsDistinctResults = true
243-
fetchRequest.resultType = .dictionaryResultType
244-
245-
let results = try dataStore.persistentContainer.viewContext.fetch(fetchRequest)
246-
let userIds = results.compactMap { ($0 as? [String: Any])?["userId"] as? String }
238+
let userIds = try dataStore.backgroundContext.performAndWait {
239+
let fetchRequest = NSFetchRequest<NSDictionary>(entityName: AuthenticatorBridgeItemData.entityName)
240+
fetchRequest.propertiesToFetch = ["userId"]
241+
fetchRequest.returnsDistinctResults = true
242+
fetchRequest.resultType = .dictionaryResultType
243+
244+
let results = try dataStore.backgroundContext.fetch(fetchRequest)
245+
return results.compactMap { ($0 as? [String: Any])?["userId"] as? String }
246+
}
247247

248248
try await userIds.asyncForEach { userId in
249249
if try await sharedTimeoutService.hasPassedTimeout(userId: userId) {

AuthenticatorShared/Core/Vault/Services/Stores/AuthenticatorItemDataStore.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,10 @@ extension DataStore: AuthenticatorItemDataStore {
9797
// A sort descriptor is needed by `NSFetchedResultsController`.
9898
fetchRequest.sortDescriptors = [NSSortDescriptor(keyPath: \AuthenticatorItemData.id, ascending: true)]
9999
return FetchedResultsPublisher(
100-
context: persistentContainer.viewContext,
100+
context: backgroundContext,
101101
request: fetchRequest,
102+
transform: { try $0.map(AuthenticatorItem.init) },
102103
)
103-
.tryMap { try $0.map(AuthenticatorItem.init) }
104104
.eraseToAnyPublisher()
105105
}
106106

AuthenticatorShared/UI/DebugMenu/DebugMenuAction.swift

Lines changed: 0 additions & 10 deletions
This file was deleted.

AuthenticatorShared/UI/DebugMenu/DebugMenuCoordinator.swift

Lines changed: 0 additions & 75 deletions
This file was deleted.

AuthenticatorShared/UI/DebugMenu/DebugMenuCoordinatorTests.swift

Lines changed: 0 additions & 60 deletions
This file was deleted.

AuthenticatorShared/UI/DebugMenu/DebugMenuEffect.swift

Lines changed: 0 additions & 20 deletions
This file was deleted.

AuthenticatorShared/UI/DebugMenu/DebugMenuProcessor.swift

Lines changed: 0 additions & 75 deletions
This file was deleted.

AuthenticatorShared/UI/DebugMenu/DebugMenuProcessorTests.swift

Lines changed: 0 additions & 88 deletions
This file was deleted.

AuthenticatorShared/UI/DebugMenu/DebugMenuState.swift

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)