Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.

Commit 1baed48

Browse files
authored
Merge pull request #556 from wordpress-mobile/swift-translation-reader-models
Re-implement a few reader models
2 parents d758c7e + 01a66ba commit 1baed48

18 files changed

+199
-246
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ _None._
3434

3535
### Breaking Changes
3636

37-
_None._
37+
- Re-implement a few reader model types in Swift. [#556]
3838

3939
### New Features
4040

WordPressKit.xcodeproj/project.pbxproj

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,9 @@
124124
46ABD0EA262EEE0400C7FF24 /* AppTransportSecuritySettingsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46ABD0E9262EEE0400C7FF24 /* AppTransportSecuritySettingsTests.swift */; };
125125
4A1DEF44293051BC00322608 /* LoggingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A1DEF43293051BC00322608 /* LoggingTests.swift */; };
126126
4A1DEF46293051C600322608 /* LoggingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A1DEF45293051C600322608 /* LoggingTests.m */; };
127+
4A68E3DD294070A7004AC3DC /* RemoteReaderSite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A68E3DC294070A7004AC3DC /* RemoteReaderSite.swift */; };
128+
4A68E3DF29407100004AC3DC /* RemoteReaderTopic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A68E3DE29407100004AC3DC /* RemoteReaderTopic.swift */; };
129+
4A68E3E1294076C1004AC3DC /* RemoteReaderSiteInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A68E3E0294076C1004AC3DC /* RemoteReaderSiteInfo.swift */; };
127130
4A68E3CD29404181004AC3DC /* RemoteBlog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A68E3CC29404181004AC3DC /* RemoteBlog.swift */; };
128131
4A68E3CF29404289004AC3DC /* RemoteBlogOptionsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A68E3CE29404289004AC3DC /* RemoteBlogOptionsHelper.swift */; };
129132
4A68E3D329406AA0004AC3DC /* RemoteMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A68E3D029406AA0004AC3DC /* RemoteMenu.swift */; };
@@ -200,12 +203,6 @@
200203
7430C9A81F1927180051B8E6 /* ReaderTopicServiceRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = 7430C9A21F1927180051B8E6 /* ReaderTopicServiceRemote.m */; };
201204
7430C9B11F1927C50051B8E6 /* RemoteReaderPost.h in Headers */ = {isa = PBXBuildFile; fileRef = 7430C9A91F1927C50051B8E6 /* RemoteReaderPost.h */; settings = {ATTRIBUTES = (Public, ); }; };
202205
7430C9B21F1927C50051B8E6 /* RemoteReaderPost.m in Sources */ = {isa = PBXBuildFile; fileRef = 7430C9AA1F1927C50051B8E6 /* RemoteReaderPost.m */; };
203-
7430C9B31F1927C50051B8E6 /* RemoteReaderSite.h in Headers */ = {isa = PBXBuildFile; fileRef = 7430C9AB1F1927C50051B8E6 /* RemoteReaderSite.h */; settings = {ATTRIBUTES = (Public, ); }; };
204-
7430C9B41F1927C50051B8E6 /* RemoteReaderSite.m in Sources */ = {isa = PBXBuildFile; fileRef = 7430C9AC1F1927C50051B8E6 /* RemoteReaderSite.m */; };
205-
7430C9B51F1927C50051B8E6 /* RemoteReaderSiteInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 7430C9AD1F1927C50051B8E6 /* RemoteReaderSiteInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
206-
7430C9B61F1927C50051B8E6 /* RemoteReaderSiteInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 7430C9AE1F1927C50051B8E6 /* RemoteReaderSiteInfo.m */; };
207-
7430C9B71F1927C50051B8E6 /* RemoteReaderTopic.h in Headers */ = {isa = PBXBuildFile; fileRef = 7430C9AF1F1927C50051B8E6 /* RemoteReaderTopic.h */; settings = {ATTRIBUTES = (Public, ); }; };
208-
7430C9B81F1927C50051B8E6 /* RemoteReaderTopic.m in Sources */ = {isa = PBXBuildFile; fileRef = 7430C9B01F1927C50051B8E6 /* RemoteReaderTopic.m */; };
209206
7430C9BC1F192C0F0051B8E6 /* ReaderSiteServiceRemoteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7430C9B91F192C0F0051B8E6 /* ReaderSiteServiceRemoteTests.swift */; };
210207
7430C9BD1F192C0F0051B8E6 /* ReaderPostServiceRemoteTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7430C9BA1F192C0F0051B8E6 /* ReaderPostServiceRemoteTests.m */; };
211208
7430C9BE1F192C0F0051B8E6 /* ReaderTopicServiceRemoteTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7430C9BB1F192C0F0051B8E6 /* ReaderTopicServiceRemoteTests.m */; };
@@ -781,6 +778,9 @@
781778
46ABD0E9262EEE0400C7FF24 /* AppTransportSecuritySettingsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppTransportSecuritySettingsTests.swift; sourceTree = "<group>"; };
782779
4A1DEF43293051BC00322608 /* LoggingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggingTests.swift; sourceTree = "<group>"; };
783780
4A1DEF45293051C600322608 /* LoggingTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoggingTests.m; sourceTree = "<group>"; };
781+
4A68E3DC294070A7004AC3DC /* RemoteReaderSite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteReaderSite.swift; sourceTree = "<group>"; };
782+
4A68E3DE29407100004AC3DC /* RemoteReaderTopic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteReaderTopic.swift; sourceTree = "<group>"; };
783+
4A68E3E0294076C1004AC3DC /* RemoteReaderSiteInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteReaderSiteInfo.swift; sourceTree = "<group>"; };
784784
4A68E3CC29404181004AC3DC /* RemoteBlog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteBlog.swift; sourceTree = "<group>"; };
785785
4A68E3CE29404289004AC3DC /* RemoteBlogOptionsHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteBlogOptionsHelper.swift; sourceTree = "<group>"; };
786786
4A68E3D029406AA0004AC3DC /* RemoteMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteMenu.swift; sourceTree = "<group>"; };
@@ -859,12 +859,6 @@
859859
7430C9A21F1927180051B8E6 /* ReaderTopicServiceRemote.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReaderTopicServiceRemote.m; sourceTree = "<group>"; };
860860
7430C9A91F1927C50051B8E6 /* RemoteReaderPost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteReaderPost.h; sourceTree = "<group>"; };
861861
7430C9AA1F1927C50051B8E6 /* RemoteReaderPost.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RemoteReaderPost.m; sourceTree = "<group>"; };
862-
7430C9AB1F1927C50051B8E6 /* RemoteReaderSite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteReaderSite.h; sourceTree = "<group>"; };
863-
7430C9AC1F1927C50051B8E6 /* RemoteReaderSite.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RemoteReaderSite.m; sourceTree = "<group>"; };
864-
7430C9AD1F1927C50051B8E6 /* RemoteReaderSiteInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteReaderSiteInfo.h; sourceTree = "<group>"; };
865-
7430C9AE1F1927C50051B8E6 /* RemoteReaderSiteInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RemoteReaderSiteInfo.m; sourceTree = "<group>"; };
866-
7430C9AF1F1927C50051B8E6 /* RemoteReaderTopic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteReaderTopic.h; sourceTree = "<group>"; };
867-
7430C9B01F1927C50051B8E6 /* RemoteReaderTopic.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RemoteReaderTopic.m; sourceTree = "<group>"; };
868862
7430C9B91F192C0F0051B8E6 /* ReaderSiteServiceRemoteTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderSiteServiceRemoteTests.swift; sourceTree = "<group>"; };
869863
7430C9BA1F192C0F0051B8E6 /* ReaderPostServiceRemoteTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReaderPostServiceRemoteTests.m; sourceTree = "<group>"; };
870864
7430C9BB1F192C0F0051B8E6 /* ReaderTopicServiceRemoteTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReaderTopicServiceRemoteTests.m; sourceTree = "<group>"; };
@@ -1960,13 +1954,10 @@
19601954
7430C9A91F1927C50051B8E6 /* RemoteReaderPost.h */,
19611955
7430C9AA1F1927C50051B8E6 /* RemoteReaderPost.m */,
19621956
FACBDD1D25ECA7F90026705B /* RemoteReaderSimplePost.swift */,
1963-
7430C9AB1F1927C50051B8E6 /* RemoteReaderSite.h */,
1964-
7430C9AC1F1927C50051B8E6 /* RemoteReaderSite.m */,
1965-
7430C9AD1F1927C50051B8E6 /* RemoteReaderSiteInfo.h */,
1966-
7430C9AE1F1927C50051B8E6 /* RemoteReaderSiteInfo.m */,
1957+
4A68E3DC294070A7004AC3DC /* RemoteReaderSite.swift */,
1958+
4A68E3E0294076C1004AC3DC /* RemoteReaderSiteInfo.swift */,
19671959
9F3E0B9A208732B2009CB5BA /* RemoteReaderSiteInfoSubscription.swift */,
1968-
7430C9AF1F1927C50051B8E6 /* RemoteReaderTopic.h */,
1969-
7430C9B01F1927C50051B8E6 /* RemoteReaderTopic.m */,
1960+
4A68E3DE29407100004AC3DC /* RemoteReaderTopic.swift */,
19701961
74E2295D1F1E777B0085F7F2 /* RemoteSharingButton.swift */,
19711962
7430C9C81F192F260051B8E6 /* RemoteSourcePostAttribution.h */,
19721963
7430C9C91F192F260051B8E6 /* RemoteSourcePostAttribution.m */,
@@ -2537,10 +2528,7 @@
25372528
74BA04F91F06DC3900ED5CD8 /* RemoteComment.h in Headers */,
25382529
74BA04F21F06DC0A00ED5CD8 /* CommentServiceRemote.h in Headers */,
25392530
74BA04F51F06DC0A00ED5CD8 /* CommentServiceRemoteXMLRPC.h in Headers */,
2540-
7430C9B51F1927C50051B8E6 /* RemoteReaderSiteInfo.h in Headers */,
25412531
7430C9A71F1927180051B8E6 /* ReaderTopicServiceRemote.h in Headers */,
2542-
7430C9B71F1927C50051B8E6 /* RemoteReaderTopic.h in Headers */,
2543-
7430C9B31F1927C50051B8E6 /* RemoteReaderSite.h in Headers */,
25442532
7430C9B11F1927C50051B8E6 /* RemoteReaderPost.h in Headers */,
25452533
7430C9A51F1927180051B8E6 /* ReaderSiteServiceRemote.h in Headers */,
25462534
7430C9A31F1927180051B8E6 /* ReaderPostServiceRemote.h in Headers */,
@@ -3037,7 +3025,6 @@
30373025
32E1DD23236AA09A008914B0 /* RemotePostAutosave.swift in Sources */,
30383026
FF807252241FB90E00809AF5 /* Authenticator.swift in Sources */,
30393027
464BAB0B262F6736006AEED5 /* RemoteBlockEditorSettings.swift in Sources */,
3040-
7430C9B41F1927C50051B8E6 /* RemoteReaderSite.m in Sources */,
30413028
FEFFD99126C1347D00F34231 /* ShareAppContentServiceRemote.swift in Sources */,
30423029
74585B8E1F0D51A100E7E667 /* DomainsServiceRemote.swift in Sources */,
30433030
4625B965253A343900C04AAD /* RemotePageLayouts.swift in Sources */,
@@ -3075,6 +3062,7 @@
30753062
93BD27801EE73944002BB00B /* WordPressComRestApi.swift in Sources */,
30763063
404057D2221C56AB0060250C /* StatsTopCountryTimeIntervalData.swift in Sources */,
30773064
E11C2AD21FA77FB90023BDE2 /* SitePlugin.swift in Sources */,
3065+
4A68E3DF29407100004AC3DC /* RemoteReaderTopic.swift in Sources */,
30783066
74A44DCC1F13C533006CD8F4 /* NotificationSyncServiceRemote.swift in Sources */,
30793067
8BB66DB02523C181000B29DA /* ReaderPostServiceRemote+V2.swift in Sources */,
30803068
74E229501F1E741B0085F7F2 /* RemotePublicizeConnection.swift in Sources */,
@@ -3089,6 +3077,7 @@
30893077
74650F721F0EA1A700188EDB /* GravatarServiceRemote.swift in Sources */,
30903078
B5969E1D20A49AC4005E9DF1 /* NSString+MD5.m in Sources */,
30913079
FF807251241FB90E00809AF5 /* WordPressOrgRestApi.swift in Sources */,
3080+
4A68E3E1294076C1004AC3DC /* RemoteReaderSiteInfo.swift in Sources */,
30923081
8236EB4D2024B9F8007C7CF9 /* RemoteBlogJetpackModulesSettings.swift in Sources */,
30933082
73A2F38A21E7F81E00388609 /* WordPressComServiceRemote+SiteVerticalsPrompt.swift in Sources */,
30943083
740B23BB1F17EC7300067A2A /* PostServiceRemoteXMLRPC.m in Sources */,
@@ -3110,14 +3099,12 @@
31103099
93BD276A1EE736A8002BB00B /* RemoteUser.m in Sources */,
31113100
742362D71F10250600BD0A7F /* MenusServiceRemote.m in Sources */,
31123101
E6D0EE621F7EF9CE0064D3FC /* AccountServiceRemoteREST+SocialService.swift in Sources */,
3113-
7430C9B61F1927C50051B8E6 /* RemoteReaderSiteInfo.m in Sources */,
31143102
8BB5F62127A99A2000B2FFAF /* DashboardServiceRemote.swift in Sources */,
31153103
74DA56351F06EAF000FE9BF4 /* MediaServiceRemoteXMLRPC.m in Sources */,
31163104
C797196C2679007B0072F984 /* PluginManagementClient.swift in Sources */,
31173105
C785325625B5F46C006CEAFB /* JetpackThreatFixStatus.swift in Sources */,
31183106
93F50A381F226B9300B5BEBA /* WordPressComServiceRemote.m in Sources */,
31193107
9F4E52002088E38200424676 /* ObjectValidation.swift in Sources */,
3120-
7430C9B81F1927C50051B8E6 /* RemoteReaderTopic.m in Sources */,
31213108
7EC60EC022DC5D7C00FB0336 /* EditorSettings.swift in Sources */,
31223109
7403A3021EF0726E00DED7DC /* AccountSettings.swift in Sources */,
31233110
40E7FEA9220FA4060032834E /* StatsEmailFollowersInsight.swift in Sources */,
@@ -3169,6 +3156,7 @@
31693156
984E34EB22EF7209005C3F92 /* StatsFileDownloadsTimeIntervalData.swift in Sources */,
31703157
465F88A2263B325C00F4C950 /* ChecksumUtil.swift in Sources */,
31713158
C7A09A52284104DB003096ED /* QRLoginServiceRemote.swift in Sources */,
3159+
4A68E3DD294070A7004AC3DC /* RemoteReaderSite.swift in Sources */,
31723160
40AB1ADA200FED25009B533D /* PluginDirectoryFeedPage.swift in Sources */,
31733161
436D56352118D85800CEAA33 /* WPCountry.swift in Sources */,
31743162
74A44DCB1F13C533006CD8F4 /* NotificationSettingsServiceRemote.swift in Sources */,

