Skip to content

Commit 87d0ee9

Browse files
committed
Made SettingClient as separeate module
1 parent e71a242 commit 87d0ee9

File tree

17 files changed

+285
-169
lines changed

17 files changed

+285
-169
lines changed

Hanami.xcodeproj/project.pbxproj

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
080B17BE2AE87CA2002F780C /* SettingsClient in Frameworks */ = {isa = PBXBuildFile; productRef = 080B17BD2AE87CA2002F780C /* SettingsClient */; };
1011
080D1DB3294FDD3C008B813C /* CoreDataMigrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080D1DB2294FDD3C008B813C /* CoreDataMigrator.swift */; };
1112
080D1DB6294FDD7C008B813C /* CoreDataMigrationStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080D1DB5294FDD7C008B813C /* CoreDataMigrationStep.swift */; };
1213
080D1DB8294FDD99008B813C /* CoreDataVersion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080D1DB7294FDD99008B813C /* CoreDataVersion.swift */; };
@@ -18,8 +19,8 @@
1819
081FF3032A79CF0800C444E4 /* Utils in Frameworks */ = {isa = PBXBuildFile; productRef = 081FF3022A79CF0800C444E4 /* Utils */; };
1920
081FF3052A79CF4A00C444E4 /* ModelKit in Frameworks */ = {isa = PBXBuildFile; productRef = 081FF3042A79CF4A00C444E4 /* ModelKit */; };
2021
081FF3072A79CF4F00C444E4 /* DataTypeExtensions in Frameworks */ = {isa = PBXBuildFile; productRef = 081FF3062A79CF4F00C444E4 /* DataTypeExtensions */; };
21-
0829E20628F88AF30009A907 /* SettingsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829E20528F88AF30009A907 /* SettingsClient.swift */; };
2222
0829E20828F896C30009A907 /* AuthClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829E20728F896C30009A907 /* AuthClient.swift */; };
23+
0837E3512AEA90D9000963BA /* SearchClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0837E3502AEA90D9000963BA /* SearchClient.swift */; };
2324
0859979528F4C4170095422C /* SettingsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859979428F4C4170095422C /* SettingsFeature.swift */; };
2425
0859979728F4C4230095422C /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859979628F4C4230095422C /* SettingsView.swift */; };
2526
087DB9E02A79C738002D0277 /* Cache in Frameworks */ = {isa = PBXBuildFile; productRef = 087DB9DF2A79C738002D0277 /* Cache */; };
@@ -78,7 +79,6 @@
7879
22C49A7A288B579F000A96B9 /* OfflineMangaFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22C49A79288B579F000A96B9 /* OfflineMangaFeature.swift */; };
7980
22C49A7C288B57B1000A96B9 /* OfflineMangaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22C49A7B288B57B1000A96B9 /* OfflineMangaView.swift */; };
8081
22D0CA70287DE15F005D06ED /* HomeClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22D0CA6F287DE15F005D06ED /* HomeClient.swift */; };
81-
22D0CA72287DE2D2005D06ED /* SearchClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22D0CA71287DE2D2005D06ED /* SearchClient.swift */; };
8282
22D74BFA287AE115000616D3 /* ChapterDetailsMO+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22D74BF6287AE115000616D3 /* ChapterDetailsMO+CoreDataClass.swift */; };
8383
22D74BFC287AE115000616D3 /* MangaMO+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22D74BF8287AE115000616D3 /* MangaMO+CoreDataClass.swift */; };
8484
22F4A85428AB29C9008C11A7 /* VolumeTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22F4A84D28AB29C9008C11A7 /* VolumeTabView.swift */; };
@@ -121,6 +121,7 @@
121121
/* End PBXCopyFilesBuildPhase section */
122122

