Skip to content

Commit 06ff19c

Browse files
Merge pull request #10950 from wordpress-mobile/issue/wpkit-78-locale-integration
Integrated locale handling changes in WordPressKit
2 parents 06e80e4 + c6c40e3 commit 06ff19c

File tree

9 files changed

+56
-18
lines changed

9 files changed

+56
-18
lines changed

Podfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ def wordpress_ui
5252
end
5353

5454
def wordpress_kit
55-
pod 'WordPressKit', '~> 2.0.0-beta.3'
56-
##pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :commit => '8fb779907560f98ffa3d464d46badb5d1481cfcf'
55+
pod 'WordPressKit', '~> 2.0.0-beta.4'
56+
#pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :commit => '0469f41'
5757
##pod 'WordPressKit', :path => '~/Developer/a8c/WordPressKit-iOS'
5858
end
5959

Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ PODS:
188188
- WordPressKit (~> 2.0-beta)
189189
- WordPressShared (~> 1.4)
190190
- WordPressUI (~> 1.0)
191-
- WordPressKit (2.0.0-beta.3):
191+
- WordPressKit (2.0.0-beta.4):
192192
- Alamofire (~> 4.7.3)
193193
- CocoaLumberjack (= 3.4.2)
194194
- NSObject-SafeExpectations (= 0.0.3)
@@ -245,7 +245,7 @@ DEPENDENCIES:
245245
- SVProgressHUD (= 2.2.5)
246246
- WordPress-Editor-iOS (= 1.4.2)
247247
- WordPressAuthenticator (~> 1.1.9-beta)
248-
- WordPressKit (~> 2.0.0-beta.3)
248+
- WordPressKit (~> 2.0.0-beta.4)
249249
- WordPressShared (~> 1.7.0-beta)
250250
- WordPressUI (from `https://github.com/wordpress-mobile/WordPressUI-iOS.git`, tag `1.2.0`)
251251
- WPMediaPicker (= 1.3.2)
@@ -377,14 +377,14 @@ SPEC CHECKSUMS:
377377
WordPress-Aztec-iOS: d9e816350ab1e200681d433287fbb079675e9159
378378
WordPress-Editor-iOS: 5a09651534181c9f3ab43516b7666e9c55b2330e
379379
WordPressAuthenticator: 40ed3d920f134227a6ab069576378293c0bda401
380-
WordPressKit: c70ff713b000e346aa345d71d6dcf9c8aa66c767
380+
WordPressKit: 9f32d40719c9dbd32d2f4e36cfb61af02e952dac
381381
WordPressShared: 9889ea6eaeb951df12e2901f98bd194df728d2a1
382382
WordPressUI: 44fe43a9c5c504dfd534286e39e1ce6ebcd69ff5
383383
WPMediaPicker: e50edd8f30f5d87288840941ef3ff9cd11860937
384384
wpxmlrpc: 6ba55c773cfa27083ae4a2173e69b19f46da98e2
385385
yoga: f37b1edbd68be803f1dc4d57d40d8a5b277d8e2c
386386
ZendeskSDK: 44ee00338dd718495f0364369420ae11b389c878
387387

388-
PODFILE CHECKSUM: d53f6597e345ff4aed738da51e4a65d64f7aa360
388+
PODFILE CHECKSUM: 4051af86a8ff0412cf4addbe5e42347cca8e6021
389389

390390
COCOAPODS: 1.5.3
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
2+
import Foundation
3+
import WordPressKit
4+
5+
extension WPAccount {
6+
/// Returns an instance of the WPCOM REST API suitable for v2 endpoints.
7+
/// If the user is not authenticated, this will be anonymous.
8+
///
9+
var wordPressComRestV2Api: WordPressComRestApi {
10+
let token = authToken
11+
let userAgent = WPUserAgent.wordPress()
12+
let localeKey = WordPressComRestApi.LocaleKeyV2
13+
14+
return WordPressComRestApi(oAuthToken: token, userAgent: userAgent, localeKey: localeKey)
15+
}
16+
}

WordPress/Classes/Services/SiteSegmentsService.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,12 @@ final class SiteCreationSegmentsService: LocalCoreDataService, SiteSegmentsServi
2727
self.accountService = AccountService(managedObjectContext: context)
2828

