Skip to content

Commit 14f8d1e

Browse files
Add FXIOS-14316 #31001 Replace OnboardingDefaultBrowserModelProtocol with OnboardingKit version (#31036)
* Replace OnboardingLinkInfoModel with OnboardingKit version - Replace Client's OnboardingLinkInfoModel with OnboardingKit.OnboardingLinkInfoModel - Update NimbusOnboardingFeatureLayer to use OnboardingKit type - Update OnboardingCardInfoModel and protocol to use OnboardingKit type - Update test files to import and use OnboardingKit version - Remove old OnboardingLinkInfoModel.swift file and project references This is Stage 1 of onboarding duplication removal - plug-and-play replacements. * Replace OnboardingButtonInfoModel and OnboardingButtons with OnboardingKit versions - Replace Client's OnboardingButtonInfoModel with OnboardingKit.OnboardingButtonInfoModel<OnboardingActions> - Replace Client's OnboardingButtons with OnboardingKit.OnboardingButtons<OnboardingActions> - Update OnboardingCardInfoModelProtocol to use generic button types - Update OnboardingCardInfoModel to use OnboardingKit generic types - Update NimbusOnboardingFeatureLayer.getOnboardingCardButtons() to return OnboardingKit types - Update all test files to use OnboardingKit generic button types with Client.OnboardingActions - Remove old OnboardingButtonInfoModel.swift and OnboardingButtonsModel.swift files and project references This is Stage 2 of onboarding duplication removal - generic type replacements. * Replace OnboardingDefaultBrowserModelProtocol and add Equatable to OnboardingMultipleChoiceButtonModel - Replace OnboardingDefaultBrowserModelProtocol with OnboardingKit.OnboardingInstructionsPopupInfoModel - Add extension to OnboardingKit.OnboardingInstructionsPopupInfoModel for getAttributedStrings method - Update OnboardingInstructionPopupViewController to use OnboardingKit type - Update OnboardingService to use OnboardingKit types for popup handling - Add Equatable conformance to OnboardingMultipleChoiceButtonModel in OnboardingKit - Simplify comparison logic in OnboardingMultipleChoiceCardViewController using Equatable - Delete old OnboardingDefaultBrowserModelProtocol.swift file - Remove references from project.pbxproj * Fix SwiftLint violations - Break long lines to comply with 125 character limit - Fix opening brace spacing * Replace OnboardingLinkInfoModel with OnboardingKit version - Replace OnboardingLinkInfoModel with OnboardingKit.OnboardingLinkInfoModel - Replace OnboardingButtonInfoModel and OnboardingButtons with OnboardingKit versions - Remove unnecessary OnboardingKit prefixes after old files are deleted - Make OnboardingKit preview enums internal (OnboardingActions, OnboardingMultipleChoiceAction, OnboardingInstructionsPopupActions, OnboardingType) - Remove unnecessary Client prefix from OnboardingActions in test files * Remove unnecessary OnboardingKit. prefixes from type references - Removed OnboardingKit. prefixes where types are already imported from OnboardingKit module - Updated type references in LaunchCoordinator, OnboardingCardInfoModel, OnboardingKitCardInfoModel, and related files - Kept OnboardingKit. prefix only where necessary for disambiguation or protocol conformance * Fix build * Fix compilation * Restore Package.resolved files to match origin/main * Fix warning
1 parent 1942aa2 commit 14f8d1e

16 files changed

+47
-97
lines changed

BrowserKit/Sources/OnboardingKit/Models/Buttons/OnboardingMultipleChoiceButtonModel.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
import Foundation
66
import UIKit
77