WordPressKit/ReaderSiteServiceRemote.m

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#import "ReaderSiteServiceRemote.h"
2-
#import "RemoteReaderSite.h"
32
#import "WPKit-Swift.h"
43
@import NSObject_SafeExpectations;
54
@import WordPressShared;

WordPressKit/ReaderTopicServiceRemote.m

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
#import "ReaderTopicServiceRemote.h"
2-
#import "RemoteReaderTopic.h"
3-
#import "RemoteReaderSiteInfo.h"
42
#import "WPKit-Swift.h"
53
@import NSObject_SafeExpectations;
64
@import WordPressShared;

WordPressKit/RemoteReaderCard.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,11 @@ public struct RemoteReaderCard: Decodable {
4343
let sitesArray = try container.decode([Any].self, forKey: .data)
4444

4545
sites = sitesArray.compactMap {
46-
// Since RemoteReaderSiteInfo is written in Obj-C and doesn't support decoding
47-
// attempt to recast the response as a dictionary value to be passed to the init below
48-
guard let dict = $0 as? [AnyHashable: Any] else {
46+
guard let dict = $0 as? NSDictionary else {
4947
return nil
5048
}
5149

52-
return RemoteReaderSiteInfo(forSiteResponse: dict, isFeed: false)
50+
return RemoteReaderSiteInfo.siteInfo(forSiteResponse: dict, isFeed: false)
5351
}
5452

5553
default:

WordPressKit/RemoteReaderSite.h

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

WordPressKit/RemoteReaderSite.m

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import Foundation
2+
3+
@objcMembers public class RemoteReaderSite: NSObject {
4+
5+
public var recordID: NSNumber?
6+
public var siteID: NSNumber?
7+
public var feedID: NSNumber?
8+
public var name: String?
9+
public var path: String? // URL
10+
public var icon: String? // Sites only
11+
public var isSubscribed: Bool = false
12+
13+
}

WordPressKit/RemoteReaderSiteInfo.h

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

0 commit comments

Comments
 (0)