Skip to content

Commit 29e7345

Browse files
committed
Split WordPressShared into cross-platform and UIKit-only modules
Create WordPressSharedObjCUI and WordPressSharedUI for UIKit-dependent code, keeping WordPressSharedObjC and WordPressShared cross-platform. Update all import statements across the codebase accordingly.
1 parent 0ec6cf6 commit 29e7345

34 files changed

Lines changed: 67 additions & 20 deletions

Modules/Package.swift

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ let package = Package(
7171
]),
7272
.target(name: "AztecExtensions", dependencies: [
7373
"WordPressShared",
74+
"WordPressSharedUI",
7475
.product(name: "Gridicons", package: "Gridicons-iOS"),
7576
.product(name: "Aztec", package: "AztecEditor-iOS"),
7677
], swiftSettings: [.swiftLanguageMode(.v5)]),
@@ -88,6 +89,7 @@ let package = Package(
8889
name: "FormattableContentKit",
8990
dependencies: [
9091
"WordPressShared",
92+
"WordPressSharedUI",
9193
"WordPressUI",
9294
// TODO: Remove — It's here just for a NSMutableParagraphStyle init helper
9395
"WordPressKit",
@@ -99,6 +101,7 @@ let package = Package(
99101
.target(
100102
name: "JetpackStats",
101103
dependencies: [
104+
"WordPressSharedUI",
102105
"WordPressUI",
103106
"WordPressKit",
104107
],
@@ -169,7 +172,14 @@ let package = Package(
169172
.product(name: "SwiftSoup", package: "SwiftSoup"),
170173
]),
171174
.target(name: "WordPressLegacy", dependencies: ["DesignSystem", "WordPressShared"]),
172-
.target(name: "WordPressSharedObjC", resources: [.process("Resources")], swiftSettings: [.swiftLanguageMode(.v5)]),
175+
.target(name: "WordPressSharedObjC", swiftSettings: [.swiftLanguageMode(.v5)]),
176+
.target(
177+
name: "WordPressSharedObjCUI",
178+
dependencies: ["WordPressSharedObjC"],
179+
publicHeadersPath: "include",
180+
resources: [.process("Resources")],
181+
swiftSettings: [.swiftLanguageMode(.v5)]
182+
),
173183
.target(
174184
name: "WordPressShared",
175185
dependencies: [
@@ -181,6 +191,14 @@ let package = Package(
181191
resources: [.process("Resources")],
182192
swiftSettings: [.swiftLanguageMode(.v5)]
183193
),
194+
.target(
195+
name: "WordPressSharedUI",
196+
dependencies: [
197+
"WordPressShared",
198+
"WordPressSharedObjCUI",
199+
],
200+
swiftSettings: [.swiftLanguageMode(.v5)]
201+
),
184202
.target(name: "WordPressTesting", resources: [.process("Resources")]),
185203
.target(
186204
name: "WordPressUI",
@@ -235,7 +253,7 @@ let package = Package(
235253
),
236254
.target(
237255
name: "WordPressReader",
238-
dependencies: ["AsyncImageKit", "WordPressUI", "WordPressShared"],
256+
dependencies: ["AsyncImageKit", "WordPressUI", "WordPressShared", "WordPressSharedUI"],
239257
resources: [.process("Resources")]
240258
),
241259
.testTarget(name: "JetpackStatsTests", dependencies: ["JetpackStats"]),
@@ -298,6 +316,7 @@ enum XcodeSupport {
298316
let wordPresAuthentificatorDependencies: [Target.Dependency] = [
299317
"BuildSettingsKit",
300318
"WordPressShared",
319+
"WordPressSharedUI",
301320
"WordPressUI",
302321
"WordPressKit",
303322
.product(name: "Gridicons", package: "Gridicons-iOS"),
@@ -313,6 +332,7 @@ enum XcodeSupport {
313332
"SFHFKeychainUtils",
314333
"ShareExtensionCore",
315334
"WordPressShared",
335+
"WordPressSharedUI",
316336
"WordPressUI",
317337
"TextBundle",
318338
"TracksMini",
@@ -357,6 +377,8 @@ enum XcodeSupport {
357377
"WordPressFlux",
358378
"WordPressIntelligence",
359379
"WordPressShared",
380+
"WordPressSharedUI",
381+
"WordPressSharedObjCUI",
360382
"WordPressLegacy",
361383
"WordPressReader",
362384
"WordPressUI",
@@ -401,6 +423,7 @@ enum XcodeSupport {
401423
.xcodeTarget("XcodeTarget_Keystone", dependencies: keystoneDependencies),
402424
.xcodeTarget("XcodeTarget_WordPressTests", dependencies: testDependencies + [
403425
"WordPressShared",
426+
"WordPressSharedUI",
404427
"WordPressUI",
405428
.product(name: "Gravatar", package: "Gravatar-SDK-iOS"),
406429
// Needed by WordPressData because of how linkage works...
@@ -494,6 +517,7 @@ enum XcodeSupport {
494517
"FormattableContentKit",
495518
"SFHFKeychainUtils",
496519
"WordPressShared",
520+
"WordPressSharedUI",
497521
"WordPressKit",
498522
.product(name: "CocoaLumberjack", package: "CocoaLumberjack"),
499523
.product(name: "CocoaLumberjackSwift", package: "CocoaLumberjack"),

Modules/Sources/AztecExtensions/Header+WordPress.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import Foundation
22
import Aztec
33
import Gridicons
44
import WordPressShared
5+
import WordPressSharedUI
56

67
// MARK: - Header and List presentation extensions
78
//

Modules/Sources/FormattableContentKit/Styles/SnippetsContentStyles.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import WordPressShared
2+
import WordPressSharedUI
23

34
public class SnippetsContentStyles: FormattableContentStyles {
45
public var attributes: [NSAttributedString.Key: Any] {

Modules/Sources/FormattableContentKit/Styles/SubjectContentStyles.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import WordPressShared
2+
import WordPressSharedUI
23

34
public class SubjectContentStyles: FormattableContentStyles {
45
public var attributes: [NSAttributedString.Key: Any] {

Modules/Sources/FormattableContentKit/Styles/WPStyleGuide+Notifications.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import Foundation
33
import Gridicons
44
import UIKit
55
import WordPressShared
6+
import WordPressSharedUI
67
import WordPressKit // FIXME: Here just for the NSMutableParagraphStyle custom init
78
import WordPressUI
89

Modules/Sources/JetpackStats/StatsRouter.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import SwiftUI
22
import UIKit
33
import SafariServices
4+
import WordPressSharedUI
45

56
@MainActor
67
public protocol StatsRouterScreenFactory: AnyObject {

Modules/Sources/WordPressReader/Settings/ReaderDisplaySettings.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import UIKit
22
import WordPressShared
3+
import WordPressSharedUI
34

45
public struct ReaderDisplaySettings: Codable, Equatable, Hashable, Sendable {
56

Modules/Sources/WordPressShared/Reachability/ReachabilityUtils.swift

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,6 @@ public class ReachabilityUtils: NSObject {
1414
connectionAvailable
1515
}
1616

17-
@objc
18-
public static func showAlertNoInternetConnection() {
19-
ReachabilityAlert(retryBlock: nil).show()
20-
}
21-
22-
@objc
23-
public static func showAlertNoInternetConnection(retryBlock: (() -> Void)? = nil) {
24-
ReachabilityAlert(retryBlock: retryBlock).show()
25-
}
26-
2717
@objc
2818
public static func noConnectionMessage() -> String {
2919
NSLocalizedString(
@@ -33,10 +23,6 @@ public class ReachabilityUtils: NSObject {
3323
)
3424
}
3525

36-
@objc
37-
public static func alertIsShowing() -> Bool {
38-
currentReachabilityAlert != nil
39-
}
4026

4127
public static func configure(
4228
notificationCenter: NotificationCenter = .default,

Modules/Sources/WordPressSharedObjC/Utility/DisplayableImageHelper.m

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#import "DisplayableImageHelper.h"
2-
#import "NSString+Util.h"
2+
3+
@interface NSObject (NumericValueHack)
4+
- (NSNumber *)numericValue;
5+
@end
36

47
static const NSInteger FeaturedImageMinimumWidth = 150;
58

Modules/Sources/WordPressSharedObjC/Utility/NSString+Util.m renamed to Modules/Sources/WordPressSharedObjCUI/NSString+Util.m

File renamed without changes.

0 commit comments

Comments
 (0)