Skip to content

Commit 8158414

Browse files
committed
fix: use isEmpty instead of listLogins
1 parent 33af679 commit 8158414

File tree

1 file changed

+28
-5
lines changed

1 file changed

+28
-5
lines changed

firefox-ios/Storage/Rust/RustLogins.swift

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -532,14 +532,36 @@ public class RustLogins: LoginsProtocol, KeyManager {
532532
}
533533
}
534534

535-
public func hasSyncedLogins() -> Deferred<Maybe<Bool>> {
536-
return listLogins().bind { result in
537-
if let error = result.failureValue {
538-
return deferMaybe(error)
535+
public func hasLogins(completionHandler: @escaping (Result<Bool, Error>) -> Void) {
536+
queue.async {
537+
guard self.isOpen else {
538+
let error = LoginsStoreError.UnexpectedLoginsApiError(reason: "Database is closed")
539+
completionHandler(.failure(error))
540+
return
541+
}
542+
543+
do {
544+
let isEmpty = try self.storage?.isEmpty() ?? true
545+
completionHandler(.success(!isEmpty))
546+
} catch let error as NSError {
547+
completionHandler(.failure(error))
539548
}
549+
}
550+
}
540551

541-
return deferMaybe((result.successValue?.count ?? 0) > 0)
552+
/// TODO(FXIOS-5603): We should remove this once we cleanup all deferred uses
553+
/// and use hasLogins instead
554+
public func hasSyncedLogins() -> Deferred<Maybe<Bool>> {
555+
let deferred = Deferred<Maybe<Bool>>()
556+
self.hasLogins { result in
557+
switch result {
558+
case .success(let hasLogins):
559+
deferred.fill(Maybe(success: hasLogins))
560+
case .failure(let error):
561+
deferred.fill(Maybe(failure: error as MaybeErrorType))
562+
}
542563
}
564+
return deferred
543565
}
544566

545567
public func listLogins() -> Deferred<Maybe<[Login]>> {
@@ -586,6 +608,7 @@ public class RustLogins: LoginsProtocol, KeyManager {
586608
queue.async {
587609
guard self.isOpen else {
588610
let error = LoginsStoreError.UnexpectedLoginsApiError(reason: "Database is closed")
611+
589612
deferred.fill(Maybe(failure: error as MaybeErrorType))
590613
return
591614
}

0 commit comments

Comments
 (0)