Skip to content

Commit 75f3331

Browse files
authored
Merge branch 'trunk' into task/hide-cart-images-when-the-view-is-too-narrow
2 parents 5119757 + 7e6c816 commit 75f3331

File tree

87 files changed

+5846
-1953
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+5846
-1953
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
<!--
22
Contains editorialized release notes. Raw release notes should go into `RELEASE-NOTES.txt`.
33
-->
4+
## 21.6
5+
Experience a refreshed WooCommerce app with an updated look that aligns with our new branding! We’ve also improved payment reliability—card reader updates now handle low battery issues better, and errors during payments and refunds are managed more smoothly. Enjoy a more seamless and polished experience in every transaction.
6+
47
## 21.5
58
Get ready for a smoother WooCommerce experience! This update brings smarter AI-powered product previews, instant dashboard stats, and improved email receipts for failed payments. We’ve also fine-tuned order creation, enhanced Jetpack setups, and enabled previews for coming-soon stores. Plus, we’ve addressed navigation, database recovery, and streamlined workflows.
69

Podfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ target 'WooCommerce' do
9191
pod 'Gridicons', '~> 1.2.0'
9292

9393
# To allow pod to pick up beta versions use -beta. E.g., 1.1.7-beta.1
94-
# pod 'WordPressAuthenticator', '~> 9.10.1'
94+
pod 'WordPressAuthenticator', '~> 9.10.2'
9595
# pod 'WordPressAuthenticator', git: 'https://github.com/wordpress-mobile/WordPressAuthenticator-iOS.git', branch: ''
96-
pod 'WordPressAuthenticator', git: 'https://github.com/wordpress-mobile/WordPressAuthenticator-iOS.git', commit: 'e5247b2d9bdb522c5d210dd6b66d58a4013eed99'
96+
# pod 'WordPressAuthenticator', git: 'https://github.com/wordpress-mobile/WordPressAuthenticator-iOS.git', commit: 'e5247b2d9bdb522c5d210dd6b66d58a4013eed99'
9797
# pod 'WordPressAuthenticator', path: '../WordPressAuthenticator-iOS'
9898

9999
wordpress_shared

Podfile.lock

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ PODS:
2424
- WordPress-Aztec-iOS (1.19.10)
2525
- WordPress-Editor-iOS (1.19.10):
2626
- WordPress-Aztec-iOS (= 1.19.10)
27-
- WordPressAuthenticator (9.10.1):
27+
- WordPressAuthenticator (9.10.2):
2828
- Gridicons (~> 1.0)
2929
- "NSURL+IDN (= 0.4)"
3030
- SVProgressHUD (~> 2.2.5)
@@ -67,14 +67,16 @@ DEPENDENCIES:
6767
- StripeTerminal (~> 3.9.1)
6868
- SwiftLint (= 0.54.0)
6969
- WordPress-Editor-iOS (~> 1.19)
70-
- WordPressAuthenticator (from `https://github.com/wordpress-mobile/WordPressAuthenticator-iOS.git`, commit `e5247b2d9bdb522c5d210dd6b66d58a4013eed99`)
70+
- WordPressAuthenticator (~> 9.10.2)
7171
- WordPressShared (~> 2.1)
7272
- WordPressUI (~> 1.15)
7373
- Wormholy (~> 1.6.6)
7474
- WPMediaPicker (~> 1.8)
7575
- ZendeskSupportSDK (~> 9.0.0)
7676

7777
SPEC REPOS:
78+
https://github.com/wordpress-mobile/cocoapods-specs.git:
79+
- WordPressAuthenticator
7880
trunk:
7981
- Alamofire
8082
- Automattic-Tracks-iOS
@@ -107,16 +109,6 @@ SPEC REPOS:
107109
- ZendeskSupportProvidersSDK
108110
- ZendeskSupportSDK
109111