8-
public struct OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceActionType: Sendable>: Sendable {
8+
public struct OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceActionType: Hashable & Sendable>:
9+
Equatable, Sendable {
910
public let title: String
1011
public let action: OnboardingMultipleChoiceActionType
1112
public var imageID: String

BrowserKit/Sources/OnboardingKit/Models/OnboardingInstructionsPopupInfoModel.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import Foundation
66

7-
protocol OnboardingDefaultBrowserModelProtocol: Sendable {
7+
public protocol OnboardingDefaultBrowserModelProtocol<OnboardingPopupActionType>: Sendable {
88
associatedtype OnboardingPopupActionType
99
var title: String { get }
1010
var instructionSteps: [String] { get }

firefox-ios/Client.xcodeproj/project.pbxproj

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -744,8 +744,6 @@
744744
74821FFE1DB6D3AC00EEEA72 /* MailSchemes.plist in Resources */ = {isa = PBXBuildFile; fileRef = 74821FFD1DB6D3AC00EEEA72 /* MailSchemes.plist */; };
745745
7482205C1DBAB56300EEEA72 /* MailProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7482205B1DBAB56300EEEA72 /* MailProviders.swift */; };
746746
74B195441CF503FC007F36EF /* RecentlyClosedTabs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74B195431CF503FC007F36EF /* RecentlyClosedTabs.swift */; };
747-
74B420C92A1D0D7A00370E53 /* OnboardingInstructionsPopupInfoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74B420C82A1D0D7A00370E53 /* OnboardingInstructionsPopupInfoModel.swift */; };
748-
74BBDF472A17979000D3BEFE /* OnboardingDefaultBrowserModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BBDF462A17979000D3BEFE /* OnboardingDefaultBrowserModelProtocol.swift */; };
749747
74E36D781B71323500D69DA1 /* SettingsContentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74E36D771B71323500D69DA1 /* SettingsContentViewController.swift */; };
750748
74F80D342A0A52D700013C3D /* PrivacyPolicyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74F80D332A0A52D700013C3D /* PrivacyPolicyViewController.swift */; };
751749
781C19CF2A780BEC0000DF46 /* Common in Frameworks */ = {isa = PBXBuildFile; productRef = 781C19CE2A780BEC0000DF46 /* Common */; };
@@ -784,7 +782,6 @@
784782
80967F802D0A36890057F0C7 /* RecordedNimbusContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80967F7F2D0A36890057F0C7 /* RecordedNimbusContext.swift */; };
785783
81020C922BB5AFA2007B8481 /* OnboardingMultipleChoiceButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81020C912BB5AFA2007B8481 /* OnboardingMultipleChoiceButtonView.swift */; };
786784
81020C942BB5B026007B8481 /* OnboardingMultipleChoiceButtonViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81020C932BB5B026007B8481 /* OnboardingMultipleChoiceButtonViewModel.swift */; };
787-
81055B562BAB7CE200E166B3 /* OnboardingMultipeChoiceButtonModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81055B552BAB7CE200E166B3 /* OnboardingMultipeChoiceButtonModel.swift */; };
788785
810CD9C12BB346D800E290C2 /* OnboardingCardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 810CD9C02BB346D800E290C2 /* OnboardingCardViewController.swift */; };
789786
810CD9C32BB3484F00E290C2 /* OnboardingMultipleChoiceCardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 810CD9C22BB3484F00E290C2 /* OnboardingMultipleChoiceCardViewController.swift */; };
790787
810FF3542B178343009F062C /* FeltPrivacyMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 810FF3532B178343009F062C /* FeltPrivacyMiddleware.swift */; };
@@ -8596,8 +8593,6 @@
85968593
74934281AE0F15BB6EC1E756 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Today.strings; sourceTree = "<group>"; };
85978594
74A44FBEBA309D6D780BC6F8 /* es-CL */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-CL"; path = "es-CL.lproj/LoginManager.strings"; sourceTree = "<group>"; };
85988595
74B195431CF503FC007F36EF /* RecentlyClosedTabs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentlyClosedTabs.swift; sourceTree = "<group>"; };
8599-
74B420C82A1D0D7A00370E53 /* OnboardingInstructionsPopupInfoModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingInstructionsPopupInfoModel.swift; sourceTree = "<group>"; };
8600-
74BBDF462A17979000D3BEFE /* OnboardingDefaultBrowserModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingDefaultBrowserModelProtocol.swift; sourceTree = "<group>"; };
86018596
74C14EA28570D995C545434D /* bg */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bg; path = bg.lproj/AuthenticationManager.strings; sourceTree = "<group>"; };
86028597
74D949BEA49BE912BAFD4406 /* es-MX */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-MX"; path = "es-MX.lproj/FindInPage.strings"; sourceTree = "<group>"; };
86038598
74E36D771B71323500D69DA1 /* SettingsContentViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsContentViewController.swift; sourceTree = "<group>"; };
@@ -8703,7 +8698,6 @@
87038698
80E24B20A5655593E1D9E85B /* zh-TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-TW"; path = "zh-TW.lproj/Search.strings"; sourceTree = "<group>"; };
87048699
81020C912BB5AFA2007B8481 /* OnboardingMultipleChoiceButtonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingMultipleChoiceButtonView.swift; sourceTree = "<group>"; };
87058700
81020C932BB5B026007B8481 /* OnboardingMultipleChoiceButtonViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingMultipleChoiceButtonViewModel.swift; sourceTree = "<group>"; };
8706-
81055B552BAB7CE200E166B3 /* OnboardingMultipeChoiceButtonModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingMultipeChoiceButtonModel.swift; sourceTree = "<group>"; };
87078701
810CD9C02BB346D800E290C2 /* OnboardingCardViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingCardViewController.swift; sourceTree = "<group>"; };
87088702
810CD9C22BB3484F00E290C2 /* OnboardingMultipleChoiceCardViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingMultipleChoiceCardViewController.swift; sourceTree = "<group>"; };
87098703
810FF3532B178343009F062C /* FeltPrivacyMiddleware.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeltPrivacyMiddleware.swift; sourceTree = "<group>"; };
@@ -14919,7 +14913,6 @@
1491914913
C88E7A542A0553180072E638 /* OnboardingViewModel.swift */,
1492014914
8C51ED712DE0A5B500B3E58A /* OnboardingKitViewModel.swift */,
1492114915
435D660423D794B90046EFA2 /* UpdateViewModel.swift */,
14922-
74B420C82A1D0D7A00370E53 /* OnboardingInstructionsPopupInfoModel.swift */,
1492314916
C8CD80DB2A1E8C970097C3AE /* OnboardingTelemetryUtility.swift */,
1492414917
0ABCD45A2D355255005D704A /* TermsOfServiceTelemetry.swift */,
1492514918
81020C932BB5B026007B8481 /* OnboardingMultipleChoiceButtonViewModel.swift */,
@@ -14938,7 +14931,6 @@
1493814931
2109478828AFD24C00B73D44 /* OnboardingViewControllerProtocol.swift */,
1493914932
21371FA328AA7A8D00BC3F37 /* OnboardingViewModelProtocol.swift */,
1494014933
C8610DA92A0EBF7100B79FF1 /* OnboardingCardDelegate.swift */,
14941-
74BBDF462A17979000D3BEFE /* OnboardingDefaultBrowserModelProtocol.swift */,
1494214934
C8CD80D92A1E8C1D0097C3AE /* OnboardingTelemetryProtocol.swift */,
1494314935
810CD9C02BB346D800E290C2 /* OnboardingCardViewController.swift */,
1494414936
81E1914C2BB8578600543D78 /* OnboardingMultipleChoiceSelectionDelegate.swift */,
@@ -18701,14 +18693,12 @@
1870118693
BA4BB99E2D7FB38B006BD137 /* ThemeSelectionView.swift in Sources */,
1870218694
C87DF9DB267247190097E707 /* UIConstants+BottomInset.swift in Sources */,
1870318695
8AD08D1527E9198E00B8E907 /* TabsTelemetry.swift in Sources */,
18704-
74B420C92A1D0D7A00370E53 /* OnboardingInstructionsPopupInfoModel.swift in Sources */,
1870518696
E15DE7C4293A7B0F00B32667 /* PhotonActionSheetTitleHeaderView.swift in Sources */,
1870618697
392ED7E61D0AEFEF009D9B62 /* HomePageAccessors.swift in Sources */,
1870718698
7BA8D1C71BA037F500C8AE9E /* DownloadHelper.swift in Sources */,
1870818699
8AE938192CD91D5A0020E6CF /* TopSiteConfiguration.swift in Sources */,
1870918700
8A0D32842A61E1CC007D976D /* StatusBarOverlay.swift in Sources */,
1871018701
8A5D1CA42A30D69A005AD35C /* SearchSetting.swift in Sources */,
18711-
74BBDF472A17979000D3BEFE /* OnboardingDefaultBrowserModelProtocol.swift in Sources */,
1871218702
8C1C2E452C32D1470087846C /* RemoveAddressButton.swift in Sources */,
1871318703
8C51ED702DE0A4D700B3E58A /* OnboardingKitCardInfoModel.swift in Sources */,
1871418704
8A720C5E2A4C85DA0003018A /* AccountSettingsDelegate.swift in Sources */,
@@ -18763,7 +18753,6 @@
1876318753
EDD2A7FA2CDBD1D100ED464C /* SearchEngineElement+initFromSearchEngine.swift in Sources */,
1876418754
B236204D2B8673DE000B1DE7 /* AddressScrollView.swift in Sources */,
1876518755
E1FF93E428A2E74600E6360E /* WallpaperSelectorViewModel.swift in Sources */,
18766-
81055B562BAB7CE200E166B3 /* OnboardingMultipeChoiceButtonModel.swift in Sources */,
1876718756
D0C95E0E200FD3B200E4E51C /* PrintHelper.swift in Sources */,
1876818757
C8CD80DA2A1E8C1D0097C3AE /* OnboardingTelemetryProtocol.swift in Sources */,
1876918758
8A5D1CB02A30D740005AD35C /* SearchBarSetting.swift in Sources */,