123123
/* Begin PBXFileReference section */
124+
080B17BC2AE87B95002F780C /* SettingsClient */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = SettingsClient; sourceTree = "<group>"; };
124125
080D1DB2294FDD3C008B813C /* CoreDataMigrator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataMigrator.swift; sourceTree = "<group>"; };
125126
080D1DB5294FDD7C008B813C /* CoreDataMigrationStep.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataMigrationStep.swift; sourceTree = "<group>"; };
126127
080D1DB7294FDD99008B813C /* CoreDataVersion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataVersion.swift; sourceTree = "<group>"; };
@@ -130,8 +131,8 @@
130131
080D1DC6294FF685008B813C /* SearchRequestMO+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SearchRequestMO+CoreDataClass.swift"; sourceTree = "<group>"; };
131132
080D1DC7294FF685008B813C /* SearchRequestMO+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SearchRequestMO+CoreDataProperties.swift"; sourceTree = "<group>"; };
132133
080D1DCD294FFAE6008B813C /* SearchRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchRequest.swift; sourceTree = "<group>"; };
133-
0829E20528F88AF30009A907 /* SettingsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsClient.swift; sourceTree = "<group>"; };
134134
0829E20728F896C30009A907 /* AuthClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthClient.swift; sourceTree = "<group>"; };
135+
0837E3502AEA90D9000963BA /* SearchClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchClient.swift; sourceTree = "<group>"; };
135136
0859979428F4C4170095422C /* SettingsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsFeature.swift; sourceTree = "<group>"; };
136137
0859979628F4C4230095422C /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
137138
086E3A872AA274E300FE65C8 /* Logger */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = Logger; sourceTree = "<group>"; };
@@ -195,7 +196,6 @@
195196
22C49A79288B579F000A96B9 /* OfflineMangaFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OfflineMangaFeature.swift; sourceTree = "<group>"; };
196197
22C49A7B288B57B1000A96B9 /* OfflineMangaView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OfflineMangaView.swift; sourceTree = "<group>"; };
197198
22D0CA6F287DE15F005D06ED /* HomeClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeClient.swift; sourceTree = "<group>"; };
198-
22D0CA71287DE2D2005D06ED /* SearchClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchClient.swift; sourceTree = "<group>"; };
199199
22D74BF6287AE115000616D3 /* ChapterDetailsMO+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ChapterDetailsMO+CoreDataClass.swift"; sourceTree = "<group>"; };
200200
22D74BF8287AE115000616D3 /* MangaMO+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MangaMO+CoreDataClass.swift"; sourceTree = "<group>"; };
201201
22F4A84D28AB29C9008C11A7 /* VolumeTabView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VolumeTabView.swift; sourceTree = "<group>"; };
@@ -224,6 +224,7 @@
224224
087DB9EC2A79C774002D0277 /* WrappingHStack in Frameworks */,
225225
08E6218C2A79D138001B0318 /* UIExtensions in Frameworks */,
226226
081FF3032A79CF0800C444E4 /* Utils in Frameworks */,
227+
080B17BE2AE87CA2002F780C /* SettingsClient in Frameworks */,
227228
08B5C58E2AA5074E00ECE4B8 /* ImageClient in Frameworks */,
228229
);
229230
runOnlyForDeploymentPostprocessing = 0;
@@ -439,6 +440,7 @@
439440
224C656F2827204000AAEF2E = {
440441
isa = PBXGroup;
441442
children = (
443+
080B17BC2AE87B95002F780C /* SettingsClient */,
442444
08B5C58C2AA5071500ECE4B8 /* ImageClient */,
443445
086E3A872AA274E300FE65C8 /* Logger */,
444446
08E6218E2A7B0E11001B0318 /* UITheme */,
@@ -493,9 +495,8 @@
493495
isa = PBXGroup;
494496
children = (
495497
222A03652871B9D800D5B588 /* DatabaseClient.swift */,
496-
0829E20528F88AF30009A907 /* SettingsClient.swift */,
498+
0837E3502AEA90D9000963BA /* SearchClient.swift */,
497499
226C05B8287DD6EB00BA0E5C /* MangaClient.swift */,
498-
22D0CA71287DE2D2005D06ED /* SearchClient.swift */,
499500
228FA49C288DBB5500369529 /* CacheClient.swift */,
500501
2225265E28B1627E009F6FA3 /* HapticClient.swift */,
501502
22D0CA6F287DE15F005D06ED /* HomeClient.swift */,
@@ -638,6 +639,7 @@
638639
08D7306B2AA2766900038543 /* Logger */,
639640
08B5C58D2AA5074E00ECE4B8 /* ImageClient */,
640641
08E206FC2AE6BCE3005CF305 /* Kingfisher */,
642+
080B17BD2AE87CA2002F780C /* SettingsClient */,
641643
);
642644
productName = Smuggler;
643645
productReference = 224C65782827204100AAEF2E /* Hanami - Manga Reader.app */;
@@ -789,8 +791,6 @@
789791
080D1DB6294FDD7C008B813C /* CoreDataMigrationStep.swift in Sources */,
790792
229F8D8B282DB34C00761054 /* RootView.swift in Sources */,
791793
080D1DC0294FDFE0008B813C /* NSManagedObjectModel+Compatbile.swift in Sources */,
792-
22D0CA72287DE2D2005D06ED /* SearchClient.swift in Sources */,
793-
0829E20628F88AF30009A907 /* SettingsClient.swift in Sources */,
794794
2220E1672832A9280046F08A /* OnlineMangaView.swift in Sources */,
795795
22F4A85528AB29C9008C11A7 /* ChapterView.swift in Sources */,
796796
22C49A7A288B579F000A96B9 /* OfflineMangaFeature.swift in Sources */,
@@ -818,6 +818,7 @@
818818
2274193F2886EC6900ACAA24 /* DownloadsView.swift in Sources */,
819819
08A8F45C290169FB001EECD9 /* AuthorFeature.swift in Sources */,
820820
228D8D57287B2DD000F988CC /* MangaMO+CoreDataProperties.swift in Sources */,
821+
0837E3512AEA90D9000963BA /* SearchClient.swift in Sources */,
821822
22F4A85628AB29C9008C11A7 /* ChapterFeature.swift in Sources */,
822823
22D0CA70287DE15F005D06ED /* HomeClient.swift in Sources */,
823824
228DD05028A5278300F70162 /* HUDClient.swift in Sources */,
@@ -1006,7 +1007,7 @@
10061007
CODE_SIGN_ENTITLEMENTS = Hanami/Hanami.entitlements;
10071008
CODE_SIGN_IDENTITY = "Apple Development";
10081009
CODE_SIGN_STYLE = Automatic;
1009-
CURRENT_PROJECT_VERSION = 19;
1010+
CURRENT_PROJECT_VERSION = 20;
10101011
DEVELOPMENT_ASSET_PATHS = "\"Hanami/Preview Content\"";
10111012
DEVELOPMENT_TEAM = HJ9678T652;
10121013
ENABLE_PREVIEWS = YES;
@@ -1027,7 +1028,7 @@
10271028
"$(inherited)",
10281029
"@executable_path/Frameworks",
10291030
);
1030-
MARKETING_VERSION = 0.25.4;
1031+
MARKETING_VERSION = 0.25.5;
10311032
PRODUCT_BUNDLE_IDENTIFIER = moe.mkpwnz.Hanami;
10321033
PRODUCT_NAME = "Hanami - Manga Reader";
10331034
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1047,7 +1048,7 @@
10471048
CODE_SIGN_ENTITLEMENTS = Hanami/Hanami.entitlements;
10481049
CODE_SIGN_IDENTITY = "Apple Development";
10491050
CODE_SIGN_STYLE = Automatic;
1050-
CURRENT_PROJECT_VERSION = 19;
1051+
CURRENT_PROJECT_VERSION = 20;
10511052
DEVELOPMENT_ASSET_PATHS = "\"Hanami/Preview Content\"";
10521053
DEVELOPMENT_TEAM = HJ9678T652;
10531054
ENABLE_PREVIEWS = YES;
@@ -1068,7 +1069,7 @@
10681069
"$(inherited)",
10691070
"@executable_path/Frameworks",
10701071
);
1071-
MARKETING_VERSION = 0.25.4;
1072+
MARKETING_VERSION = 0.25.5;
10721073
PRODUCT_BUNDLE_IDENTIFIER = moe.mkpwnz.Hanami;
10731074
PRODUCT_NAME = "Hanami - Manga Reader";
10741075
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1240,6 +1241,10 @@
12401241
/* End XCRemoteSwiftPackageReference section */
12411242