110-
EXTERNAL SOURCES:
111-
WordPressAuthenticator:
112-
:commit: e5247b2d9bdb522c5d210dd6b66d58a4013eed99
113-
:git: https://github.com/wordpress-mobile/WordPressAuthenticator-iOS.git
114-
115-
CHECKOUT OPTIONS:
116-
WordPressAuthenticator:
117-
:commit: e5247b2d9bdb522c5d210dd6b66d58a4013eed99
118-
:git: https://github.com/wordpress-mobile/WordPressAuthenticator-iOS.git
119-
120112
SPEC CHECKSUMS:
121113
Alamofire: 3ca42e259043ee0dc5c0cdd76c4bc568b8e42af7
122114
Automattic-Tracks-iOS: 2d4bee68ff9db4d51f2f6c9fc85857dc69a008a4
@@ -135,7 +127,7 @@ SPEC CHECKSUMS:
135127
UIDeviceIdentifier: 442b65b4ff1832d4ca9c2a157815cb29ad981b17
136128
WordPress-Aztec-iOS: 8eaa928fb3a5694924ed3befac64beaae5656e12
137129
WordPress-Editor-iOS: 98ce1fc542c3a09e48ddc9423405b1d1e48240f1
138-
WordPressAuthenticator: d54323ca733b41b10a7fd64f5d1ca2d9efc47720
130+
WordPressAuthenticator: 29baee176dea1dc0d414a9086723cabc54cb20f7
139131
WordPressKit: faf8c6de7c2acfe71cf95b4db896901060967089
140132
WordPressShared: 0aa459e5257a77184db87805a998f447443c9706
141133
WordPressUI: 700e3ec5a9f77b6920c8104c338c85788036ab3c
@@ -150,6 +142,6 @@ SPEC CHECKSUMS:
150142
ZendeskSupportProvidersSDK: 281acf2bb731d2a67f913cfe653ed0da9f5b2f42
151143
ZendeskSupportSDK: b512cfc74b6bf8490e589f02cf52e27ed4f2bebe
152144

153-
PODFILE CHECKSUM: a5c6ecec21ce4254ca5a1f247b0b6aee18153139
145+
PODFILE CHECKSUM: 85b59bc018f0afba2a57464d12a00fce1deaa13c
154146

155147
COCOAPODS: 1.16.2

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22

3-
<h1 align="center"><img src="docs/images/logo-woocommerce.svg" width="300"><br>for iOS</h1>
3+
<h1 align="center"><img src="docs/images/logo-woo.svg" width="300"><br>for iOS</h1>
44

55
<p align="center">A Jetpack-powered companion app for WooCommerce.</p>
66