firefox-ios/Client/Coordinators/Launch/LaunchCoordinator.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ final class LaunchCoordinator: BaseCoordinator,
100100
order: 20,
101101
title: .Onboarding.Modern.TermsOfService.Title,
102102
body: .Onboarding.Modern.TermsOfService.Subtitle,
103-
buttons: OnboardingKit.OnboardingButtons(
104-
primary: OnboardingKit.OnboardingButtonInfoModel(
103+
buttons: OnboardingButtons(
104+
primary: OnboardingButtonInfoModel(
105105
title: .Onboarding.Modern.TermsOfService.AgreementButtonTitleV3,
106106
action: OnboardingActions.syncSignIn
107107
)

firefox-ios/Client/Frontend/Onboarding/Models/OnboardingCardInfoModel.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ struct OnboardingCardInfoModel: OnboardingCardInfoModelProtocol {
1111
var order: Int
1212
var title: String
1313
var body: String
14-
var instructionsPopup: OnboardingInstructionsPopupInfoModel?
14+
var instructionsPopup: OnboardingInstructionsPopupInfoModel<OnboardingInstructionsPopupActions>?
1515
var link: OnboardingLinkInfoModel?
1616
var buttons: OnboardingButtons<OnboardingActions>
17-
var multipleChoiceButtons: [OnboardingMultipleChoiceButtonModel]
17+
var multipleChoiceButtons: [OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceAction>]
1818
var onboardingType: OnboardingType
1919
var a11yIdRoot: String
2020

@@ -32,11 +32,11 @@ struct OnboardingCardInfoModel: OnboardingCardInfoModelProtocol {
3232
body: String,
3333
link: OnboardingLinkInfoModel?,
3434
buttons: OnboardingButtons<OnboardingActions>,
35-
multipleChoiceButtons: [OnboardingMultipleChoiceButtonModel],
35+
multipleChoiceButtons: [OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceAction>],
3636
onboardingType: OnboardingType,
3737
a11yIdRoot: String,
3838
imageID: String,
39-
instructionsPopup: OnboardingInstructionsPopupInfoModel?
39+
instructionsPopup: OnboardingInstructionsPopupInfoModel<OnboardingInstructionsPopupActions>?
4040
) {
4141
self.cardType = cardType
4242
self.name = name

firefox-ios/Client/Frontend/Onboarding/Models/OnboardingInstructionsPopupInfoModel.swift

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

firefox-ios/Client/Frontend/Onboarding/Models/OnboardingKitCardInfoModel.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ struct OnboardingKitCardInfoModel: OnboardingKit.OnboardingCardInfoModelProtocol
5151
self.embededLinkText = embededLinkText
5252
}
5353

54-
var defaultSelectedButton: OnboardingKit.OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceAction>? {
54+
var defaultSelectedButton: OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceAction>? {
5555
guard !multipleChoiceButtons.isEmpty else { return nil }
5656

5757
return findHighestPriorityButton() ?? multipleChoiceButtons.first
5858
}
5959

6060
private func findHighestPriorityButton()
61-
-> OnboardingKit.OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceAction>? {
61+
-> OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceAction>? {
6262
let selectableButtons = multipleChoiceButtons
6363
.filter { hasDefaultSelection($0.action) }
6464
.map { ($0, defaultSelectionPriority($0.action)) }

firefox-ios/Client/Frontend/Onboarding/Models/OnboardingMultipeChoiceButtonModel.swift

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

firefox-ios/Client/Frontend/Onboarding/Models/OnboardingMultipleChoiceButtonViewModel.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,17 @@
33
// file, You can obtain one at http://mozilla.org/MPL/2.0/
44

55
import Foundation
6+
import OnboardingKit
67

78
class OnboardingMultipleChoiceButtonViewModel {
89
var presentingCardName: String
910
var isSelected: Bool
10-
let info: OnboardingMultipleChoiceButtonModel
11+
let info: OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceAction>
1112
let a11yIDRoot: String
1213

1314
init(
1415
isSelected: Bool,
15-
info: OnboardingMultipleChoiceButtonModel,
16+
info: OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceAction>,
1617
presentingCardName: String,
1718
a11yIDRoot: String
1819
) {

firefox-ios/Client/Frontend/Onboarding/Protocols/OnboardingCardInfoModelProtocol.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ protocol OnboardingCardInfoModelProtocol {
1111
var order: Int { get set }
1212
var title: String { get set }
1313
var body: String { get set }
14-
var instructionsPopup: OnboardingInstructionsPopupInfoModel? { get set }
14+
var instructionsPopup: OnboardingInstructionsPopupInfoModel<OnboardingInstructionsPopupActions>? {
15+
get set
16+
}
1517
var link: OnboardingLinkInfoModel? { get set }
1618
var buttons: OnboardingButtons<OnboardingActions> { get set }
17-
var multipleChoiceButtons: [OnboardingMultipleChoiceButtonModel] { get set }
19+
var multipleChoiceButtons: [OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceAction>] { get set }
1820
var onboardingType: OnboardingType { get set }
1921
var a11yIdRoot: String { get set }
2022
var imageID: String { get set }
@@ -29,10 +31,10 @@ protocol OnboardingCardInfoModelProtocol {
2931
body: String,
3032
link: OnboardingLinkInfoModel?,
3133
buttons: OnboardingButtons<OnboardingActions>,
32-
multipleChoiceButtons: [OnboardingMultipleChoiceButtonModel],
34+
multipleChoiceButtons: [OnboardingMultipleChoiceButtonModel<OnboardingMultipleChoiceAction>],
3335
onboardingType: OnboardingType,
3436
a11yIdRoot: String,
3537
imageID: String,
36-
instructionsPopup: OnboardingInstructionsPopupInfoModel?
38+
instructionsPopup: OnboardingInstructionsPopupInfoModel<OnboardingInstructionsPopupActions>?
3739
)
3840
}

0 commit comments

Comments
 (0)