12421243
/* Begin XCSwiftPackageProductDependency section */
1244+
080B17BD2AE87CA2002F780C /* SettingsClient */ = {
1245+
isa = XCSwiftPackageProductDependency;
1246+
productName = SettingsClient;
1247+
};
12431248
081FF3022A79CF0800C444E4 /* Utils */ = {
12441249
isa = XCSwiftPackageProductDependency;
12451250
productName = Utils;

Hanami.xcodeproj/xcuserdata/oolxg.xcuserdatad/xcschemes/xcschememanagement.plist

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -7,44 +7,44 @@
77
<key>DeviceKitPlayground (Playground) 1.xcscheme</key>
88
<dict>
99
<key>isShown</key>
10-
<false />
10+
<false/>
1111
<key>orderHint</key>
12-
<integer>14</integer>
12+
<integer>12</integer>
1313
</dict>
1414
<key>DeviceKitPlayground (Playground) 2.xcscheme</key>
1515
<dict>
1616
<key>isShown</key>
17-
<false />
17+
<false/>
1818
<key>orderHint</key>
19-
<integer>16</integer>
19+
<integer>13</integer>
2020
</dict>
2121
<key>DeviceKitPlayground (Playground) 3.xcscheme</key>
2222
<dict>
2323
<key>isShown</key>
24-
<false />
24+
<false/>
2525
<key>orderHint</key>
2626
<integer>24</integer>
2727
</dict>
2828
<key>DeviceKitPlayground (Playground) 4.xcscheme</key>
2929
<dict>
3030
<key>isShown</key>
31-
<false />
31+
<false/>
3232
<key>orderHint</key>
3333
<integer>25</integer>
3434
</dict>
3535
<key>DeviceKitPlayground (Playground) 5.xcscheme</key>
3636
<dict>
3737
<key>isShown</key>
38-
<false />
38+
<false/>
3939
<key>orderHint</key>
4040
<integer>26</integer>
4141
</dict>
4242
<key>DeviceKitPlayground (Playground).xcscheme</key>
4343
<dict>
4444
<key>isShown</key>
45-
<false />
45+
<false/>
4646
<key>orderHint</key>
47-
<integer>12</integer>
47+
<integer>11</integer>
4848
</dict>
4949
<key>Hanami Release.xcscheme_^#shared#^_</key>
5050
<dict>
@@ -59,133 +59,133 @@
5959
<key>SimpleStorage (Playground) 1.xcscheme</key>
6060
<dict>
6161
<key>isShown</key>
62-
<false />
62+
<false/>
6363
<key>orderHint</key>
64-
<integer>8</integer>
64+
<integer>18</integer>
6565
</dict>
6666
<key>SimpleStorage (Playground) 2.xcscheme</key>
6767
<dict>
6868
<key>isShown</key>
69-
<false />
69+
<false/>
7070
<key>orderHint</key>
71-
<integer>10</integer>
71+
<integer>19</integer>
7272
</dict>
7373
<key>SimpleStorage (Playground) 3.xcscheme</key>
7474
<dict>
7575
<key>isShown</key>
76-
<false />
76+
<false/>
7777
<key>orderHint</key>
7878
<integer>6</integer>
7979
</dict>
8080
<key>SimpleStorage (Playground) 4.xcscheme</key>
8181
<dict>
8282
<key>isShown</key>
83-
<false />
83+
<false/>
8484
<key>orderHint</key>
8585
<integer>11</integer>
8686
</dict>
8787
<key>SimpleStorage (Playground) 5.xcscheme</key>
8888
<dict>
8989
<key>isShown</key>
90-
<false />
90+
<false/>
9191
<key>orderHint</key>
9292
<integer>15</integer>
9393
</dict>
9494
<key>SimpleStorage (Playground) 6.xcscheme</key>
9595
<dict>
9696
<key>isShown</key>
97-
<false />
97+
<false/>
9898
<key>orderHint</key>
9999
<integer>9</integer>
100100
</dict>
101101
<key>SimpleStorage (Playground) 7.xcscheme</key>
102102
<dict>
103103
<key>isShown</key>
104-
<false />
104+
<false/>
105105
<key>orderHint</key>
106106
<integer>13</integer>
107107
</dict>
108108
<key>SimpleStorage (Playground) 8.xcscheme</key>
109109
<dict>
110110
<key>isShown</key>
111-
<false />
111+
<false/>
112112
<key>orderHint</key>
113113
<integer>17</integer>
114114
</dict>
115115
<key>SimpleStorage (Playground).xcscheme</key>
116116
<dict>
117117
<key>isShown</key>
118-
<false />
118+
<false/>
119119
<key>orderHint</key>
120-
<integer>7</integer>
120+
<integer>17</integer>
121121
</dict>
122122
<key>Storage (Playground) 1.xcscheme</key>
123123
<dict>
124124
<key>isShown</key>
125-
<false />
125+
<false/>
126126
<key>orderHint</key>
127-
<integer>4</integer>
127+
<integer>15</integer>
128128
</dict>
129129
<key>Storage (Playground) 2.xcscheme</key>
130130
<dict>
131131
<key>isShown</key>
132-
<false />
132+
<false/>
133133
<key>orderHint</key>
134-
<integer>5</integer>
134+
<integer>16</integer>
135135
</dict>
136136
<key>Storage (Playground) 3.xcscheme</key>
137137
<dict>
138138
<key>isShown</key>
139-
<false />
139+
<false/>
140140
<key>orderHint</key>
141141
<integer>18</integer>
142142
</dict>
143143
<key>Storage (Playground) 4.xcscheme</key>
144144
<dict>
145145
<key>isShown</key>
146-
<false />
146+
<false/>
147147
<key>orderHint</key>
148148
<integer>20</integer>
149149
</dict>
150150
<key>Storage (Playground) 5.xcscheme</key>
151151
<dict>
152152
<key>isShown</key>
153-
<false />
153+
<false/>
154154
<key>orderHint</key>
155155
<integer>22</integer>
156156
</dict>
157157
<key>Storage (Playground) 6.xcscheme</key>
158158
<dict>
159159
<key>isShown</key>
160-
<false />
160+
<false/>
161161
<key>orderHint</key>
162162
<integer>19</integer>
163163
</dict>
164164
<key>Storage (Playground) 7.xcscheme</key>
165165
<dict>
166166
<key>isShown</key>
167-
<false />
167+
<false/>
168168
<key>orderHint</key>
169169
<integer>21</integer>
170170
</dict>
171171
<key>Storage (Playground) 8.xcscheme</key>
172172
<dict>
173173
<key>isShown</key>
174-
<false />
174+
<false/>
175175
<key>orderHint</key>
176176
<integer>23</integer>
177177
</dict>
178178
<key>Storage (Playground).xcscheme</key>
179179
<dict>
180180
<key>isShown</key>
181-
<false />
181+
<false/>
182182
<key>orderHint</key>
183-
<integer>3</integer>
183+
<integer>14</integer>
184184
</dict>
185185
<key>Tools for plug-in “RswiftGenerateResourcesCommand”.xcscheme</key>
186186
<dict>
187187
<key>isShown</key>
188-
<false />
188+
<false/>
189189
<key>orderHint</key>
190190
<integer>2</integer>
191191
</dict>

Hanami/App/Core/Manga/MangaReadingView/Offline/OfflineMangaReadingFeature.swift

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Utils
1111
import ModelKit
1212
import Logger
1313
import ImageClient
14+
import SettingsClient
1415

1516
struct OfflineMangaReadingFeature: ReducerProtocol {
1617
struct State: Equatable {
@@ -76,9 +77,16 @@ struct OfflineMangaReadingFeature: ReducerProtocol {
7677
imageClient.prefetchImages(with: state.cachedPagesPaths.compactMap { $0 })
7778

7879
return .concatenate(
79-
settingsClient.retireveSettingsConfig()
80-
.receive(on: mainQueue)
81-
.catchToEffect(Action.settingsConfigRetrieved),
80+
.run { send in
81+
do {
82+
let config = try await settingsClient.retireveSettingsConfig()
83+
await send(.settingsConfigRetrieved(.success(config)))
84+
} catch {
85+
if let error = error as? AppError {
86+
await send(.settingsConfigRetrieved(.failure(error)))
87+
}
88+
}
89+
},
8290

8391
state.sameScanlationGroupChapters.isEmpty == false ? .none :
8492
databaseClient

0 commit comments

Comments
 (0)