RELEASE-NOTES.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
*** PLEASE FOLLOW THIS FORMAT: [<priority indicator, more stars = higher priority>] <description> [<PR URL>]
22
*** Use [*****] to indicate smoke tests of all critical flows should be run on the final IPA before release (e.g. major library or OS update).
3+
21.7
4+
-----
5+
- [*] Product Details: Display cover tag on the first product image [https://github.com/woocommerce/woocommerce-ios/pull/15041]
6+
- [*] Payments: Update learn more links to open Stripe-specific docs when using that gateway [https://github.com/woocommerce/woocommerce-ios/pull/15035]
7+
- [x] Now, usernames and emails in text fields across multiple login views are no longer capitalized. [https://github.com/woocommerce/woocommerce-ios/pull/15002]
8+
39
21.6
410
-----
511
- [*] Payments: improve retry handling when card reader updates fail due to low battery [https://github.com/woocommerce/woocommerce-ios/pull/14990]

WooCommerce/Classes/Analytics/TracksProvider.swift

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ public class TracksProvider: NSObject, AnalyticsProvider {
1212
tracksService.eventNamePrefix = Constants.eventNamePrefix
1313
return tracksService
1414
}()
15+
16+
private static var isPOSModeActive: Bool = false
17+
18+
public static func setPOSMode(_ active: Bool) {
19+
isPOSModeActive = active
20+
}
1521
}
1622

1723

@@ -28,6 +34,7 @@ public extension TracksProvider {
2834
}
2935

3036
func track(_ eventName: String, withProperties properties: [AnyHashable: Any]?) {
37+
let eventName = decorateEventNameForPOSIfNeeded(eventName)
3138
if let properties {
3239
guard Self.tracksService.trackEventName(eventName, withCustomProperties: properties) else {
3340
return DDLogError("🔴 Error tracking \(eventName) with properties: \(properties)")
@@ -102,6 +109,26 @@ private extension TracksProvider {
102109
}
103110
}
104111

112+
private func decorateEventNameForPOSIfNeeded(_ eventName: String) -> String {
113+
// We do not want to track some events that might happen in POS mode as `pos_` events,
114+
// for example, when backgrounding the app or finishing async work from the app side.
115+
// Ref: https://github.com/woocommerce/woocommerce-ios/pull/15006#issuecomment-2622001706
116+
let exemptedEvents: Set<String> = [
117+
"application_opened",
118+
"application_closed",
119+
"dynamic_dashboard_card_data_loading_completed"
120+
]
121+
if exemptedEvents.contains(eventName) {
122+
return eventName
123+
}
124+
125+
if Self.isPOSModeActive {
126+
let prefix = "pos_"
127+
return "\(prefix)\(eventName)"
128+
}
129+
return eventName
130+
}
131+
105132
func refreshTracksMetadata() {
106133
DDLogInfo("♻️ Refreshing tracks metadata...")
107134
var userProperties = [String: Any]()

WooCommerce/Classes/Analytics/WooAnalyticsStat.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1268,9 +1268,9 @@ enum WooAnalyticsStat: String {
12681268
case backgroundUpdatesDisabled = "background_updates_disabled"
12691269

12701270
// MARK: Point of Sale events
1271-
case pointOfSaleAddItemToCart = "pos_item_added_to_cart"
1272-
case pointOfSalePaymentsOnboardingShown = "pos_payments_onboarding_shown"
1273-
case pointOfSalePaymentsOnboardingDismissed = "pos_payments_onboarding_dismissed"
1271+
case pointOfSaleAddItemToCart = "item_added_to_cart"
1272+
case pointOfSalePaymentsOnboardingShown = "payments_onboarding_shown"
1273+
case pointOfSalePaymentsOnboardingDismissed = "payments_onboarding_dismissed"
12741274

12751275
// MARK: Custom Fields events
12761276
case productDetailCustomFieldsTapped = "product_detail_custom_fields_tapped"

WooCommerce/Classes/Authentication/Jetpack Setup/Site Credential Login/SiteCredentialLoginView.swift

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -102,23 +102,25 @@ struct SiteCredentialLoginView: View {
102102
VStack(alignment: .leading, spacing: Constants.fieldVerticalSpacing) {
103103
// Username field.
104104
AuthenticationFormFieldView(viewModel: .init(header: Localization.usernameFieldTitle,
105-
placeholder: Localization.enterUsername,
106-
keyboardType: .default,
107-
text: $viewModel.username,
108-
isSecure: false,
109-
errorMessage: nil,
110-
isFocused: focusedField == .username))
105+
placeholder: Localization.enterUsername,
106+
keyboardType: .default,
107+
text: $viewModel.username,
108+
isSecure: false,
109+
errorMessage: nil,
110+
isFocused: focusedField == .username,
111+
autocapitalization: .none))
111112
.focused($focusedField, equals: .username)
112113
.disabled(viewModel.isLoggingIn)
113114

114115
// Password field.
115116
AuthenticationFormFieldView(viewModel: .init(header: Localization.passwordFieldTitle,
116-
placeholder: Localization.enterPassword,
117-
keyboardType: .default,
118-
text: $viewModel.password,
119-
isSecure: true,
120-
errorMessage: nil,
121-
isFocused: focusedField == .password))
117+
placeholder: Localization.enterPassword,
118+
keyboardType: .default,
119+
text: $viewModel.password,
120+
isSecure: true,
121+
errorMessage: nil,
122+
isFocused: focusedField == .password,
123+
autocapitalization: .none))
122124
.focused($focusedField, equals: .password)
123125
.disabled(viewModel.isLoggingIn)
124126

WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ struct LoginPrologueView: View {
5959
.padding(.bottom, 4 * Layout.stackSpacing)
6060

6161
Text(Localization.title)
62+
.accessibilityIdentifier("prologue-title-label")
6263
.font(.title.bold())
6364
.multilineTextAlignment(.center)
6465
.foregroundColor(.white)

WooCommerce/Classes/Authentication/WPComLogin/WPCom2FALoginView.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ struct WPCom2FALoginView: View {
7575
text: $viewModel.verificationCode,
7676
isSecure: false,
7777
errorMessage: nil,
78-
isFocused: isFieldFocused
78+
isFocused: isFieldFocused,
79+
autocapitalization: .none
7980
))
8081
.focused($isFieldFocused)
8182

0 commit comments

Comments
 (0)