File tree Expand file tree Collapse file tree 2 files changed +15
-3
lines changed
Sources/ScreenDataNavigation
Tests/ScreenDataNavigationTests Expand file tree Collapse file tree 2 files changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -83,7 +83,7 @@ public struct UserDefaultScreenProvider: ScreenProviding {
8383
8484 public func screen( forID id: String ) -> AnyPublisher < SomeScreen , Error > {
8585 Future { promise in
86- guard let data = UserDefaults . standard. data ( forKey: baseKey + id ) else {
86+ guard let data = UserDefaults . standard. data ( forKey: key ( forID : id ) ) else {
8787 promise ( . failure( UserDefaultScreenProviderError . noData) )
8888 return
8989 }
@@ -96,6 +96,14 @@ public struct UserDefaultScreenProvider: ScreenProviding {
9696 }
9797 . eraseToAnyPublisher ( )
9898 }
99+
100+ public func key( forID id: String ) -> String {
101+ " \( baseKey) - \( id) "
102+ }
103+
104+ public func hasScreen( forId id: String ) -> Bool {
105+ UserDefaults . standard. data ( forKey: key ( forID: id) ) != nil
106+ }
99107}
100108
101109// MARK: ScreenStoring
@@ -118,7 +126,7 @@ public struct UserDefaultScreenStorer: ScreenStoring {
118126 do {
119127 try screens. forEach { screen in
120128 let data = try JSONEncoder ( ) . encode ( screen)
121- let key = baseKey + ( screen. id ?? " " )
129+ let key = self . key ( forID : screen. id ?? " " )
122130 UserDefaults . standard. set ( data,
123131 forKey: key)
124132 }
@@ -129,6 +137,10 @@ public struct UserDefaultScreenStorer: ScreenStoring {
129137 }
130138 . eraseToAnyPublisher ( )
131139 }
140+
141+ public func key( forID id: String ) -> String {
142+ " \( baseKey) - \( id) "
143+ }
132144}
133145
134146// MARK: ScreenLoading
Original file line number Diff line number Diff line change @@ -20,7 +20,7 @@ final class ScreenDataNavigationTests: XCTestCase {
2020 XCTAssertEqual ( destinations. map { $0. toID } ,
2121 screen. destinations. map { $0. toID } )
2222 }
23-
23+
2424 static var allTests = [
2525 ( " testExample " , testExample) ,
2626 ]
You can’t perform that action at this time.
0 commit comments