2929
let api: WordPressComRestApi
30-
if let wpcomApi = accountService.defaultWordPressComAccount()?.wordPressComRestApi {
31-
api = wpcomApi
30+
if let account = accountService.defaultWordPressComAccount() {
31+
api = account.wordPressComRestV2Api
3232
} else {
33-
api = WordPressComRestApi(userAgent: WPUserAgent.wordPress())
33+
api = WordPressComRestApi.anonymousApi(userAgent: WPUserAgent.wordPress(), localeKey: WordPressComRestApi.LocaleKeyV2)
3434
}
35+
3536
self.remoteService = WordPressComServiceRemote(wordPressComRestApi: api)
3637

3738
super.init(managedObjectContext: context)

WordPress/Classes/Services/SiteVerticalsPromptService.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,12 @@ final class SiteCreationVerticalsPromptService: LocalCoreDataService, SiteVertic
4242
self.accountService = AccountService(managedObjectContext: context)
4343

4444
let api: WordPressComRestApi
45-
if let wpcomApi = accountService.defaultWordPressComAccount()?.wordPressComRestApi {
46-
api = wpcomApi
45+
if let account = accountService.defaultWordPressComAccount() {
46+
api = account.wordPressComRestV2Api
4747
} else {
48-
api = WordPressComRestApi(userAgent: WPUserAgent.wordPress())
48+
api = WordPressComRestApi.anonymousApi(userAgent: WPUserAgent.wordPress(), localeKey: WordPressComRestApi.LocaleKeyV2)
4949
}
50+
5051
self.remoteService = WordPressComServiceRemote(wordPressComRestApi: api)
5152

5253
super.init(managedObjectContext: context)

WordPress/Classes/Services/SiteVerticalsService.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ final class SiteCreationVerticalsService: LocalCoreDataService, SiteVerticalsSer
4444
self.accountService = AccountService(managedObjectContext: context)
4545

4646
let api: WordPressComRestApi
47-
if let wpcomApi = accountService.defaultWordPressComAccount()?.wordPressComRestApi {
48-
api = wpcomApi
47+
if let account = accountService.defaultWordPressComAccount() {
48+
api = account.wordPressComRestV2Api
4949
} else {
50-
api = WordPressComRestApi(userAgent: WPUserAgent.wordPress())
50+
api = WordPressComRestApi.anonymousApi(userAgent: WPUserAgent.wordPress(), localeKey: WordPressComRestApi.LocaleKeyV2)
5151
}
5252
self.remoteService = WordPressComServiceRemote(wordPressComRestApi: api)
5353

WordPress/Classes/Stores/ActivityStore.swift

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ private extension ActivityStore {
237237
return
238238
}
239239

240-
remote(site: site)?.restoreSite(
240+
remoteV1(site: site)?.restoreSite(
241241
site.siteID,
242242
rewindID: rewindID,
243243
success: { [actionDispatcher] restoreID in
@@ -374,15 +374,27 @@ private extension ActivityStore {
374374
}
375375

376376
// MARK: - Helpers
377+
377378
func remote(site: JetpackSiteRef) -> ActivityServiceRemote? {
378379
guard let token = CredentialsService().getOAuthToken(site: site) else {
379380
return nil
380381
}
381-
let api = WordPressComRestApi(oAuthToken: token, userAgent: WPUserAgent.wordPress())
382+
383+
let api = WordPressComRestApi(oAuthToken: token, userAgent: WPUserAgent.wordPress(), localeKey: WordPressComRestApi.LocaleKeyV2)
384+
api.appendsPreferredLanguageLocale = false // ActivityServiceRemote currently injects "locale"
382385

383386
return ActivityServiceRemote(wordPressComRestApi: api)
384387
}
385388

389+
func remoteV1(site: JetpackSiteRef) -> ActivityServiceRemote_ApiVersion1_0? {
390+
guard let token = CredentialsService().getOAuthToken(site: site) else {
391+
return nil
392+
}
393+
let api = WordPressComRestApi(oAuthToken: token, userAgent: WPUserAgent.wordPress())
394+
395+
return ActivityServiceRemote_ApiVersion1_0(wordPressComRestApi: api)
396+
}
397+
386398
private func mediumString(from date: Date, adjustingTimezoneTo site: JetpackSiteRef) -> String {
387399
let formatter = ActivityDateFormatting.mediumDateFormatterWithTime(for: site)
388400
return formatter.string(from: date)

WordPress/Classes/Stores/TimeZoneStore.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ class TimeZoneStore: QueryStore<TimeZoneStoreState, TimeZoneQuery> {
7171
private extension TimeZoneStore {
7272
func fetchTimeZones() {
7373
state = .loading
74-
let remote = TimeZoneServiceRemote(wordPressComRestApi: .anonymousApi(userAgent: WPUserAgent.wordPress()))
74+
75+
let api: WordPressComRestApi = .anonymousApi(userAgent: WPUserAgent.wordPress())
76+
api.appendsPreferredLanguageLocale = false // TimeZoneServiceRemote currently injects "_locale"
77+
78+
let remote = TimeZoneServiceRemote(wordPressComRestApi: api)
7579
remote.getTimezones(
7680
success: { [weak self] (groups) in
7781
self?.state = .loaded(groups)

WordPress/WordPress.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,7 @@
526526
73F6DD42212BA54700CE447D /* RichNotificationContentFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73F6DD41212BA54700CE447D /* RichNotificationContentFormatter.swift */; };
527527
73F6DD44212C714F00CE447D /* RichNotificationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73F6DD43212C714F00CE447D /* RichNotificationViewModel.swift */; };
528528
73F6DD45212C714F00CE447D /* RichNotificationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73F6DD43212C714F00CE447D /* RichNotificationViewModel.swift */; };
529+
73FEC871220B358500CEF791 /* WPAccount+RestApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73FEC870220B358500CEF791 /* WPAccount+RestApi.swift */; };
529530
740219FE202E12F4006CC39F /* UploadOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 741E22441FC0CC55007967AB /* UploadOperation.swift */; };
530531
740219FF202E12F4006CC39F /* PostUploadOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74AF4D711FE417D200E3EBFE /* PostUploadOperation.swift */; };
531532
74021A00202E12F4006CC39F /* MediaUploadOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74AF4D6D1FE417D200E3EBFE /* MediaUploadOperation.swift */; };
@@ -2389,6 +2390,7 @@
23892390
73EDC709212E5D6700E5E3ED /* RemoteNotificationStyles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteNotificationStyles.swift; sourceTree = "<group>"; };
23902391
73F6DD41212BA54700CE447D /* RichNotificationContentFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RichNotificationContentFormatter.swift; sourceTree = "<group>"; };
23912392
73F6DD43212C714F00CE447D /* RichNotificationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RichNotificationViewModel.swift; sourceTree = "<group>"; };
2393+
73FEC870220B358500CEF791 /* WPAccount+RestApi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WPAccount+RestApi.swift"; sourceTree = "<group>"; };
23922394
73FEFF1991AE9912FB2DA9BC /* Pods-WordPressNotificationServiceExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressNotificationServiceExtension.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressNotificationServiceExtension/Pods-WordPressNotificationServiceExtension.release.xcconfig"; sourceTree = "<group>"; };
23932395
740516882087B73400252FD0 /* SearchableActivityConvertable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchableActivityConvertable.swift; sourceTree = "<group>"; };
23942396
740BD8331A0D4C3600F04D18 /* WPUploadStatusButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WPUploadStatusButton.h; sourceTree = "<group>"; };
@@ -4480,6 +4482,7 @@
44804482
E105E9CD1726955600C0D9E7 /* WPAccount.h */,
44814483
E105E9CE1726955600C0D9E7 /* WPAccount.m */,
44824484
E12DB07A1C48D1C200A6C1D4 /* WPAccount+AccountSettings.swift */,
4485+
73FEC870220B358500CEF791 /* WPAccount+RestApi.swift */,
44834486
46F84612185A8B7E009D0DA5 /* PostContentProvider.h */,
44844487
5D35F7581A042255004E7B0D /* WPCommentContentViewProvider.h */,
44854488
173BCE781CEB780800AE8817 /* Domain.swift */,
@@ -10224,6 +10227,7 @@
1022410227
E66969E01B9E648100EC9C00 /* ReaderTopicToReaderDefaultTopic37to38.swift in Sources */,
1022510228
9822AFA021EECB8E007D922D /* AnnualSiteStatsCell.swift in Sources */,
1022610229
82A062DE2017BCBA0084CE7C /* ActivityListSectionHeaderView.swift in Sources */,
10230+
73FEC871220B358500CEF791 /* WPAccount+RestApi.swift in Sources */,
1022710231
B5FF3BE71CAD881100C1D597 /* ImageCropOverlayView.swift in Sources */,
1022810232
E6A338501BB0A70F00371587 /* ReaderGapMarkerCell.swift in Sources */,
1022910233
98BDFF6B20D0732900C72C58 /* SupportTableViewController+Activity.swift in Sources */,

0 commit comments

Comments
 (0)