From 6fbe09de0099e709e6391e98b8a39918760d17ec Mon Sep 17 00:00:00 2001 From: IvanStepanok <128456094+IvanStepanok@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:16:21 +0300 Subject: [PATCH] =?UTF-8?q?What=E2=80=99s=20new=20screen=20(After=20Login?= =?UTF-8?q?=20Experience)=20(#131)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add whats new screen * add whats new logic after user login * code style fixes add accessibility support add feature flag to Config * Add tests * change the done button icon and add the fade-in animation to the previous button * Update Config.swift change whatsNewEnabled to false * fix mock files * add test file to project --- .../Presentation/Login/SignInViewModel.swift | 2 +- .../Registration/SignUpViewModel.swift | 2 +- .../AuthorizationMock.generated.swift | 40 +- .../Login/SignInViewModelTests.swift | 14 +- .../Register/SignUpViewModelTests.swift | 10 +- Core/Core/Configuration/BaseRouter.swift | 4 +- Core/Core/Configuration/Config.swift | 2 + Course/CourseTests/CourseMock.generated.swift | 20 +- .../DashboardMock.generated.swift | 20 +- .../DiscoveryMock.generated.swift | 20 +- .../contents.xcworkspacedata | 3 + .../DiscussionMock.generated.swift | 40 +- OpenEdX.xcodeproj/project.pbxproj | 6 + .../xcschemes/OpenEdXDev.xcscheme | 11 +- OpenEdX.xcworkspace/contents.xcworkspacedata | 3 + OpenEdX/DI/AppAssembly.swift | 9 + OpenEdX/Data/AppStorage.swift | 17 +- OpenEdX/RouteController.swift | 28 +- OpenEdX/Router.swift | 25 +- OpenEdX/View/MainScreenView.swift | 1 + Podfile | 9 + Podfile.lock | 2 +- .../ProfileTests/ProfileMock.generated.swift | 40 +- WhatsNew/.gitignore | 99 ++ WhatsNew/Mockfile | 17 + WhatsNew/WhatsNew.xcodeproj/project.pbxproj | 1499 +++++++++++++++++ .../xcshareddata/xcschemes/WhatsNew.xcscheme | 79 + .../Assets.xcassets/1.0/Contents.json | 6 + .../1.0/image1_1.0.imageset/Contents.json | 15 + .../1.0/image1_1.0.imageset/Group 97.png | Bin 0 -> 34041 bytes .../1.0/image2_1.0.imageset/Contents.json | 12 + .../1.0/image2_1.0.imageset/Group 96-2.png | Bin 0 -> 32412 bytes .../1.0/image3_1.0.imageset/Contents.json | 12 + .../1.0/image3_1.0.imageset/globe.png | Bin 0 -> 22904 bytes .../1.0/image4_1.0.imageset/Contents.json | 12 + .../feature screenshot.jpg | Bin 0 -> 208602 bytes .../WhatsNew/Assets.xcassets/Contents.json | 6 + WhatsNew/WhatsNew/Data/WhatsNew.json | 52 + WhatsNew/WhatsNew/Data/WhatsNewModel.swift | 69 + WhatsNew/WhatsNew/Data/WhatsNewStorage.swift | 21 + WhatsNew/WhatsNew/Domain/WhatsNewPage.swift | 14 + WhatsNew/WhatsNew/Info.plist | 12 + .../Presentation/Elements/PageControl.swift | 32 + .../Elements/WhatsNewNavigationButton.swift | 63 + .../Presentation/WhatsNewRouter.swift | 19 + .../WhatsNew/Presentation/WhatsNewView.swift | 160 ++ .../Presentation/WhatsNewViewModel.swift | 73 + WhatsNew/WhatsNew/SwiftGen/Strings.swift | 47 + .../WhatsNew/en.lproj/Localizable.strings | 13 + .../WhatsNew/uk.lproj/Localizable.strings | 12 + .../Presentation/WhatsNewTests.swift | 27 + .../WhatsNewMock.generated.swift | 19 + WhatsNew/swiftgen.yml | 18 + generateAllMocks.sh | 2 + 54 files changed, 2622 insertions(+), 116 deletions(-) create mode 100644 WhatsNew/.gitignore create mode 100644 WhatsNew/Mockfile create mode 100644 WhatsNew/WhatsNew.xcodeproj/project.pbxproj create mode 100644 WhatsNew/WhatsNew.xcodeproj/xcshareddata/xcschemes/WhatsNew.xcscheme create mode 100644 WhatsNew/WhatsNew/Assets.xcassets/1.0/Contents.json create mode 100644 WhatsNew/WhatsNew/Assets.xcassets/1.0/image1_1.0.imageset/Contents.json create mode 100644 WhatsNew/WhatsNew/Assets.xcassets/1.0/image1_1.0.imageset/Group 97.png create mode 100644 WhatsNew/WhatsNew/Assets.xcassets/1.0/image2_1.0.imageset/Contents.json create mode 100644 WhatsNew/WhatsNew/Assets.xcassets/1.0/image2_1.0.imageset/Group 96-2.png create mode 100644 WhatsNew/WhatsNew/Assets.xcassets/1.0/image3_1.0.imageset/Contents.json create mode 100644 WhatsNew/WhatsNew/Assets.xcassets/1.0/image3_1.0.imageset/globe.png create mode 100644 WhatsNew/WhatsNew/Assets.xcassets/1.0/image4_1.0.imageset/Contents.json create mode 100644 WhatsNew/WhatsNew/Assets.xcassets/1.0/image4_1.0.imageset/feature screenshot.jpg create mode 100644 WhatsNew/WhatsNew/Assets.xcassets/Contents.json create mode 100644 WhatsNew/WhatsNew/Data/WhatsNew.json create mode 100644 WhatsNew/WhatsNew/Data/WhatsNewModel.swift create mode 100644 WhatsNew/WhatsNew/Data/WhatsNewStorage.swift create mode 100644 WhatsNew/WhatsNew/Domain/WhatsNewPage.swift create mode 100644 WhatsNew/WhatsNew/Info.plist create mode 100644 WhatsNew/WhatsNew/Presentation/Elements/PageControl.swift create mode 100644 WhatsNew/WhatsNew/Presentation/Elements/WhatsNewNavigationButton.swift create mode 100644 WhatsNew/WhatsNew/Presentation/WhatsNewRouter.swift create mode 100644 WhatsNew/WhatsNew/Presentation/WhatsNewView.swift create mode 100644 WhatsNew/WhatsNew/Presentation/WhatsNewViewModel.swift create mode 100644 WhatsNew/WhatsNew/SwiftGen/Strings.swift create mode 100644 WhatsNew/WhatsNew/en.lproj/Localizable.strings create mode 100644 WhatsNew/WhatsNew/uk.lproj/Localizable.strings create mode 100644 WhatsNew/WhatsNewTests/Presentation/WhatsNewTests.swift create mode 100644 WhatsNew/WhatsNewTests/WhatsNewMock.generated.swift create mode 100644 WhatsNew/swiftgen.yml diff --git a/Authorization/Authorization/Presentation/Login/SignInViewModel.swift b/Authorization/Authorization/Presentation/Login/SignInViewModel.swift index 6d8ebfdee..c97689735 100644 --- a/Authorization/Authorization/Presentation/Login/SignInViewModel.swift +++ b/Authorization/Authorization/Presentation/Login/SignInViewModel.swift @@ -64,7 +64,7 @@ public class SignInViewModel: ObservableObject { let user = try await interactor.login(username: username, password: password) analytics.setUserID("\(user.id)") analytics.userLogin(method: .password) - router.showMainScreen() + router.showMainOrWhatsNewScreen() } catch let error { isShowProgress = false if let validationError = error.validationError, diff --git a/Authorization/Authorization/Presentation/Registration/SignUpViewModel.swift b/Authorization/Authorization/Presentation/Registration/SignUpViewModel.swift index a2142684f..e882311dd 100644 --- a/Authorization/Authorization/Presentation/Registration/SignUpViewModel.swift +++ b/Authorization/Authorization/Presentation/Registration/SignUpViewModel.swift @@ -93,7 +93,7 @@ public class SignUpViewModel: ObservableObject { analytics.setUserID("\(user.id)") analytics.registrationSuccess() isShowProgress = false - router.showMainScreen() + router.showMainOrWhatsNewScreen() } catch let error { isShowProgress = false diff --git a/Authorization/AuthorizationTests/AuthorizationMock.generated.swift b/Authorization/AuthorizationTests/AuthorizationMock.generated.swift index ddb4ac259..93016c754 100644 --- a/Authorization/AuthorizationTests/AuthorizationMock.generated.swift +++ b/Authorization/AuthorizationTests/AuthorizationMock.generated.swift @@ -761,9 +761,9 @@ open class AuthorizationRouterMock: AuthorizationRouter, Mock { perform?(`controllers`) } - open func showMainScreen() { - addInvocation(.m_showMainScreen) - let perform = methodPerformValue(.m_showMainScreen) as? () -> Void + open func showMainOrWhatsNewScreen() { + addInvocation(.m_showMainOrWhatsNewScreen) + let perform = methodPerformValue(.m_showMainOrWhatsNewScreen) as? () -> Void perform?() } @@ -816,7 +816,7 @@ open class AuthorizationRouterMock: AuthorizationRouter, Mock { case m_backWithFade case m_dismiss__animated_animated(Parameter) case m_removeLastView__controllers_controllers(Parameter) - case m_showMainScreen + case m_showMainOrWhatsNewScreen case m_showLoginScreen case m_showRegisterScreen case m_showForgotPasswordScreen @@ -849,7 +849,7 @@ open class AuthorizationRouterMock: AuthorizationRouter, Mock { results.append(Matcher.ParameterComparisonResult(Parameter.compare(lhs: lhsControllers, rhs: rhsControllers, with: matcher), lhsControllers, rhsControllers, "controllers")) return Matcher.ComparisonResult(results) - case (.m_showMainScreen, .m_showMainScreen): return .match + case (.m_showMainOrWhatsNewScreen, .m_showMainOrWhatsNewScreen): return .match case (.m_showLoginScreen, .m_showLoginScreen): return .match @@ -901,7 +901,7 @@ open class AuthorizationRouterMock: AuthorizationRouter, Mock { case .m_backWithFade: return 0 case let .m_dismiss__animated_animated(p0): return p0.intValue case let .m_removeLastView__controllers_controllers(p0): return p0.intValue - case .m_showMainScreen: return 0 + case .m_showMainOrWhatsNewScreen: return 0 case .m_showLoginScreen: return 0 case .m_showRegisterScreen: return 0 case .m_showForgotPasswordScreen: return 0 @@ -918,7 +918,7 @@ open class AuthorizationRouterMock: AuthorizationRouter, Mock { case .m_backWithFade: return ".backWithFade()" case .m_dismiss__animated_animated: return ".dismiss(animated:)" case .m_removeLastView__controllers_controllers: return ".removeLastView(controllers:)" - case .m_showMainScreen: return ".showMainScreen()" + case .m_showMainOrWhatsNewScreen: return ".showMainOrWhatsNewScreen()" case .m_showLoginScreen: return ".showLoginScreen()" case .m_showRegisterScreen: return ".showRegisterScreen()" case .m_showForgotPasswordScreen: return ".showForgotPasswordScreen()" @@ -949,7 +949,7 @@ open class AuthorizationRouterMock: AuthorizationRouter, Mock { public static func backWithFade() -> Verify { return Verify(method: .m_backWithFade)} public static func dismiss(animated: Parameter) -> Verify { return Verify(method: .m_dismiss__animated_animated(`animated`))} public static func removeLastView(controllers: Parameter) -> Verify { return Verify(method: .m_removeLastView__controllers_controllers(`controllers`))} - public static func showMainScreen() -> Verify { return Verify(method: .m_showMainScreen)} + public static func showMainOrWhatsNewScreen() -> Verify { return Verify(method: .m_showMainOrWhatsNewScreen)} public static func showLoginScreen() -> Verify { return Verify(method: .m_showLoginScreen)} public static func showRegisterScreen() -> Verify { return Verify(method: .m_showRegisterScreen)} public static func showForgotPasswordScreen() -> Verify { return Verify(method: .m_showForgotPasswordScreen)} @@ -978,8 +978,8 @@ open class AuthorizationRouterMock: AuthorizationRouter, Mock { public static func removeLastView(controllers: Parameter, perform: @escaping (Int) -> Void) -> Perform { return Perform(method: .m_removeLastView__controllers_controllers(`controllers`), performs: perform) } - public static func showMainScreen(perform: @escaping () -> Void) -> Perform { - return Perform(method: .m_showMainScreen, performs: perform) + public static func showMainOrWhatsNewScreen(perform: @escaping () -> Void) -> Perform { + return Perform(method: .m_showMainOrWhatsNewScreen, performs: perform) } public static func showLoginScreen(perform: @escaping () -> Void) -> Perform { return Perform(method: .m_showLoginScreen, performs: perform) @@ -1151,9 +1151,9 @@ open class BaseRouterMock: BaseRouter, Mock { perform?(`controllers`) } - open func showMainScreen() { - addInvocation(.m_showMainScreen) - let perform = methodPerformValue(.m_showMainScreen) as? () -> Void + open func showMainOrWhatsNewScreen() { + addInvocation(.m_showMainOrWhatsNewScreen) + let perform = methodPerformValue(.m_showMainOrWhatsNewScreen) as? () -> Void perform?() } @@ -1206,7 +1206,7 @@ open class BaseRouterMock: BaseRouter, Mock { case m_backWithFade case m_dismiss__animated_animated(Parameter) case m_removeLastView__controllers_controllers(Parameter) - case m_showMainScreen + case m_showMainOrWhatsNewScreen case m_showLoginScreen case m_showRegisterScreen case m_showForgotPasswordScreen @@ -1239,7 +1239,7 @@ open class BaseRouterMock: BaseRouter, Mock { results.append(Matcher.ParameterComparisonResult(Parameter.compare(lhs: lhsControllers, rhs: rhsControllers, with: matcher), lhsControllers, rhsControllers, "controllers")) return Matcher.ComparisonResult(results) - case (.m_showMainScreen, .m_showMainScreen): return .match + case (.m_showMainOrWhatsNewScreen, .m_showMainOrWhatsNewScreen): return .match case (.m_showLoginScreen, .m_showLoginScreen): return .match @@ -1291,7 +1291,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return 0 case let .m_dismiss__animated_animated(p0): return p0.intValue case let .m_removeLastView__controllers_controllers(p0): return p0.intValue - case .m_showMainScreen: return 0 + case .m_showMainOrWhatsNewScreen: return 0 case .m_showLoginScreen: return 0 case .m_showRegisterScreen: return 0 case .m_showForgotPasswordScreen: return 0 @@ -1308,7 +1308,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return ".backWithFade()" case .m_dismiss__animated_animated: return ".dismiss(animated:)" case .m_removeLastView__controllers_controllers: return ".removeLastView(controllers:)" - case .m_showMainScreen: return ".showMainScreen()" + case .m_showMainOrWhatsNewScreen: return ".showMainOrWhatsNewScreen()" case .m_showLoginScreen: return ".showLoginScreen()" case .m_showRegisterScreen: return ".showRegisterScreen()" case .m_showForgotPasswordScreen: return ".showForgotPasswordScreen()" @@ -1339,7 +1339,7 @@ open class BaseRouterMock: BaseRouter, Mock { public static func backWithFade() -> Verify { return Verify(method: .m_backWithFade)} public static func dismiss(animated: Parameter) -> Verify { return Verify(method: .m_dismiss__animated_animated(`animated`))} public static func removeLastView(controllers: Parameter) -> Verify { return Verify(method: .m_removeLastView__controllers_controllers(`controllers`))} - public static func showMainScreen() -> Verify { return Verify(method: .m_showMainScreen)} + public static func showMainOrWhatsNewScreen() -> Verify { return Verify(method: .m_showMainOrWhatsNewScreen)} public static func showLoginScreen() -> Verify { return Verify(method: .m_showLoginScreen)} public static func showRegisterScreen() -> Verify { return Verify(method: .m_showRegisterScreen)} public static func showForgotPasswordScreen() -> Verify { return Verify(method: .m_showForgotPasswordScreen)} @@ -1368,8 +1368,8 @@ open class BaseRouterMock: BaseRouter, Mock { public static func removeLastView(controllers: Parameter, perform: @escaping (Int) -> Void) -> Perform { return Perform(method: .m_removeLastView__controllers_controllers(`controllers`), performs: perform) } - public static func showMainScreen(perform: @escaping () -> Void) -> Perform { - return Perform(method: .m_showMainScreen, performs: perform) + public static func showMainOrWhatsNewScreen(perform: @escaping () -> Void) -> Perform { + return Perform(method: .m_showMainOrWhatsNewScreen, performs: perform) } public static func showLoginScreen(perform: @escaping () -> Void) -> Perform { return Perform(method: .m_showLoginScreen, performs: perform) diff --git a/Authorization/AuthorizationTests/Presentation/Login/SignInViewModelTests.swift b/Authorization/AuthorizationTests/Presentation/Login/SignInViewModelTests.swift index d478f0f68..aec540570 100644 --- a/Authorization/AuthorizationTests/Presentation/Login/SignInViewModelTests.swift +++ b/Authorization/AuthorizationTests/Presentation/Login/SignInViewModelTests.swift @@ -37,7 +37,7 @@ final class SignInViewModelTests: XCTestCase { await viewModel.login(username: "email", password: "") Verify(interactor, 0, .login(username: .any, password: .any)) - Verify(router, 0, .showMainScreen()) + Verify(router, 0, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.errorMessage, AuthLocalization.Error.invalidEmailAddress) XCTAssertEqual(viewModel.isShowProgress, false) @@ -57,7 +57,7 @@ final class SignInViewModelTests: XCTestCase { await viewModel.login(username: "edxUser@edx.com", password: "") Verify(interactor, 0, .login(username: .any, password: .any)) - Verify(router, 0, .showMainScreen()) + Verify(router, 0, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.errorMessage, AuthLocalization.Error.invalidPasswordLenght) XCTAssertEqual(viewModel.isShowProgress, false) @@ -82,7 +82,7 @@ final class SignInViewModelTests: XCTestCase { Verify(interactor, 1, .login(username: .any, password: .any)) Verify(analytics, .userLogin(method: .any)) - Verify(router, 1, .showMainScreen()) + Verify(router, 1, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.errorMessage, nil) XCTAssertEqual(viewModel.isShowProgress, true) @@ -109,7 +109,7 @@ final class SignInViewModelTests: XCTestCase { await viewModel.login(username: "edxUser@edx.com", password: "password123") Verify(interactor, 1, .login(username: .any, password: .any)) - Verify(router, 0, .showMainScreen()) + Verify(router, 0, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.errorMessage, validationErrorMessage) XCTAssertEqual(viewModel.isShowProgress, false) @@ -132,7 +132,7 @@ final class SignInViewModelTests: XCTestCase { await viewModel.login(username: "edxUser@edx.com", password: "password123") Verify(interactor, 1, .login(username: .any, password: .any)) - Verify(router, 0, .showMainScreen()) + Verify(router, 0, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.errorMessage, CoreLocalization.Error.invalidCredentials) XCTAssertEqual(viewModel.isShowProgress, false) @@ -155,7 +155,7 @@ final class SignInViewModelTests: XCTestCase { await viewModel.login(username: "edxUser@edx.com", password: "password123") Verify(interactor, 1, .login(username: .any, password: .any)) - Verify(router, 0, .showMainScreen()) + Verify(router, 0, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.errorMessage, CoreLocalization.Error.unknownError) XCTAssertEqual(viewModel.isShowProgress, false) @@ -180,7 +180,7 @@ final class SignInViewModelTests: XCTestCase { await viewModel.login(username: "edxUser@edx.com", password: "password123") Verify(interactor, 1, .login(username: .any, password: .any)) - Verify(router, 0, .showMainScreen()) + Verify(router, 0, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.errorMessage, CoreLocalization.Error.slowOrNoInternetConnection) XCTAssertEqual(viewModel.isShowProgress, false) diff --git a/Authorization/AuthorizationTests/Presentation/Register/SignUpViewModelTests.swift b/Authorization/AuthorizationTests/Presentation/Register/SignUpViewModelTests.swift index 8699b79fc..b59519b27 100644 --- a/Authorization/AuthorizationTests/Presentation/Register/SignUpViewModelTests.swift +++ b/Authorization/AuthorizationTests/Presentation/Register/SignUpViewModelTests.swift @@ -128,7 +128,7 @@ final class SignUpViewModelTests: XCTestCase { Verify(interactor, 1, .validateRegistrationFields(fields: .any)) Verify(interactor, 1, .registerUser(fields: .any)) - Verify(router, 1, .showMainScreen()) + Verify(router, 1, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.isShowProgress, false) XCTAssertEqual(viewModel.showError, false) @@ -164,7 +164,7 @@ final class SignUpViewModelTests: XCTestCase { Verify(interactor, 1, .validateRegistrationFields(fields: .any)) Verify(interactor, 0, .registerUser(fields: .any)) - Verify(router, 0, .showMainScreen()) + Verify(router, 0, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.isShowProgress, false) XCTAssertEqual(viewModel.showError, false) @@ -192,7 +192,7 @@ final class SignUpViewModelTests: XCTestCase { Verify(interactor, 1, .validateRegistrationFields(fields: .any)) Verify(interactor, 1, .registerUser(fields: .any)) - Verify(router, 0, .showMainScreen()) + Verify(router, 0, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.isShowProgress, false) XCTAssertEqual(viewModel.showError, true) @@ -220,7 +220,7 @@ final class SignUpViewModelTests: XCTestCase { Verify(interactor, 1, .validateRegistrationFields(fields: .any)) Verify(interactor, 1, .registerUser(fields: .any)) - Verify(router, 0, .showMainScreen()) + Verify(router, 0, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.isShowProgress, false) XCTAssertEqual(viewModel.showError, true) @@ -250,7 +250,7 @@ final class SignUpViewModelTests: XCTestCase { Verify(interactor, 1, .validateRegistrationFields(fields: .any)) Verify(interactor, 1, .registerUser(fields: .any)) - Verify(router, 0, .showMainScreen()) + Verify(router, 0, .showMainOrWhatsNewScreen()) XCTAssertEqual(viewModel.isShowProgress, false) XCTAssertEqual(viewModel.showError, true) diff --git a/Core/Core/Configuration/BaseRouter.swift b/Core/Core/Configuration/BaseRouter.swift index c86b90f62..034855d87 100644 --- a/Core/Core/Configuration/BaseRouter.swift +++ b/Core/Core/Configuration/BaseRouter.swift @@ -21,7 +21,7 @@ public protocol BaseRouter { func removeLastView(controllers: Int) - func showMainScreen() + func showMainOrWhatsNewScreen() func showLoginScreen() @@ -73,7 +73,7 @@ open class BaseRouterMock: BaseRouter { public func dismiss(animated: Bool) {} - public func showMainScreen() {} + public func showMainOrWhatsNewScreen() {} public func showLoginScreen() {} diff --git a/Core/Core/Configuration/Config.swift b/Core/Core/Configuration/Config.swift index 77f5da816..4cb9f3afc 100644 --- a/Core/Core/Configuration/Config.swift +++ b/Core/Core/Configuration/Config.swift @@ -23,6 +23,8 @@ public class Config { public let feedbackEmail = "support@example.com" + public let whatsNewEnabled: Bool = false + public init(baseURL: String, oAuthClientId: String) { guard let url = URL(string: baseURL) else { fatalError("Ivalid baseURL") diff --git a/Course/CourseTests/CourseMock.generated.swift b/Course/CourseTests/CourseMock.generated.swift index a4cf6b418..488ab1a83 100644 --- a/Course/CourseTests/CourseMock.generated.swift +++ b/Course/CourseTests/CourseMock.generated.swift @@ -490,9 +490,9 @@ open class BaseRouterMock: BaseRouter, Mock { perform?(`controllers`) } - open func showMainScreen() { - addInvocation(.m_showMainScreen) - let perform = methodPerformValue(.m_showMainScreen) as? () -> Void + open func showMainOrWhatsNewScreen() { + addInvocation(.m_showMainOrWhatsNewScreen) + let perform = methodPerformValue(.m_showMainOrWhatsNewScreen) as? () -> Void perform?() } @@ -545,7 +545,7 @@ open class BaseRouterMock: BaseRouter, Mock { case m_backWithFade case m_dismiss__animated_animated(Parameter) case m_removeLastView__controllers_controllers(Parameter) - case m_showMainScreen + case m_showMainOrWhatsNewScreen case m_showLoginScreen case m_showRegisterScreen case m_showForgotPasswordScreen @@ -578,7 +578,7 @@ open class BaseRouterMock: BaseRouter, Mock { results.append(Matcher.ParameterComparisonResult(Parameter.compare(lhs: lhsControllers, rhs: rhsControllers, with: matcher), lhsControllers, rhsControllers, "controllers")) return Matcher.ComparisonResult(results) - case (.m_showMainScreen, .m_showMainScreen): return .match + case (.m_showMainOrWhatsNewScreen, .m_showMainOrWhatsNewScreen): return .match case (.m_showLoginScreen, .m_showLoginScreen): return .match @@ -630,7 +630,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return 0 case let .m_dismiss__animated_animated(p0): return p0.intValue case let .m_removeLastView__controllers_controllers(p0): return p0.intValue - case .m_showMainScreen: return 0 + case .m_showMainOrWhatsNewScreen: return 0 case .m_showLoginScreen: return 0 case .m_showRegisterScreen: return 0 case .m_showForgotPasswordScreen: return 0 @@ -647,7 +647,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return ".backWithFade()" case .m_dismiss__animated_animated: return ".dismiss(animated:)" case .m_removeLastView__controllers_controllers: return ".removeLastView(controllers:)" - case .m_showMainScreen: return ".showMainScreen()" + case .m_showMainOrWhatsNewScreen: return ".showMainOrWhatsNewScreen()" case .m_showLoginScreen: return ".showLoginScreen()" case .m_showRegisterScreen: return ".showRegisterScreen()" case .m_showForgotPasswordScreen: return ".showForgotPasswordScreen()" @@ -678,7 +678,7 @@ open class BaseRouterMock: BaseRouter, Mock { public static func backWithFade() -> Verify { return Verify(method: .m_backWithFade)} public static func dismiss(animated: Parameter) -> Verify { return Verify(method: .m_dismiss__animated_animated(`animated`))} public static func removeLastView(controllers: Parameter) -> Verify { return Verify(method: .m_removeLastView__controllers_controllers(`controllers`))} - public static func showMainScreen() -> Verify { return Verify(method: .m_showMainScreen)} + public static func showMainOrWhatsNewScreen() -> Verify { return Verify(method: .m_showMainOrWhatsNewScreen)} public static func showLoginScreen() -> Verify { return Verify(method: .m_showLoginScreen)} public static func showRegisterScreen() -> Verify { return Verify(method: .m_showRegisterScreen)} public static func showForgotPasswordScreen() -> Verify { return Verify(method: .m_showForgotPasswordScreen)} @@ -707,8 +707,8 @@ open class BaseRouterMock: BaseRouter, Mock { public static func removeLastView(controllers: Parameter, perform: @escaping (Int) -> Void) -> Perform { return Perform(method: .m_removeLastView__controllers_controllers(`controllers`), performs: perform) } - public static func showMainScreen(perform: @escaping () -> Void) -> Perform { - return Perform(method: .m_showMainScreen, performs: perform) + public static func showMainOrWhatsNewScreen(perform: @escaping () -> Void) -> Perform { + return Perform(method: .m_showMainOrWhatsNewScreen, performs: perform) } public static func showLoginScreen(perform: @escaping () -> Void) -> Perform { return Perform(method: .m_showLoginScreen, performs: perform) diff --git a/Dashboard/DashboardTests/DashboardMock.generated.swift b/Dashboard/DashboardTests/DashboardMock.generated.swift index 27aebe250..efbb553e6 100644 --- a/Dashboard/DashboardTests/DashboardMock.generated.swift +++ b/Dashboard/DashboardTests/DashboardMock.generated.swift @@ -490,9 +490,9 @@ open class BaseRouterMock: BaseRouter, Mock { perform?(`controllers`) } - open func showMainScreen() { - addInvocation(.m_showMainScreen) - let perform = methodPerformValue(.m_showMainScreen) as? () -> Void + open func showMainOrWhatsNewScreen() { + addInvocation(.m_showMainOrWhatsNewScreen) + let perform = methodPerformValue(.m_showMainOrWhatsNewScreen) as? () -> Void perform?() } @@ -545,7 +545,7 @@ open class BaseRouterMock: BaseRouter, Mock { case m_backWithFade case m_dismiss__animated_animated(Parameter) case m_removeLastView__controllers_controllers(Parameter) - case m_showMainScreen + case m_showMainOrWhatsNewScreen case m_showLoginScreen case m_showRegisterScreen case m_showForgotPasswordScreen @@ -578,7 +578,7 @@ open class BaseRouterMock: BaseRouter, Mock { results.append(Matcher.ParameterComparisonResult(Parameter.compare(lhs: lhsControllers, rhs: rhsControllers, with: matcher), lhsControllers, rhsControllers, "controllers")) return Matcher.ComparisonResult(results) - case (.m_showMainScreen, .m_showMainScreen): return .match + case (.m_showMainOrWhatsNewScreen, .m_showMainOrWhatsNewScreen): return .match case (.m_showLoginScreen, .m_showLoginScreen): return .match @@ -630,7 +630,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return 0 case let .m_dismiss__animated_animated(p0): return p0.intValue case let .m_removeLastView__controllers_controllers(p0): return p0.intValue - case .m_showMainScreen: return 0 + case .m_showMainOrWhatsNewScreen: return 0 case .m_showLoginScreen: return 0 case .m_showRegisterScreen: return 0 case .m_showForgotPasswordScreen: return 0 @@ -647,7 +647,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return ".backWithFade()" case .m_dismiss__animated_animated: return ".dismiss(animated:)" case .m_removeLastView__controllers_controllers: return ".removeLastView(controllers:)" - case .m_showMainScreen: return ".showMainScreen()" + case .m_showMainOrWhatsNewScreen: return ".showMainOrWhatsNewScreen()" case .m_showLoginScreen: return ".showLoginScreen()" case .m_showRegisterScreen: return ".showRegisterScreen()" case .m_showForgotPasswordScreen: return ".showForgotPasswordScreen()" @@ -678,7 +678,7 @@ open class BaseRouterMock: BaseRouter, Mock { public static func backWithFade() -> Verify { return Verify(method: .m_backWithFade)} public static func dismiss(animated: Parameter) -> Verify { return Verify(method: .m_dismiss__animated_animated(`animated`))} public static func removeLastView(controllers: Parameter) -> Verify { return Verify(method: .m_removeLastView__controllers_controllers(`controllers`))} - public static func showMainScreen() -> Verify { return Verify(method: .m_showMainScreen)} + public static func showMainOrWhatsNewScreen() -> Verify { return Verify(method: .m_showMainOrWhatsNewScreen)} public static func showLoginScreen() -> Verify { return Verify(method: .m_showLoginScreen)} public static func showRegisterScreen() -> Verify { return Verify(method: .m_showRegisterScreen)} public static func showForgotPasswordScreen() -> Verify { return Verify(method: .m_showForgotPasswordScreen)} @@ -707,8 +707,8 @@ open class BaseRouterMock: BaseRouter, Mock { public static func removeLastView(controllers: Parameter, perform: @escaping (Int) -> Void) -> Perform { return Perform(method: .m_removeLastView__controllers_controllers(`controllers`), performs: perform) } - public static func showMainScreen(perform: @escaping () -> Void) -> Perform { - return Perform(method: .m_showMainScreen, performs: perform) + public static func showMainOrWhatsNewScreen(perform: @escaping () -> Void) -> Perform { + return Perform(method: .m_showMainOrWhatsNewScreen, performs: perform) } public static func showLoginScreen(perform: @escaping () -> Void) -> Perform { return Perform(method: .m_showLoginScreen, performs: perform) diff --git a/Discovery/DiscoveryTests/DiscoveryMock.generated.swift b/Discovery/DiscoveryTests/DiscoveryMock.generated.swift index 1eb44a322..f55ce38ed 100644 --- a/Discovery/DiscoveryTests/DiscoveryMock.generated.swift +++ b/Discovery/DiscoveryTests/DiscoveryMock.generated.swift @@ -490,9 +490,9 @@ open class BaseRouterMock: BaseRouter, Mock { perform?(`controllers`) } - open func showMainScreen() { - addInvocation(.m_showMainScreen) - let perform = methodPerformValue(.m_showMainScreen) as? () -> Void + open func showMainOrWhatsNewScreen() { + addInvocation(.m_showMainOrWhatsNewScreen) + let perform = methodPerformValue(.m_showMainOrWhatsNewScreen) as? () -> Void perform?() } @@ -545,7 +545,7 @@ open class BaseRouterMock: BaseRouter, Mock { case m_backWithFade case m_dismiss__animated_animated(Parameter) case m_removeLastView__controllers_controllers(Parameter) - case m_showMainScreen + case m_showMainOrWhatsNewScreen case m_showLoginScreen case m_showRegisterScreen case m_showForgotPasswordScreen @@ -578,7 +578,7 @@ open class BaseRouterMock: BaseRouter, Mock { results.append(Matcher.ParameterComparisonResult(Parameter.compare(lhs: lhsControllers, rhs: rhsControllers, with: matcher), lhsControllers, rhsControllers, "controllers")) return Matcher.ComparisonResult(results) - case (.m_showMainScreen, .m_showMainScreen): return .match + case (.m_showMainOrWhatsNewScreen, .m_showMainOrWhatsNewScreen): return .match case (.m_showLoginScreen, .m_showLoginScreen): return .match @@ -630,7 +630,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return 0 case let .m_dismiss__animated_animated(p0): return p0.intValue case let .m_removeLastView__controllers_controllers(p0): return p0.intValue - case .m_showMainScreen: return 0 + case .m_showMainOrWhatsNewScreen: return 0 case .m_showLoginScreen: return 0 case .m_showRegisterScreen: return 0 case .m_showForgotPasswordScreen: return 0 @@ -647,7 +647,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return ".backWithFade()" case .m_dismiss__animated_animated: return ".dismiss(animated:)" case .m_removeLastView__controllers_controllers: return ".removeLastView(controllers:)" - case .m_showMainScreen: return ".showMainScreen()" + case .m_showMainOrWhatsNewScreen: return ".showMainOrWhatsNewScreen()" case .m_showLoginScreen: return ".showLoginScreen()" case .m_showRegisterScreen: return ".showRegisterScreen()" case .m_showForgotPasswordScreen: return ".showForgotPasswordScreen()" @@ -678,7 +678,7 @@ open class BaseRouterMock: BaseRouter, Mock { public static func backWithFade() -> Verify { return Verify(method: .m_backWithFade)} public static func dismiss(animated: Parameter) -> Verify { return Verify(method: .m_dismiss__animated_animated(`animated`))} public static func removeLastView(controllers: Parameter) -> Verify { return Verify(method: .m_removeLastView__controllers_controllers(`controllers`))} - public static func showMainScreen() -> Verify { return Verify(method: .m_showMainScreen)} + public static func showMainOrWhatsNewScreen() -> Verify { return Verify(method: .m_showMainOrWhatsNewScreen)} public static func showLoginScreen() -> Verify { return Verify(method: .m_showLoginScreen)} public static func showRegisterScreen() -> Verify { return Verify(method: .m_showRegisterScreen)} public static func showForgotPasswordScreen() -> Verify { return Verify(method: .m_showForgotPasswordScreen)} @@ -707,8 +707,8 @@ open class BaseRouterMock: BaseRouter, Mock { public static func removeLastView(controllers: Parameter, perform: @escaping (Int) -> Void) -> Perform { return Perform(method: .m_removeLastView__controllers_controllers(`controllers`), performs: perform) } - public static func showMainScreen(perform: @escaping () -> Void) -> Perform { - return Perform(method: .m_showMainScreen, performs: perform) + public static func showMainOrWhatsNewScreen(perform: @escaping () -> Void) -> Perform { + return Perform(method: .m_showMainOrWhatsNewScreen, performs: perform) } public static func showLoginScreen(perform: @escaping () -> Void) -> Perform { return Perform(method: .m_showLoginScreen, performs: perform) diff --git a/Discussion/Discussion.xcodeproj.xcworkspace/contents.xcworkspacedata b/Discussion/Discussion.xcodeproj.xcworkspace/contents.xcworkspacedata index 85b36c90c..d64d30457 100644 --- a/Discussion/Discussion.xcodeproj.xcworkspace/contents.xcworkspacedata +++ b/Discussion/Discussion.xcodeproj.xcworkspace/contents.xcworkspacedata @@ -28,4 +28,7 @@ + + diff --git a/Discussion/DiscussionTests/DiscussionMock.generated.swift b/Discussion/DiscussionTests/DiscussionMock.generated.swift index 424aa9aaf..5303b1525 100644 --- a/Discussion/DiscussionTests/DiscussionMock.generated.swift +++ b/Discussion/DiscussionTests/DiscussionMock.generated.swift @@ -490,9 +490,9 @@ open class BaseRouterMock: BaseRouter, Mock { perform?(`controllers`) } - open func showMainScreen() { - addInvocation(.m_showMainScreen) - let perform = methodPerformValue(.m_showMainScreen) as? () -> Void + open func showMainOrWhatsNewScreen() { + addInvocation(.m_showMainOrWhatsNewScreen) + let perform = methodPerformValue(.m_showMainOrWhatsNewScreen) as? () -> Void perform?() } @@ -545,7 +545,7 @@ open class BaseRouterMock: BaseRouter, Mock { case m_backWithFade case m_dismiss__animated_animated(Parameter) case m_removeLastView__controllers_controllers(Parameter) - case m_showMainScreen + case m_showMainOrWhatsNewScreen case m_showLoginScreen case m_showRegisterScreen case m_showForgotPasswordScreen @@ -578,7 +578,7 @@ open class BaseRouterMock: BaseRouter, Mock { results.append(Matcher.ParameterComparisonResult(Parameter.compare(lhs: lhsControllers, rhs: rhsControllers, with: matcher), lhsControllers, rhsControllers, "controllers")) return Matcher.ComparisonResult(results) - case (.m_showMainScreen, .m_showMainScreen): return .match + case (.m_showMainOrWhatsNewScreen, .m_showMainOrWhatsNewScreen): return .match case (.m_showLoginScreen, .m_showLoginScreen): return .match @@ -630,7 +630,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return 0 case let .m_dismiss__animated_animated(p0): return p0.intValue case let .m_removeLastView__controllers_controllers(p0): return p0.intValue - case .m_showMainScreen: return 0 + case .m_showMainOrWhatsNewScreen: return 0 case .m_showLoginScreen: return 0 case .m_showRegisterScreen: return 0 case .m_showForgotPasswordScreen: return 0 @@ -647,7 +647,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return ".backWithFade()" case .m_dismiss__animated_animated: return ".dismiss(animated:)" case .m_removeLastView__controllers_controllers: return ".removeLastView(controllers:)" - case .m_showMainScreen: return ".showMainScreen()" + case .m_showMainOrWhatsNewScreen: return ".showMainOrWhatsNewScreen()" case .m_showLoginScreen: return ".showLoginScreen()" case .m_showRegisterScreen: return ".showRegisterScreen()" case .m_showForgotPasswordScreen: return ".showForgotPasswordScreen()" @@ -678,7 +678,7 @@ open class BaseRouterMock: BaseRouter, Mock { public static func backWithFade() -> Verify { return Verify(method: .m_backWithFade)} public static func dismiss(animated: Parameter) -> Verify { return Verify(method: .m_dismiss__animated_animated(`animated`))} public static func removeLastView(controllers: Parameter) -> Verify { return Verify(method: .m_removeLastView__controllers_controllers(`controllers`))} - public static func showMainScreen() -> Verify { return Verify(method: .m_showMainScreen)} + public static func showMainOrWhatsNewScreen() -> Verify { return Verify(method: .m_showMainOrWhatsNewScreen)} public static func showLoginScreen() -> Verify { return Verify(method: .m_showLoginScreen)} public static func showRegisterScreen() -> Verify { return Verify(method: .m_showRegisterScreen)} public static func showForgotPasswordScreen() -> Verify { return Verify(method: .m_showForgotPasswordScreen)} @@ -707,8 +707,8 @@ open class BaseRouterMock: BaseRouter, Mock { public static func removeLastView(controllers: Parameter, perform: @escaping (Int) -> Void) -> Perform { return Perform(method: .m_removeLastView__controllers_controllers(`controllers`), performs: perform) } - public static func showMainScreen(perform: @escaping () -> Void) -> Perform { - return Perform(method: .m_showMainScreen, performs: perform) + public static func showMainOrWhatsNewScreen(perform: @escaping () -> Void) -> Perform { + return Perform(method: .m_showMainOrWhatsNewScreen, performs: perform) } public static func showLoginScreen(perform: @escaping () -> Void) -> Perform { return Perform(method: .m_showLoginScreen, performs: perform) @@ -2033,9 +2033,9 @@ open class DiscussionRouterMock: DiscussionRouter, Mock { perform?(`controllers`) } - open func showMainScreen() { - addInvocation(.m_showMainScreen) - let perform = methodPerformValue(.m_showMainScreen) as? () -> Void + open func showMainOrWhatsNewScreen() { + addInvocation(.m_showMainOrWhatsNewScreen) + let perform = methodPerformValue(.m_showMainOrWhatsNewScreen) as? () -> Void perform?() } @@ -2094,7 +2094,7 @@ open class DiscussionRouterMock: DiscussionRouter, Mock { case m_backWithFade case m_dismiss__animated_animated(Parameter) case m_removeLastView__controllers_controllers(Parameter) - case m_showMainScreen + case m_showMainOrWhatsNewScreen case m_showLoginScreen case m_showRegisterScreen case m_showForgotPasswordScreen @@ -2165,7 +2165,7 @@ open class DiscussionRouterMock: DiscussionRouter, Mock { results.append(Matcher.ParameterComparisonResult(Parameter.compare(lhs: lhsControllers, rhs: rhsControllers, with: matcher), lhsControllers, rhsControllers, "controllers")) return Matcher.ComparisonResult(results) - case (.m_showMainScreen, .m_showMainScreen): return .match + case (.m_showMainOrWhatsNewScreen, .m_showMainOrWhatsNewScreen): return .match case (.m_showLoginScreen, .m_showLoginScreen): return .match @@ -2223,7 +2223,7 @@ open class DiscussionRouterMock: DiscussionRouter, Mock { case .m_backWithFade: return 0 case let .m_dismiss__animated_animated(p0): return p0.intValue case let .m_removeLastView__controllers_controllers(p0): return p0.intValue - case .m_showMainScreen: return 0 + case .m_showMainOrWhatsNewScreen: return 0 case .m_showLoginScreen: return 0 case .m_showRegisterScreen: return 0 case .m_showForgotPasswordScreen: return 0 @@ -2246,7 +2246,7 @@ open class DiscussionRouterMock: DiscussionRouter, Mock { case .m_backWithFade: return ".backWithFade()" case .m_dismiss__animated_animated: return ".dismiss(animated:)" case .m_removeLastView__controllers_controllers: return ".removeLastView(controllers:)" - case .m_showMainScreen: return ".showMainScreen()" + case .m_showMainOrWhatsNewScreen: return ".showMainOrWhatsNewScreen()" case .m_showLoginScreen: return ".showLoginScreen()" case .m_showRegisterScreen: return ".showRegisterScreen()" case .m_showForgotPasswordScreen: return ".showForgotPasswordScreen()" @@ -2283,7 +2283,7 @@ open class DiscussionRouterMock: DiscussionRouter, Mock { public static func backWithFade() -> Verify { return Verify(method: .m_backWithFade)} public static func dismiss(animated: Parameter) -> Verify { return Verify(method: .m_dismiss__animated_animated(`animated`))} public static func removeLastView(controllers: Parameter) -> Verify { return Verify(method: .m_removeLastView__controllers_controllers(`controllers`))} - public static func showMainScreen() -> Verify { return Verify(method: .m_showMainScreen)} + public static func showMainOrWhatsNewScreen() -> Verify { return Verify(method: .m_showMainOrWhatsNewScreen)} public static func showLoginScreen() -> Verify { return Verify(method: .m_showLoginScreen)} public static func showRegisterScreen() -> Verify { return Verify(method: .m_showRegisterScreen)} public static func showForgotPasswordScreen() -> Verify { return Verify(method: .m_showForgotPasswordScreen)} @@ -2330,8 +2330,8 @@ open class DiscussionRouterMock: DiscussionRouter, Mock { public static func removeLastView(controllers: Parameter, perform: @escaping (Int) -> Void) -> Perform { return Perform(method: .m_removeLastView__controllers_controllers(`controllers`), performs: perform) } - public static func showMainScreen(perform: @escaping () -> Void) -> Perform { - return Perform(method: .m_showMainScreen, performs: perform) + public static func showMainOrWhatsNewScreen(perform: @escaping () -> Void) -> Perform { + return Perform(method: .m_showMainOrWhatsNewScreen, performs: perform) } public static func showLoginScreen(perform: @escaping () -> Void) -> Perform { return Perform(method: .m_showLoginScreen, performs: perform) diff --git a/OpenEdX.xcodeproj/project.pbxproj b/OpenEdX.xcodeproj/project.pbxproj index 4fc81e931..08ffca434 100644 --- a/OpenEdX.xcodeproj/project.pbxproj +++ b/OpenEdX.xcodeproj/project.pbxproj @@ -17,6 +17,8 @@ 025DE1A528DB4DAE0053E0F4 /* Profile.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 025DE1A328DB4DAE0053E0F4 /* Profile.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 027DB33028D8A063002B6862 /* Dashboard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 027DB32F28D8A063002B6862 /* Dashboard.framework */; }; 027DB33128D8A063002B6862 /* Dashboard.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 027DB32F28D8A063002B6862 /* Dashboard.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 028A37362ADFF404008CA604 /* WhatsNew.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 028A37352ADFF404008CA604 /* WhatsNew.framework */; }; + 028A37372ADFF404008CA604 /* WhatsNew.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 028A37352ADFF404008CA604 /* WhatsNew.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 0293A2032A6FCA590090A336 /* CorePersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0293A2022A6FCA590090A336 /* CorePersistence.swift */; }; 0293A2052A6FCD430090A336 /* CoursePersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0293A2042A6FCD430090A336 /* CoursePersistence.swift */; }; 0293A2072A6FCDA30090A336 /* DiscoveryPersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0293A2062A6FCDA30090A336 /* DiscoveryPersistence.swift */; }; @@ -59,6 +61,7 @@ 0219C67828F4347600D64452 /* Course.framework in Embed Frameworks */, 025DE1A528DB4DAE0053E0F4 /* Profile.framework in Embed Frameworks */, 027DB33128D8A063002B6862 /* Dashboard.framework in Embed Frameworks */, + 028A37372ADFF404008CA604 /* WhatsNew.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -75,6 +78,7 @@ 025DE1A328DB4DAE0053E0F4 /* Profile.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Profile.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 025EF2F7297177F300B838AB /* OpenEdX.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = OpenEdX.entitlements; sourceTree = ""; }; 027DB32F28D8A063002B6862 /* Dashboard.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Dashboard.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 028A37352ADFF404008CA604 /* WhatsNew.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WhatsNew.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 0293A2022A6FCA590090A336 /* CorePersistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CorePersistence.swift; sourceTree = ""; }; 0293A2042A6FCD430090A336 /* CoursePersistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoursePersistence.swift; sourceTree = ""; }; 0293A2062A6FCDA30090A336 /* DiscoveryPersistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiscoveryPersistence.swift; sourceTree = ""; }; @@ -118,6 +122,7 @@ buildActionMask = 2147483647; files = ( 07A7D78F28F5C9060000BE81 /* Core.framework in Frameworks */, + 028A37362ADFF404008CA604 /* WhatsNew.framework in Frameworks */, 025DE1A428DB4DAE0053E0F4 /* Profile.framework in Frameworks */, 0770DE4B28D0A462006D8A5D /* Authorization.framework in Frameworks */, 072787B128D34D83002E9142 /* Discovery.framework in Frameworks */, @@ -206,6 +211,7 @@ 4E6FB43543890E90BB88D64D /* Frameworks */ = { isa = PBXGroup; children = ( + 028A37352ADFF404008CA604 /* WhatsNew.framework */, 0218196328F734FA00202564 /* Discussion.framework */, 07A7D78E28F5C9060000BE81 /* Core.framework */, 0219C67628F4347600D64452 /* Course.framework */, diff --git a/OpenEdX.xcodeproj/xcshareddata/xcschemes/OpenEdXDev.xcscheme b/OpenEdX.xcodeproj/xcshareddata/xcschemes/OpenEdXDev.xcscheme index c2f6ffa2b..55135d8fa 100644 --- a/OpenEdX.xcodeproj/xcshareddata/xcschemes/OpenEdXDev.xcscheme +++ b/OpenEdX.xcodeproj/xcshareddata/xcschemes/OpenEdXDev.xcscheme @@ -97,13 +97,22 @@ ReferencedContainer = "container:Profile/Profile.xcodeproj"> + + + + + + diff --git a/OpenEdX/DI/AppAssembly.swift b/OpenEdX/DI/AppAssembly.swift index edc74bd1f..9c2bff47e 100644 --- a/OpenEdX/DI/AppAssembly.swift +++ b/OpenEdX/DI/AppAssembly.swift @@ -15,6 +15,7 @@ import Course import Discussion import Authorization import Profile +import WhatsNew // swiftlint:disable function_body_length class AppAssembly: Assembly { @@ -112,6 +113,10 @@ class AppAssembly: Assembly { r.resolve(Router.self)! }.inObjectScope(.container) + container.register(WhatsNewRouter.self) { r in + r.resolve(Router.self)! + }.inObjectScope(.container) + container.register(Config.self) { _ in Config(baseURL: BuildConfiguration.shared.baseURL, oAuthClientId: BuildConfiguration.shared.clientId) }.inObjectScope(.container) @@ -139,6 +144,10 @@ class AppAssembly: Assembly { r.resolve(AppStorage.self)! }.inObjectScope(.container) + container.register(WhatsNewStorage.self) { r in + r.resolve(AppStorage.self)! + }.inObjectScope(.container) + container.register(ProfileStorage.self) { r in r.resolve(AppStorage.self)! }.inObjectScope(.container) diff --git a/OpenEdX/Data/AppStorage.swift b/OpenEdX/Data/AppStorage.swift index 99144be00..0815b4b7f 100644 --- a/OpenEdX/Data/AppStorage.swift +++ b/OpenEdX/Data/AppStorage.swift @@ -9,8 +9,9 @@ import Foundation import KeychainSwift import Core import Profile +import WhatsNew -public class AppStorage: CoreStorage, ProfileStorage { +public class AppStorage: CoreStorage, ProfileStorage, WhatsNewStorage { private let keychain: KeychainSwift private let userDefaults: UserDefaults @@ -58,6 +59,19 @@ public class AppStorage: CoreStorage, ProfileStorage { } } } + + public var whatsNewVersion: String? { + get { + return userDefaults.string(forKey: KEY_WHATSNEW_VERSION) + } + set(newValue) { + if let newValue { + userDefaults.set(newValue, forKey: KEY_WHATSNEW_VERSION) + } else { + userDefaults.removeObject(forKey: KEY_WHATSNEW_VERSION) + } + } + } public var userProfile: DataLayer.UserProfile? { get { @@ -134,4 +148,5 @@ public class AppStorage: CoreStorage, ProfileStorage { private let KEY_USER_PROFILE = "userProfile" private let KEY_USER = "refreshToken" private let KEY_SETTINGS = "userSettings" + private let KEY_WHATSNEW_VERSION = "whatsNewVersion" } diff --git a/OpenEdX/RouteController.swift b/OpenEdX/RouteController.swift index 1aa036dc1..367569cf6 100644 --- a/OpenEdX/RouteController.swift +++ b/OpenEdX/RouteController.swift @@ -9,6 +9,8 @@ import UIKit import SwiftUI import Core import Authorization +import WhatsNew +import Swinject class RouteController: UIViewController { @@ -30,7 +32,7 @@ class RouteController: UIViewController { if let user = appStorage.user, appStorage.accessToken != nil { analytics.setUserID("\(user.id)") DispatchQueue.main.async { - self.showMainScreen() + self.showMainOrWhatsNewScreen() } } else { DispatchQueue.main.async { @@ -47,9 +49,27 @@ class RouteController: UIViewController { present(navigation, animated: false) } - private func showMainScreen() { - let controller = UIHostingController(rootView: MainScreenView()) - navigation.viewControllers = [controller] + private func showMainOrWhatsNewScreen() { + var storage = Container.shared.resolve(WhatsNewStorage.self)! + let config = Container.shared.resolve(Config.self)! + + let viewModel = WhatsNewViewModel(storage: storage) + let shouldShowWhatsNew = viewModel.shouldShowWhatsNew() + + if shouldShowWhatsNew && config.whatsNewEnabled { + if let jsonVersion = viewModel.getVersion() { + storage.whatsNewVersion = jsonVersion + } + let whatsNewView = WhatsNewView( + router: Container.shared.resolve(WhatsNewRouter.self)!, + viewModel: viewModel + ) + let controller = UIHostingController(rootView: whatsNewView) + navigation.viewControllers = [controller] + } else { + let controller = UIHostingController(rootView: MainScreenView()) + navigation.viewControllers = [controller] + } present(navigation, animated: false) } } diff --git a/OpenEdX/Router.swift b/OpenEdX/Router.swift index 58413b862..1dbb690d8 100644 --- a/OpenEdX/Router.swift +++ b/OpenEdX/Router.swift @@ -16,9 +16,11 @@ import Discussion import Discovery import Dashboard import Profile +import WhatsNew import Combine public class Router: AuthorizationRouter, + WhatsNewRouter, DiscoveryRouter, ProfileRouter, DashboardRouter, @@ -56,10 +58,27 @@ public class Router: AuthorizationRouter, navigationController.setViewControllers(viewControllers, animated: true) } - public func showMainScreen() { + public func showMainOrWhatsNewScreen() { showToolBar() - let controller = UIHostingController(rootView: MainScreenView()) - navigationController.setViewControllers([controller], animated: true) + var storage = Container.shared.resolve(WhatsNewStorage.self)! + let config = Container.shared.resolve(Config.self)! + + let viewModel = WhatsNewViewModel(storage: storage) + let whatsNew = WhatsNewView(router: Container.shared.resolve(WhatsNewRouter.self)!, viewModel: viewModel) + let shouldShowWhatsNew = viewModel.shouldShowWhatsNew() + + if shouldShowWhatsNew && config.whatsNewEnabled { + if let jsonVersion = viewModel.getVersion() { + storage.whatsNewVersion = jsonVersion + } + let controller = UIHostingController(rootView: whatsNew) + navigationController.viewControllers = [controller] + navigationController.setViewControllers([controller], animated: true) + } else { + let controller = UIHostingController(rootView: MainScreenView()) + navigationController.viewControllers = [controller] + navigationController.setViewControllers([controller], animated: true) + } } public func showLoginScreen() { diff --git a/OpenEdX/View/MainScreenView.swift b/OpenEdX/View/MainScreenView.swift index c27d7ea3f..e05451782 100644 --- a/OpenEdX/View/MainScreenView.swift +++ b/OpenEdX/View/MainScreenView.swift @@ -11,6 +11,7 @@ import Core import Swinject import Dashboard import Profile +import WhatsNew import SwiftUIIntrospect struct MainScreenView: View { diff --git a/Podfile b/Podfile index 1d97fa467..c3658683d 100644 --- a/Podfile +++ b/Podfile @@ -48,6 +48,15 @@ abstract_target "App" do end end + target "WhatsNew" do + project './WhatsNew/WhatsNew.xcodeproj' + workspace './WhatsNew/WhatsNew.xcodeproj' + + target 'WhatsNewTests' do + pod 'SwiftyMocky', :git => 'https://github.com/MakeAWishFoundation/SwiftyMocky.git', :tag => '4.2.0' + end + end + target "Dashboard" do project './Dashboard/Dashboard.xcodeproj' workspace './Dashboard/Dashboard.xcodeproj' diff --git a/Podfile.lock b/Podfile.lock index 5b998cd5e..cf6c60e94 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -180,6 +180,6 @@ SPEC CHECKSUMS: SwiftyMocky: c5e96e4ff76ec6dbf5a5941aeb039b5a546954a0 Swinject: 893c9a543000ac2f10ee4cbaf0933c6992c935d5 -PODFILE CHECKSUM: 1639b311802f5d36686512914067b7221ff97a64 +PODFILE CHECKSUM: a44d8de5a5803eb3e3c995134c79c3dad959dbf7 COCOAPODS: 1.12.1 diff --git a/Profile/ProfileTests/ProfileMock.generated.swift b/Profile/ProfileTests/ProfileMock.generated.swift index e8f39508d..58466c37c 100644 --- a/Profile/ProfileTests/ProfileMock.generated.swift +++ b/Profile/ProfileTests/ProfileMock.generated.swift @@ -490,9 +490,9 @@ open class BaseRouterMock: BaseRouter, Mock { perform?(`controllers`) } - open func showMainScreen() { - addInvocation(.m_showMainScreen) - let perform = methodPerformValue(.m_showMainScreen) as? () -> Void + open func showMainOrWhatsNewScreen() { + addInvocation(.m_showMainOrWhatsNewScreen) + let perform = methodPerformValue(.m_showMainOrWhatsNewScreen) as? () -> Void perform?() } @@ -545,7 +545,7 @@ open class BaseRouterMock: BaseRouter, Mock { case m_backWithFade case m_dismiss__animated_animated(Parameter) case m_removeLastView__controllers_controllers(Parameter) - case m_showMainScreen + case m_showMainOrWhatsNewScreen case m_showLoginScreen case m_showRegisterScreen case m_showForgotPasswordScreen @@ -578,7 +578,7 @@ open class BaseRouterMock: BaseRouter, Mock { results.append(Matcher.ParameterComparisonResult(Parameter.compare(lhs: lhsControllers, rhs: rhsControllers, with: matcher), lhsControllers, rhsControllers, "controllers")) return Matcher.ComparisonResult(results) - case (.m_showMainScreen, .m_showMainScreen): return .match + case (.m_showMainOrWhatsNewScreen, .m_showMainOrWhatsNewScreen): return .match case (.m_showLoginScreen, .m_showLoginScreen): return .match @@ -630,7 +630,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return 0 case let .m_dismiss__animated_animated(p0): return p0.intValue case let .m_removeLastView__controllers_controllers(p0): return p0.intValue - case .m_showMainScreen: return 0 + case .m_showMainOrWhatsNewScreen: return 0 case .m_showLoginScreen: return 0 case .m_showRegisterScreen: return 0 case .m_showForgotPasswordScreen: return 0 @@ -647,7 +647,7 @@ open class BaseRouterMock: BaseRouter, Mock { case .m_backWithFade: return ".backWithFade()" case .m_dismiss__animated_animated: return ".dismiss(animated:)" case .m_removeLastView__controllers_controllers: return ".removeLastView(controllers:)" - case .m_showMainScreen: return ".showMainScreen()" + case .m_showMainOrWhatsNewScreen: return ".showMainOrWhatsNewScreen()" case .m_showLoginScreen: return ".showLoginScreen()" case .m_showRegisterScreen: return ".showRegisterScreen()" case .m_showForgotPasswordScreen: return ".showForgotPasswordScreen()" @@ -678,7 +678,7 @@ open class BaseRouterMock: BaseRouter, Mock { public static func backWithFade() -> Verify { return Verify(method: .m_backWithFade)} public static func dismiss(animated: Parameter) -> Verify { return Verify(method: .m_dismiss__animated_animated(`animated`))} public static func removeLastView(controllers: Parameter) -> Verify { return Verify(method: .m_removeLastView__controllers_controllers(`controllers`))} - public static func showMainScreen() -> Verify { return Verify(method: .m_showMainScreen)} + public static func showMainOrWhatsNewScreen() -> Verify { return Verify(method: .m_showMainOrWhatsNewScreen)} public static func showLoginScreen() -> Verify { return Verify(method: .m_showLoginScreen)} public static func showRegisterScreen() -> Verify { return Verify(method: .m_showRegisterScreen)} public static func showForgotPasswordScreen() -> Verify { return Verify(method: .m_showForgotPasswordScreen)} @@ -707,8 +707,8 @@ open class BaseRouterMock: BaseRouter, Mock { public static func removeLastView(controllers: Parameter, perform: @escaping (Int) -> Void) -> Perform { return Perform(method: .m_removeLastView__controllers_controllers(`controllers`), performs: perform) } - public static func showMainScreen(perform: @escaping () -> Void) -> Perform { - return Perform(method: .m_showMainScreen, performs: perform) + public static func showMainOrWhatsNewScreen(perform: @escaping () -> Void) -> Perform { + return Perform(method: .m_showMainOrWhatsNewScreen, performs: perform) } public static func showLoginScreen(perform: @escaping () -> Void) -> Perform { return Perform(method: .m_showLoginScreen, performs: perform) @@ -2370,9 +2370,9 @@ open class ProfileRouterMock: ProfileRouter, Mock { perform?(`controllers`) } - open func showMainScreen() { - addInvocation(.m_showMainScreen) - let perform = methodPerformValue(.m_showMainScreen) as? () -> Void + open func showMainOrWhatsNewScreen() { + addInvocation(.m_showMainOrWhatsNewScreen) + let perform = methodPerformValue(.m_showMainOrWhatsNewScreen) as? () -> Void perform?() } @@ -2429,7 +2429,7 @@ open class ProfileRouterMock: ProfileRouter, Mock { case m_backWithFade case m_dismiss__animated_animated(Parameter) case m_removeLastView__controllers_controllers(Parameter) - case m_showMainScreen + case m_showMainOrWhatsNewScreen case m_showLoginScreen case m_showRegisterScreen case m_showForgotPasswordScreen @@ -2478,7 +2478,7 @@ open class ProfileRouterMock: ProfileRouter, Mock { results.append(Matcher.ParameterComparisonResult(Parameter.compare(lhs: lhsControllers, rhs: rhsControllers, with: matcher), lhsControllers, rhsControllers, "controllers")) return Matcher.ComparisonResult(results) - case (.m_showMainScreen, .m_showMainScreen): return .match + case (.m_showMainOrWhatsNewScreen, .m_showMainOrWhatsNewScreen): return .match case (.m_showLoginScreen, .m_showLoginScreen): return .match @@ -2534,7 +2534,7 @@ open class ProfileRouterMock: ProfileRouter, Mock { case .m_backWithFade: return 0 case let .m_dismiss__animated_animated(p0): return p0.intValue case let .m_removeLastView__controllers_controllers(p0): return p0.intValue - case .m_showMainScreen: return 0 + case .m_showMainOrWhatsNewScreen: return 0 case .m_showLoginScreen: return 0 case .m_showRegisterScreen: return 0 case .m_showForgotPasswordScreen: return 0 @@ -2555,7 +2555,7 @@ open class ProfileRouterMock: ProfileRouter, Mock { case .m_backWithFade: return ".backWithFade()" case .m_dismiss__animated_animated: return ".dismiss(animated:)" case .m_removeLastView__controllers_controllers: return ".removeLastView(controllers:)" - case .m_showMainScreen: return ".showMainScreen()" + case .m_showMainOrWhatsNewScreen: return ".showMainOrWhatsNewScreen()" case .m_showLoginScreen: return ".showLoginScreen()" case .m_showRegisterScreen: return ".showRegisterScreen()" case .m_showForgotPasswordScreen: return ".showForgotPasswordScreen()" @@ -2590,7 +2590,7 @@ open class ProfileRouterMock: ProfileRouter, Mock { public static func backWithFade() -> Verify { return Verify(method: .m_backWithFade)} public static func dismiss(animated: Parameter) -> Verify { return Verify(method: .m_dismiss__animated_animated(`animated`))} public static func removeLastView(controllers: Parameter) -> Verify { return Verify(method: .m_removeLastView__controllers_controllers(`controllers`))} - public static func showMainScreen() -> Verify { return Verify(method: .m_showMainScreen)} + public static func showMainOrWhatsNewScreen() -> Verify { return Verify(method: .m_showMainOrWhatsNewScreen)} public static func showLoginScreen() -> Verify { return Verify(method: .m_showLoginScreen)} public static func showRegisterScreen() -> Verify { return Verify(method: .m_showRegisterScreen)} public static func showForgotPasswordScreen() -> Verify { return Verify(method: .m_showForgotPasswordScreen)} @@ -2631,8 +2631,8 @@ open class ProfileRouterMock: ProfileRouter, Mock { public static func removeLastView(controllers: Parameter, perform: @escaping (Int) -> Void) -> Perform { return Perform(method: .m_removeLastView__controllers_controllers(`controllers`), performs: perform) } - public static func showMainScreen(perform: @escaping () -> Void) -> Perform { - return Perform(method: .m_showMainScreen, performs: perform) + public static func showMainOrWhatsNewScreen(perform: @escaping () -> Void) -> Perform { + return Perform(method: .m_showMainOrWhatsNewScreen, performs: perform) } public static func showLoginScreen(perform: @escaping () -> Void) -> Perform { return Perform(method: .m_showLoginScreen, performs: perform) diff --git a/WhatsNew/.gitignore b/WhatsNew/.gitignore new file mode 100644 index 000000000..9c22c8b85 --- /dev/null +++ b/WhatsNew/.gitignore @@ -0,0 +1,99 @@ +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## User settings +xcuserdata/* +/WhatsNew.xcodeproj/xcuserdata/ +/WhatsNew.xcworkspace/xcuserdata/ + +## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) +*.xcscmblueprint +*.xccheckout + +## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) +build/ +DerivedData/ +*.moved-aside +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 + +## Obj-C/Swift specific +*.hmap + +## App packaging +*.ipa +*.dSYM.zip +*.dSYM + +## R.swift +R.generated.swift + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +# +# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. +# Packages/ +# Package.pins +# Package.resolved +# *.xcodeproj +# +# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata +# hence it is not needed unless you have added a package configuration file to your project +# .swiftpm + +.build/ + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +Pods/ +# +# Add this line if you want to avoid checking in source code from the Xcode workspace +# *.xcworkspace + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + +Carthage/Build/ + +# Accio dependency management +Dependencies/ +.accio/ + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. +# Instead, use fastlane to re-generate the screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots/**/*.png +fastlane/test_output + +# Code Injection +# +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + +iOSInjectionProject/ + +.DS_Store +.idea +xcode-frameworks diff --git a/WhatsNew/Mockfile b/WhatsNew/Mockfile new file mode 100644 index 000000000..0b15b3b93 --- /dev/null +++ b/WhatsNew/Mockfile @@ -0,0 +1,17 @@ +sourceryCommand: null +sourceryTemplate: null +unit.tests.mock: + sources: + include: + - ./../WhatsNew + - ./WhatsNew + exclude: [] + output: ./WhatsNewTests/WhatsNewMock.generated.swift + targets: + - MyAppUnitTests + import: + - Core + - WhatsNew + - Foundation + - SwiftUI + - Combine \ No newline at end of file diff --git a/WhatsNew/WhatsNew.xcodeproj/project.pbxproj b/WhatsNew/WhatsNew.xcodeproj/project.pbxproj new file mode 100644 index 000000000..dad830243 --- /dev/null +++ b/WhatsNew/WhatsNew.xcodeproj/project.pbxproj @@ -0,0 +1,1499 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 020A7B5F2AE131A9000BAF70 /* WhatsNewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 020A7B5E2AE131A9000BAF70 /* WhatsNewModel.swift */; }; + 020A7B612AE136D2000BAF70 /* WhatsNew.json in Resources */ = {isa = PBXBuildFile; fileRef = 020A7B602AE136D2000BAF70 /* WhatsNew.json */; }; + 020AC2692AEBB69E0086E975 /* WhatsNewMock.generated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 020AC2682AEBB69E0086E975 /* WhatsNewMock.generated.swift */; }; + 028A37262ADFF3F8008CA604 /* WhatsNew.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 028A371D2ADFF3F7008CA604 /* WhatsNew.framework */; }; + 028A372B2ADFF3F8008CA604 /* WhatsNewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 028A372A2ADFF3F8008CA604 /* WhatsNewTests.swift */; }; + 028A373A2ADFF425008CA604 /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 028A37392ADFF425008CA604 /* Core.framework */; }; + 02B54E0D2AE0331F00C56962 /* WhatsNewNavigationButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B54E0C2AE0331F00C56962 /* WhatsNewNavigationButton.swift */; }; + 02B54E0F2AE0337800C56962 /* PageControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B54E0E2AE0337800C56962 /* PageControl.swift */; }; + 02B54E112AE061C100C56962 /* WhatsNewRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B54E102AE061C100C56962 /* WhatsNewRouter.swift */; }; + 02E640792ADFF5920079AEDA /* WhatsNewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E640782ADFF5920079AEDA /* WhatsNewView.swift */; }; + 02E6407C2ADFF6250079AEDA /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 02E6407E2ADFF6250079AEDA /* Localizable.strings */; }; + 02E640812ADFFE440079AEDA /* WhatsNewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E640802ADFFE440079AEDA /* WhatsNewViewModel.swift */; }; + 02E640862ADFFF380079AEDA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 02E640852ADFFF380079AEDA /* Assets.xcassets */; }; + 02E6408A2AE004300079AEDA /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E640892AE004300079AEDA /* Strings.swift */; }; + 02E6408C2AE006680079AEDA /* swiftgen.yml in Resources */ = {isa = PBXBuildFile; fileRef = 02E6408B2AE006680079AEDA /* swiftgen.yml */; }; + 02EC90AA2AE904E1007DE1E0 /* WhatsNewStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02EC90A92AE904E1007DE1E0 /* WhatsNewStorage.swift */; }; + 02EC90AC2AE90C64007DE1E0 /* WhatsNewPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02EC90AB2AE90C64007DE1E0 /* WhatsNewPage.swift */; }; + B3BB9B06B226989A619C6440 /* Pods_App_WhatsNew.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05AC45C7050E30F8394E0C76 /* Pods_App_WhatsNew.framework */; }; + EF5CA11A55CB49F2DA030D25 /* Pods_App_WhatsNew_WhatsNewTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8D1A5DF016EC4630637336C /* Pods_App_WhatsNew_WhatsNewTests.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 028A37272ADFF3F8008CA604 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 028A37142ADFF3F7008CA604 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 028A371C2ADFF3F7008CA604; + remoteInfo = WhatsNew; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 020A7B5E2AE131A9000BAF70 /* WhatsNewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhatsNewModel.swift; sourceTree = ""; }; + 020A7B602AE136D2000BAF70 /* WhatsNew.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = WhatsNew.json; path = WhatsNew/Data/WhatsNew.json; sourceTree = SOURCE_ROOT; }; + 020AC2682AEBB69E0086E975 /* WhatsNewMock.generated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WhatsNewMock.generated.swift; path = WhatsNewTests/WhatsNewMock.generated.swift; sourceTree = SOURCE_ROOT; }; + 028A371D2ADFF3F7008CA604 /* WhatsNew.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WhatsNew.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 028A37252ADFF3F7008CA604 /* WhatsNewTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WhatsNewTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 028A372A2ADFF3F8008CA604 /* WhatsNewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhatsNewTests.swift; sourceTree = ""; }; + 028A37392ADFF425008CA604 /* Core.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Core.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 02B54E0C2AE0331F00C56962 /* WhatsNewNavigationButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhatsNewNavigationButton.swift; sourceTree = ""; }; + 02B54E0E2AE0337800C56962 /* PageControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageControl.swift; sourceTree = ""; }; + 02B54E102AE061C100C56962 /* WhatsNewRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhatsNewRouter.swift; sourceTree = ""; }; + 02E640782ADFF5920079AEDA /* WhatsNewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhatsNewView.swift; sourceTree = ""; }; + 02E6407D2ADFF6250079AEDA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 02E6407F2ADFF6270079AEDA /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = ""; }; + 02E640802ADFFE440079AEDA /* WhatsNewViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhatsNewViewModel.swift; sourceTree = ""; }; + 02E640852ADFFF380079AEDA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 02E640892AE004300079AEDA /* Strings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Strings.swift; sourceTree = ""; }; + 02E6408B2AE006680079AEDA /* swiftgen.yml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.yaml; path = swiftgen.yml; sourceTree = ""; }; + 02EC90A92AE904E1007DE1E0 /* WhatsNewStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhatsNewStorage.swift; sourceTree = ""; }; + 02EC90AB2AE90C64007DE1E0 /* WhatsNewPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhatsNewPage.swift; sourceTree = ""; }; + 02EC90B12AE91BF1007DE1E0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 05AC45C7050E30F8394E0C76 /* Pods_App_WhatsNew.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_App_WhatsNew.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0C01007F0E8CEDCD293E0A68 /* Pods-App-WhatsNew.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew.debug.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew/Pods-App-WhatsNew.debug.xcconfig"; sourceTree = ""; }; + 1E3F4487E7D3A48F5FD12DDA /* Pods-App-WhatsNew-WhatsNewTests.releasestage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew-WhatsNewTests.releasestage.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew-WhatsNewTests/Pods-App-WhatsNew-WhatsNewTests.releasestage.xcconfig"; sourceTree = ""; }; + 34C1F2BEAF7F0DCB8E630F33 /* Pods-App-WhatsNew.releasestage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew.releasestage.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew/Pods-App-WhatsNew.releasestage.xcconfig"; sourceTree = ""; }; + 365FD817D70DFBCBDE2EAE5F /* Pods-App-WhatsNew-WhatsNewTests.releaseprod.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew-WhatsNewTests.releaseprod.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew-WhatsNewTests/Pods-App-WhatsNew-WhatsNewTests.releaseprod.xcconfig"; sourceTree = ""; }; + 4CB92C9DBA730A1B06B076BA /* Pods-App-WhatsNew.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew.release.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew/Pods-App-WhatsNew.release.xcconfig"; sourceTree = ""; }; + 58DF8140E3B3436F58C4C8B9 /* Pods-App-WhatsNew-WhatsNewTests.releasedev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew-WhatsNewTests.releasedev.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew-WhatsNewTests/Pods-App-WhatsNew-WhatsNewTests.releasedev.xcconfig"; sourceTree = ""; }; + 6F50A409FBCCC7C08712A25E /* Pods-App-WhatsNew.debugdev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew.debugdev.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew/Pods-App-WhatsNew.debugdev.xcconfig"; sourceTree = ""; }; + 9176CDC000731B73D2F10372 /* Pods-App-WhatsNew.debugstage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew.debugstage.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew/Pods-App-WhatsNew.debugstage.xcconfig"; sourceTree = ""; }; + 9844714991FA40ECDC228CC9 /* Pods-App-WhatsNew.releasedev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew.releasedev.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew/Pods-App-WhatsNew.releasedev.xcconfig"; sourceTree = ""; }; + A2CABA11F5E7F89EFD9A05AC /* Pods-App-WhatsNew-WhatsNewTests.debugstage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew-WhatsNewTests.debugstage.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew-WhatsNewTests/Pods-App-WhatsNew-WhatsNewTests.debugstage.xcconfig"; sourceTree = ""; }; + A557A3CED4D6327AAE6AA02C /* Pods-App-WhatsNew-WhatsNewTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew-WhatsNewTests.release.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew-WhatsNewTests/Pods-App-WhatsNew-WhatsNewTests.release.xcconfig"; sourceTree = ""; }; + A76975E21FF282D59CEC4452 /* Pods-App-WhatsNew.debugprod.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew.debugprod.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew/Pods-App-WhatsNew.debugprod.xcconfig"; sourceTree = ""; }; + AB8156676C9C771D691ADE07 /* Pods-App-WhatsNew.releaseprod.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew.releaseprod.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew/Pods-App-WhatsNew.releaseprod.xcconfig"; sourceTree = ""; }; + B7EAC5E8F0ED2F1F81050C30 /* Pods-App-WhatsNew-WhatsNewTests.debugprod.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew-WhatsNewTests.debugprod.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew-WhatsNewTests/Pods-App-WhatsNew-WhatsNewTests.debugprod.xcconfig"; sourceTree = ""; }; + E905D28DCAA1940E08C96896 /* Pods-App-WhatsNew-WhatsNewTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew-WhatsNewTests.debug.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew-WhatsNewTests/Pods-App-WhatsNew-WhatsNewTests.debug.xcconfig"; sourceTree = ""; }; + F71207762CEF1763A08C7151 /* Pods-App-WhatsNew-WhatsNewTests.debugdev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App-WhatsNew-WhatsNewTests.debugdev.xcconfig"; path = "Target Support Files/Pods-App-WhatsNew-WhatsNewTests/Pods-App-WhatsNew-WhatsNewTests.debugdev.xcconfig"; sourceTree = ""; }; + F8D1A5DF016EC4630637336C /* Pods_App_WhatsNew_WhatsNewTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_App_WhatsNew_WhatsNewTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 028A371A2ADFF3F7008CA604 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 028A373A2ADFF425008CA604 /* Core.framework in Frameworks */, + B3BB9B06B226989A619C6440 /* Pods_App_WhatsNew.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 028A37222ADFF3F7008CA604 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 028A37262ADFF3F8008CA604 /* WhatsNew.framework in Frameworks */, + EF5CA11A55CB49F2DA030D25 /* Pods_App_WhatsNew_WhatsNewTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 020A7B5D2AE1317E000BAF70 /* Domain */ = { + isa = PBXGroup; + children = ( + 02EC90AB2AE90C64007DE1E0 /* WhatsNewPage.swift */, + ); + path = Domain; + sourceTree = ""; + }; + 028A37132ADFF3F7008CA604 = { + isa = PBXGroup; + children = ( + 02E6408B2AE006680079AEDA /* swiftgen.yml */, + 028A371F2ADFF3F7008CA604 /* WhatsNew */, + 028A37292ADFF3F8008CA604 /* WhatsNewTests */, + 028A371E2ADFF3F7008CA604 /* Products */, + 028A37382ADFF425008CA604 /* Frameworks */, + 3397DFC72A3A62728BCA5367 /* Pods */, + ); + sourceTree = ""; + }; + 028A371E2ADFF3F7008CA604 /* Products */ = { + isa = PBXGroup; + children = ( + 028A371D2ADFF3F7008CA604 /* WhatsNew.framework */, + 028A37252ADFF3F7008CA604 /* WhatsNewTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 028A371F2ADFF3F7008CA604 /* WhatsNew */ = { + isa = PBXGroup; + children = ( + 02E640722ADFF54E0079AEDA /* SwiftGen */, + 02E640822ADFFEB00079AEDA /* Data */, + 020A7B5D2AE1317E000BAF70 /* Domain */, + 02E640752ADFF5700079AEDA /* Presentation */, + 02E6407E2ADFF6250079AEDA /* Localizable.strings */, + 02E640852ADFFF380079AEDA /* Assets.xcassets */, + 02EC90B12AE91BF1007DE1E0 /* Info.plist */, + ); + path = WhatsNew; + sourceTree = ""; + }; + 028A37292ADFF3F8008CA604 /* WhatsNewTests */ = { + isa = PBXGroup; + children = ( + 02EC90B52AE92AEB007DE1E0 /* Presentation */, + 020AC2682AEBB69E0086E975 /* WhatsNewMock.generated.swift */, + ); + path = WhatsNewTests; + sourceTree = ""; + }; + 028A37382ADFF425008CA604 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 028A37392ADFF425008CA604 /* Core.framework */, + 05AC45C7050E30F8394E0C76 /* Pods_App_WhatsNew.framework */, + F8D1A5DF016EC4630637336C /* Pods_App_WhatsNew_WhatsNewTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 02B54E0B2AE0330F00C56962 /* Elements */ = { + isa = PBXGroup; + children = ( + 02B54E0C2AE0331F00C56962 /* WhatsNewNavigationButton.swift */, + 02B54E0E2AE0337800C56962 /* PageControl.swift */, + ); + path = Elements; + sourceTree = ""; + }; + 02E640722ADFF54E0079AEDA /* SwiftGen */ = { + isa = PBXGroup; + children = ( + 02E640892AE004300079AEDA /* Strings.swift */, + ); + path = SwiftGen; + sourceTree = ""; + }; + 02E640752ADFF5700079AEDA /* Presentation */ = { + isa = PBXGroup; + children = ( + 02B54E0B2AE0330F00C56962 /* Elements */, + 02E640782ADFF5920079AEDA /* WhatsNewView.swift */, + 02E640802ADFFE440079AEDA /* WhatsNewViewModel.swift */, + 02B54E102AE061C100C56962 /* WhatsNewRouter.swift */, + ); + path = Presentation; + sourceTree = ""; + }; + 02E640822ADFFEB00079AEDA /* Data */ = { + isa = PBXGroup; + children = ( + 020A7B5E2AE131A9000BAF70 /* WhatsNewModel.swift */, + 020A7B602AE136D2000BAF70 /* WhatsNew.json */, + 02EC90A92AE904E1007DE1E0 /* WhatsNewStorage.swift */, + ); + path = Data; + sourceTree = ""; + }; + 02EC90B52AE92AEB007DE1E0 /* Presentation */ = { + isa = PBXGroup; + children = ( + 028A372A2ADFF3F8008CA604 /* WhatsNewTests.swift */, + ); + path = Presentation; + sourceTree = ""; + }; + 3397DFC72A3A62728BCA5367 /* Pods */ = { + isa = PBXGroup; + children = ( + 0C01007F0E8CEDCD293E0A68 /* Pods-App-WhatsNew.debug.xcconfig */, + 4CB92C9DBA730A1B06B076BA /* Pods-App-WhatsNew.release.xcconfig */, + 9176CDC000731B73D2F10372 /* Pods-App-WhatsNew.debugstage.xcconfig */, + A76975E21FF282D59CEC4452 /* Pods-App-WhatsNew.debugprod.xcconfig */, + 6F50A409FBCCC7C08712A25E /* Pods-App-WhatsNew.debugdev.xcconfig */, + 34C1F2BEAF7F0DCB8E630F33 /* Pods-App-WhatsNew.releasestage.xcconfig */, + AB8156676C9C771D691ADE07 /* Pods-App-WhatsNew.releaseprod.xcconfig */, + 9844714991FA40ECDC228CC9 /* Pods-App-WhatsNew.releasedev.xcconfig */, + E905D28DCAA1940E08C96896 /* Pods-App-WhatsNew-WhatsNewTests.debug.xcconfig */, + A2CABA11F5E7F89EFD9A05AC /* Pods-App-WhatsNew-WhatsNewTests.debugstage.xcconfig */, + B7EAC5E8F0ED2F1F81050C30 /* Pods-App-WhatsNew-WhatsNewTests.debugprod.xcconfig */, + F71207762CEF1763A08C7151 /* Pods-App-WhatsNew-WhatsNewTests.debugdev.xcconfig */, + A557A3CED4D6327AAE6AA02C /* Pods-App-WhatsNew-WhatsNewTests.release.xcconfig */, + 1E3F4487E7D3A48F5FD12DDA /* Pods-App-WhatsNew-WhatsNewTests.releasestage.xcconfig */, + 365FD817D70DFBCBDE2EAE5F /* Pods-App-WhatsNew-WhatsNewTests.releaseprod.xcconfig */, + 58DF8140E3B3436F58C4C8B9 /* Pods-App-WhatsNew-WhatsNewTests.releasedev.xcconfig */, + ); + name = Pods; + path = ../Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 028A37182ADFF3F7008CA604 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 028A371C2ADFF3F7008CA604 /* WhatsNew */ = { + isa = PBXNativeTarget; + buildConfigurationList = 028A372F2ADFF3F8008CA604 /* Build configuration list for PBXNativeTarget "WhatsNew" */; + buildPhases = ( + E5055BD989FEEC50EF87C814 /* [CP] Check Pods Manifest.lock */, + 02E6408E2AE007090079AEDA /* SwiftGen */, + 028A37182ADFF3F7008CA604 /* Headers */, + 028A37192ADFF3F7008CA604 /* Sources */, + 028A371A2ADFF3F7008CA604 /* Frameworks */, + 028A371B2ADFF3F7008CA604 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = WhatsNew; + productName = WhatsNew; + productReference = 028A371D2ADFF3F7008CA604 /* WhatsNew.framework */; + productType = "com.apple.product-type.framework"; + }; + 028A37242ADFF3F7008CA604 /* WhatsNewTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 028A37322ADFF3F8008CA604 /* Build configuration list for PBXNativeTarget "WhatsNewTests" */; + buildPhases = ( + 8685C1ADA448B11AB167C40E /* [CP] Check Pods Manifest.lock */, + 028A37212ADFF3F7008CA604 /* Sources */, + 028A37222ADFF3F7008CA604 /* Frameworks */, + 028A37232ADFF3F7008CA604 /* Resources */, + 8A74692D666D8FF13F7BA64F /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 028A37282ADFF3F8008CA604 /* PBXTargetDependency */, + ); + name = WhatsNewTests; + productName = WhatsNewTests; + productReference = 028A37252ADFF3F7008CA604 /* WhatsNewTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 028A37142ADFF3F7008CA604 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1500; + LastUpgradeCheck = 1500; + TargetAttributes = { + 028A371C2ADFF3F7008CA604 = { + CreatedOnToolsVersion = 15.0; + LastSwiftMigration = 1500; + }; + 028A37242ADFF3F7008CA604 = { + CreatedOnToolsVersion = 15.0; + }; + }; + }; + buildConfigurationList = 028A37172ADFF3F7008CA604 /* Build configuration list for PBXProject "WhatsNew" */; + compatibilityVersion = "Xcode 13.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + uk, + ); + mainGroup = 028A37132ADFF3F7008CA604; + productRefGroup = 028A371E2ADFF3F7008CA604 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 028A371C2ADFF3F7008CA604 /* WhatsNew */, + 028A37242ADFF3F7008CA604 /* WhatsNewTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 028A371B2ADFF3F7008CA604 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 02E640862ADFFF380079AEDA /* Assets.xcassets in Resources */, + 02E6407C2ADFF6250079AEDA /* Localizable.strings in Resources */, + 020A7B612AE136D2000BAF70 /* WhatsNew.json in Resources */, + 02E6408C2AE006680079AEDA /* swiftgen.yml in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 028A37232ADFF3F7008CA604 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 02E6408E2AE007090079AEDA /* SwiftGen */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = SwiftGen; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [[ -f \"${PODS_ROOT}/SwiftGen/bin/swiftgen\" ]]; then\n \"${PODS_ROOT}/SwiftGen/bin/swiftgen\"\nelse\n echo \"warning: SwiftGen is not installed. Run 'pod install --repo-update' to install it.\"\nfi\n"; + }; + 8685C1ADA448B11AB167C40E /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-App-WhatsNew-WhatsNewTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 8A74692D666D8FF13F7BA64F /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-App-WhatsNew-WhatsNewTests/Pods-App-WhatsNew-WhatsNewTests-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-App-WhatsNew-WhatsNewTests/Pods-App-WhatsNew-WhatsNewTests-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-App-WhatsNew-WhatsNewTests/Pods-App-WhatsNew-WhatsNewTests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + E5055BD989FEEC50EF87C814 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-App-WhatsNew-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 028A37192ADFF3F7008CA604 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 02E640812ADFFE440079AEDA /* WhatsNewViewModel.swift in Sources */, + 02B54E112AE061C100C56962 /* WhatsNewRouter.swift in Sources */, + 020A7B5F2AE131A9000BAF70 /* WhatsNewModel.swift in Sources */, + 02B54E0F2AE0337800C56962 /* PageControl.swift in Sources */, + 02EC90AC2AE90C64007DE1E0 /* WhatsNewPage.swift in Sources */, + 02EC90AA2AE904E1007DE1E0 /* WhatsNewStorage.swift in Sources */, + 02E6408A2AE004300079AEDA /* Strings.swift in Sources */, + 02E640792ADFF5920079AEDA /* WhatsNewView.swift in Sources */, + 02B54E0D2AE0331F00C56962 /* WhatsNewNavigationButton.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 028A37212ADFF3F7008CA604 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 028A372B2ADFF3F8008CA604 /* WhatsNewTests.swift in Sources */, + 020AC2692AEBB69E0086E975 /* WhatsNewMock.generated.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 028A37282ADFF3F8008CA604 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 028A371C2ADFF3F7008CA604 /* WhatsNew */; + targetProxy = 028A37272ADFF3F8008CA604 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 02E6407E2ADFF6250079AEDA /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 02E6407D2ADFF6250079AEDA /* en */, + 02E6407F2ADFF6270079AEDA /* uk */, + ); + name = Localizable.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 028A372D2ADFF3F8008CA604 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 028A372E2ADFF3F8008CA604 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 028A37302ADFF3F8008CA604 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0C01007F0E8CEDCD293E0A68 /* Pods-App-WhatsNew.debug.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = WhatsNew/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.WhatsNew; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 028A37312ADFF3F8008CA604 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4CB92C9DBA730A1B06B076BA /* Pods-App-WhatsNew.release.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = WhatsNew/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.WhatsNew; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 028A37332ADFF3F8008CA604 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E905D28DCAA1940E08C96896 /* Pods-App-WhatsNew-WhatsNewTests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.app.WhatsNewTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 028A37342ADFF3F8008CA604 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A557A3CED4D6327AAE6AA02C /* Pods-App-WhatsNew-WhatsNewTests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.app.WhatsNewTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 02E6405E2ADFF4DE0079AEDA /* DebugDev */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugDev; + }; + 02E6405F2ADFF4DE0079AEDA /* DebugDev */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6F50A409FBCCC7C08712A25E /* Pods-App-WhatsNew.debugdev.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = WhatsNew/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.WhatsNew; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugDev; + }; + 02E640602ADFF4DE0079AEDA /* DebugDev */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F71207762CEF1763A08C7151 /* Pods-App-WhatsNew-WhatsNewTests.debugdev.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.app.WhatsNewTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugDev; + }; + 02E640612ADFF4E50079AEDA /* DebugProd */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugProd; + }; + 02E640622ADFF4E50079AEDA /* DebugProd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A76975E21FF282D59CEC4452 /* Pods-App-WhatsNew.debugprod.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = WhatsNew/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.WhatsNew; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugProd; + }; + 02E640632ADFF4E50079AEDA /* DebugProd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B7EAC5E8F0ED2F1F81050C30 /* Pods-App-WhatsNew-WhatsNewTests.debugprod.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.app.WhatsNewTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugProd; + }; + 02E640642ADFF4EA0079AEDA /* DebugStage */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugStage; + }; + 02E640652ADFF4EA0079AEDA /* DebugStage */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9176CDC000731B73D2F10372 /* Pods-App-WhatsNew.debugstage.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = WhatsNew/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.WhatsNew; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugStage; + }; + 02E640662ADFF4EA0079AEDA /* DebugStage */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A2CABA11F5E7F89EFD9A05AC /* Pods-App-WhatsNew-WhatsNewTests.debugstage.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.app.WhatsNewTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugStage; + }; + 02E640672ADFF4F10079AEDA /* ReleaseDev */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseDev; + }; + 02E640682ADFF4F10079AEDA /* ReleaseDev */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9844714991FA40ECDC228CC9 /* Pods-App-WhatsNew.releasedev.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = WhatsNew/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.WhatsNew; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseDev; + }; + 02E640692ADFF4F10079AEDA /* ReleaseDev */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 58DF8140E3B3436F58C4C8B9 /* Pods-App-WhatsNew-WhatsNewTests.releasedev.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.app.WhatsNewTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseDev; + }; + 02E6406A2ADFF4F70079AEDA /* ReleaseProd */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseProd; + }; + 02E6406B2ADFF4F70079AEDA /* ReleaseProd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB8156676C9C771D691ADE07 /* Pods-App-WhatsNew.releaseprod.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = WhatsNew/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.WhatsNew; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseProd; + }; + 02E6406C2ADFF4F70079AEDA /* ReleaseProd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 365FD817D70DFBCBDE2EAE5F /* Pods-App-WhatsNew-WhatsNewTests.releaseprod.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.app.WhatsNewTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseProd; + }; + 02E6406D2ADFF4FD0079AEDA /* ReleaseStage */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseStage; + }; + 02E6406E2ADFF4FD0079AEDA /* ReleaseStage */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 34C1F2BEAF7F0DCB8E630F33 /* Pods-App-WhatsNew.releasestage.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = WhatsNew/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.WhatsNew; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseStage; + }; + 02E6406F2ADFF4FD0079AEDA /* ReleaseStage */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1E3F4487E7D3A48F5FD12DDA /* Pods-App-WhatsNew-WhatsNewTests.releasestage.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = L8PG7LC3Y3; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.openedx.app.WhatsNewTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseStage; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 028A37172ADFF3F7008CA604 /* Build configuration list for PBXProject "WhatsNew" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 028A372D2ADFF3F8008CA604 /* Debug */, + 02E640642ADFF4EA0079AEDA /* DebugStage */, + 02E640612ADFF4E50079AEDA /* DebugProd */, + 02E6405E2ADFF4DE0079AEDA /* DebugDev */, + 028A372E2ADFF3F8008CA604 /* Release */, + 02E6406D2ADFF4FD0079AEDA /* ReleaseStage */, + 02E6406A2ADFF4F70079AEDA /* ReleaseProd */, + 02E640672ADFF4F10079AEDA /* ReleaseDev */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 028A372F2ADFF3F8008CA604 /* Build configuration list for PBXNativeTarget "WhatsNew" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 028A37302ADFF3F8008CA604 /* Debug */, + 02E640652ADFF4EA0079AEDA /* DebugStage */, + 02E640622ADFF4E50079AEDA /* DebugProd */, + 02E6405F2ADFF4DE0079AEDA /* DebugDev */, + 028A37312ADFF3F8008CA604 /* Release */, + 02E6406E2ADFF4FD0079AEDA /* ReleaseStage */, + 02E6406B2ADFF4F70079AEDA /* ReleaseProd */, + 02E640682ADFF4F10079AEDA /* ReleaseDev */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 028A37322ADFF3F8008CA604 /* Build configuration list for PBXNativeTarget "WhatsNewTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 028A37332ADFF3F8008CA604 /* Debug */, + 02E640662ADFF4EA0079AEDA /* DebugStage */, + 02E640632ADFF4E50079AEDA /* DebugProd */, + 02E640602ADFF4DE0079AEDA /* DebugDev */, + 028A37342ADFF3F8008CA604 /* Release */, + 02E6406F2ADFF4FD0079AEDA /* ReleaseStage */, + 02E6406C2ADFF4F70079AEDA /* ReleaseProd */, + 02E640692ADFF4F10079AEDA /* ReleaseDev */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 028A37142ADFF3F7008CA604 /* Project object */; +} diff --git a/WhatsNew/WhatsNew.xcodeproj/xcshareddata/xcschemes/WhatsNew.xcscheme b/WhatsNew/WhatsNew.xcodeproj/xcshareddata/xcschemes/WhatsNew.xcscheme new file mode 100644 index 000000000..c7efb774a --- /dev/null +++ b/WhatsNew/WhatsNew.xcodeproj/xcshareddata/xcschemes/WhatsNew.xcscheme @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WhatsNew/WhatsNew/Assets.xcassets/1.0/Contents.json b/WhatsNew/WhatsNew/Assets.xcassets/1.0/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/WhatsNew/WhatsNew/Assets.xcassets/1.0/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/WhatsNew/WhatsNew/Assets.xcassets/1.0/image1_1.0.imageset/Contents.json b/WhatsNew/WhatsNew/Assets.xcassets/1.0/image1_1.0.imageset/Contents.json new file mode 100644 index 000000000..52b4c6b95 --- /dev/null +++ b/WhatsNew/WhatsNew/Assets.xcassets/1.0/image1_1.0.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Group 97.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "localizable" : true + } +} diff --git a/WhatsNew/WhatsNew/Assets.xcassets/1.0/image1_1.0.imageset/Group 97.png b/WhatsNew/WhatsNew/Assets.xcassets/1.0/image1_1.0.imageset/Group 97.png new file mode 100644 index 0000000000000000000000000000000000000000..1853bf8ab974208c185af4b82f5929f45b4a2683 GIT binary patch literal 34041 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%0Aoi=V$vAOLu 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 literal 0 HcmV?d00001 diff --git a/WhatsNew/WhatsNew/Assets.xcassets/Contents.json b/WhatsNew/WhatsNew/Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/WhatsNew/WhatsNew/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/WhatsNew/WhatsNew/Data/WhatsNew.json b/WhatsNew/WhatsNew/Data/WhatsNew.json new file mode 100644 index 000000000..355c720b6 --- /dev/null +++ b/WhatsNew/WhatsNew/Data/WhatsNew.json @@ -0,0 +1,52 @@ +[ + { + "version": "1.0", + "messages": [ + { + "image": "image1_1.0", + "title": "Improved language support", + "message": "We have added more translations throughout the app so you can learn on edX your way!" + }, + { + "image": "image2_1.0", + "title": "Download videos offline", + "message": "Easily download videos without having an internet connection, so you can keep learning when there isn’t a network around" + }, + { + "image": "image3_1.0", + "title": "Reduced Network Usage", + "message": "Now you can download your content faster to get right into your next lesson!" + }, + { + "image": "image4_1.0", + "title": "Learning Site Switching", + "message": "Switch more easily between multiple learning sites. Find the new options within account settings and easily manage your accounts" + } + ] + }, + { + "version": "0.9", + "messages": [ + { + "image": "image1_1.0", + "title": "1.3 Improved language support", + "message": "We have added more translations throughout the app so you can learn on edX your way!" + }, + { + "image": "image2_1.0", + "title": "Download videos offline", + "message": "Easily download videos without having an internet connection, so you can keep learning when there isn’t a network around" + }, + { + "image": "image3_1.0", + "title": "Reduced Network Usage", + "message": "Now you can download your content faster to get right into your next lesson!" + }, + { + "image": "image4_1.0", + "title": "Learning Site Switching", + "message": "Switch more easily between multiple learning sites. Find the new options within account settings and easily manage your accounts" + } + ] + } +] diff --git a/WhatsNew/WhatsNew/Data/WhatsNewModel.swift b/WhatsNew/WhatsNew/Data/WhatsNewModel.swift new file mode 100644 index 000000000..48302fb62 --- /dev/null +++ b/WhatsNew/WhatsNew/Data/WhatsNewModel.swift @@ -0,0 +1,69 @@ +// +// WhatsNewModel.swift +// WhatsNew +// +// Created by  Stepanok Ivan on 19.10.2023. +// + +import Foundation + +// MARK: - WhatsNewModelElement +public struct WhatsNewModelElement: Codable { + public let version: String + public let messages: [Message] + + public init(version: String, messages: [Message]) { + self.version = version + self.messages = messages + } +} + +// MARK: - Message +public struct Message: Codable { + public let image: String + public let title: String + public let message: String + + public init(image: String, title: String, message: String) { + self.image = image + self.title = title + self.message = message + } +} + +public typealias WhatsNewModel = [WhatsNewModelElement] + +extension WhatsNewModel { + + private func compareVersions(_ version1: String, _ version2: String) -> ComparisonResult { + let v1 = version1.split(separator: ".").compactMap { Int($0) } + let v2 = version2.split(separator: ".").compactMap { Int($0) } + + for (a, b) in zip(v1, v2) { + if a != b { + return a < b ? .orderedAscending : .orderedDescending + } + } + + return v1.count < v2.count ? .orderedAscending : (v1.count > v2.count ? .orderedDescending : .orderedSame) + } + + private func findLatestVersion(_ versions: [String]) -> String? { + guard let latestVersion = versions.max(by: { compareVersions($0, $1) == .orderedAscending }) else { + return nil + } + return latestVersion + } + + + var domain: [WhatsNewPage] { + guard let latestVersion = findLatestVersion(self.map { $0.version }) else { return [] } + return self.first(where: { $0.version == latestVersion })?.messages.map { + WhatsNewPage( + image: $0.image, + title: $0.title, + description: $0.message + ) + } ?? [] + } +} diff --git a/WhatsNew/WhatsNew/Data/WhatsNewStorage.swift b/WhatsNew/WhatsNew/Data/WhatsNewStorage.swift new file mode 100644 index 000000000..35d35d998 --- /dev/null +++ b/WhatsNew/WhatsNew/Data/WhatsNewStorage.swift @@ -0,0 +1,21 @@ +// +// WhatsNewStorage.swift +// WhatsNew +// +// Created by  Stepanok Ivan on 25.10.2023. +// + +import Foundation + +public protocol WhatsNewStorage { + var whatsNewVersion: String? {get set} +} + +#if DEBUG +public class WhatsNewStorageMock: WhatsNewStorage { + + public var whatsNewVersion: String? + + public init() {} +} +#endif diff --git a/WhatsNew/WhatsNew/Domain/WhatsNewPage.swift b/WhatsNew/WhatsNew/Domain/WhatsNewPage.swift new file mode 100644 index 000000000..8172ee037 --- /dev/null +++ b/WhatsNew/WhatsNew/Domain/WhatsNewPage.swift @@ -0,0 +1,14 @@ +// +// WhatsNewPage.swift +// WhatsNew +// +// Created by  Stepanok Ivan on 25.10.2023. +// + +import Foundation + +struct WhatsNewPage { + let image: String + let title: String + let description: String +} diff --git a/WhatsNew/WhatsNew/Info.plist b/WhatsNew/WhatsNew/Info.plist new file mode 100644 index 000000000..f72a0f657 --- /dev/null +++ b/WhatsNew/WhatsNew/Info.plist @@ -0,0 +1,12 @@ + + + + + + diff --git a/WhatsNew/WhatsNew/Presentation/Elements/PageControl.swift b/WhatsNew/WhatsNew/Presentation/Elements/PageControl.swift new file mode 100644 index 000000000..d6050b6ec --- /dev/null +++ b/WhatsNew/WhatsNew/Presentation/Elements/PageControl.swift @@ -0,0 +1,32 @@ +// +// PageControl.swift +// WhatsNew +// +// Created by  Stepanok Ivan on 18.10.2023. +// + +import SwiftUI +import Core + +struct PageControl: View { + let numberOfPages: Int + var currentPage: Int + + private var dots: some View { + HStack(spacing: 8) { + ForEach(0 ..< numberOfPages) { page in + RoundedRectangle(cornerRadius: 4) + .frame(width: page == currentPage ? 24 : 8, height: 8) + .foregroundColor(page == currentPage ? Theme.Colors.accentColor : Theme.Colors.textSecondary) + } + } + } + + var body: some View { + VStack { + Spacer() + dots + Spacer() + } + } +} diff --git a/WhatsNew/WhatsNew/Presentation/Elements/WhatsNewNavigationButton.swift b/WhatsNew/WhatsNew/Presentation/Elements/WhatsNewNavigationButton.swift new file mode 100644 index 000000000..03206348e --- /dev/null +++ b/WhatsNew/WhatsNew/Presentation/Elements/WhatsNewNavigationButton.swift @@ -0,0 +1,63 @@ +// +// CustomButton.swift +// WhatsNew +// +// Created by  Stepanok Ivan on 18.10.2023. +// + +import SwiftUI +import Core + +struct WhatsNewNavigationButton: View { + let type: ButtonType + let action: () -> Void + + enum ButtonType { + case previous, next, done + } + + var body: some View { + Group { + HStack(spacing: 4) { + if type == .previous { + CoreAssets.arrowLeft.swiftUIImage + .renderingMode(.template) + .foregroundColor(Theme.Colors.accentColor) + } + + Text(type == .previous ? WhatsNewLocalization.buttonPrevious + : (type == .next ? WhatsNewLocalization.buttonNext : WhatsNewLocalization.buttonDone )) + .foregroundColor(type == .previous ? Theme.Colors.accentColor : Color.white) + .font(Theme.Fonts.labelLarge) + + if type == .next { + CoreAssets.arrowLeft.swiftUIImage + .renderingMode(.template) + .rotationEffect(Angle(degrees: 180)) + .foregroundColor(Color.white) + } + + if type == .done { + CoreAssets.checkmark.swiftUIImage + .renderingMode(.template) + .foregroundColor(Color.white) + } + }.padding(.horizontal, 20) + .padding(.vertical, 9) + }.fixedSize() + .background(type == .previous + ? Theme.Colors.background + : Theme.Colors.accentColor) + .accessibilityElement(children: .ignore) + .accessibilityLabel(type == .previous ? WhatsNewLocalization.buttonPrevious + : (type == .next ? WhatsNewLocalization.buttonNext : WhatsNewLocalization.buttonDone )) + .cornerRadius(8) + .overlay( + RoundedRectangle(cornerRadius: 8) + .stroke(type == .previous + ? Theme.Colors.accentColor + : Theme.Colors.background, lineWidth: 1) + ) + .onTapGesture { action() } + } +} diff --git a/WhatsNew/WhatsNew/Presentation/WhatsNewRouter.swift b/WhatsNew/WhatsNew/Presentation/WhatsNewRouter.swift new file mode 100644 index 000000000..4416e24fd --- /dev/null +++ b/WhatsNew/WhatsNew/Presentation/WhatsNewRouter.swift @@ -0,0 +1,19 @@ +// +// WhatsNewRouter.swift +// WhatsNew +// +// Created by  Stepanok Ivan on 18.10.2023. +// + +import Foundation +import Core + +public protocol WhatsNewRouter: BaseRouter { +} + +// Mark - For testing and SwiftUI preview +#if DEBUG +public class WhatsNewRouterMock: BaseRouterMock, WhatsNewRouter { + public override init() {} +} +#endif diff --git a/WhatsNew/WhatsNew/Presentation/WhatsNewView.swift b/WhatsNew/WhatsNew/Presentation/WhatsNewView.swift new file mode 100644 index 000000000..bc419cb0a --- /dev/null +++ b/WhatsNew/WhatsNew/Presentation/WhatsNewView.swift @@ -0,0 +1,160 @@ +// +// WhatsNewView.swift +// WhatsNew +// +// Created by  Stepanok Ivan on 18.10.2023. +// + +import SwiftUI +import Core + +public struct WhatsNewView: View { + + private let router: WhatsNewRouter + + @ObservedObject + private var viewModel: WhatsNewViewModel + + @Environment (\.isHorizontal) + private var isHorizontal + + @State var index = 0 + + public init(router: WhatsNewRouter, viewModel: WhatsNewViewModel) { + self.router = router + self.viewModel = viewModel + } + + public var body: some View { + GeometryReader { reader in + ZStack(alignment: isHorizontal ? .center : .bottom) { + Theme.Colors.background + .ignoresSafeArea() + adaptiveStack(isHorizontal: isHorizontal) { + TabView(selection: $index) { + ForEach(Array(viewModel.newItems.enumerated()), id: \.offset) { _, new in + adaptiveStack(isHorizontal: isHorizontal) { + ZStack(alignment: .center) { + Image(new.image, bundle: Bundle(for: BundleToken.self)) + .resizable() + .scaledToFit() + .frame(minWidth: 250, maxWidth: 300) + .padding(24) + }.frame(minHeight: 250, maxHeight: 416) + Spacer() + } + } + }.tabViewStyle(.page(indexDisplayMode: .never)) + } + if isHorizontal { + HStack { + Spacer() + + Rectangle() + .foregroundColor(Theme.Colors.background) + .frame(width: reader.size.width / 1.9) + .ignoresSafeArea() + .mask( + LinearGradient( + gradient: Gradient(colors: [ + .clear, + .black, + .black, + .black, + .black, + .black, + .black, + .black, + .black]), + startPoint: .leading, + endPoint: .trailing + ) + ) + } .allowsHitTesting(false) + } + HStack { + if isHorizontal { + Spacer() + } + VStack(spacing: 16) { + VStack { + if !viewModel.newItems.isEmpty { + Text(viewModel.newItems[viewModel.index].title) + .font(Theme.Fonts.titleMedium) + Text(viewModel.newItems[viewModel.index].description) + .font(Theme.Fonts.bodyMedium) + .multilineTextAlignment(.center) + } + }.frame(height: 100) + .allowsHitTesting(false) + + HStack(spacing: 36) { + WhatsNewNavigationButton(type: .previous, action: { + if index != 0 { + withAnimation(.linear(duration: 0.3)) { + index -= 1 + } + } + }).opacity(viewModel.index != 0 ? 1 : 0) + WhatsNewNavigationButton( + type: viewModel.index < viewModel.newItems.count - 1 ? .next : .done, + action: { + if index < viewModel.newItems.count - 1 { + withAnimation(.linear(duration: 0.3)) { + index += 1 + } + } else { + router.showMainOrWhatsNewScreen() + } + } + ) + } + } + .padding(.bottom, isHorizontal ? 0 : 52) + .padding(.horizontal, 24) + .frame(width: isHorizontal ? reader.size.width / 1.9 : nil) + } + VStack { + if isHorizontal { + Spacer() + } + PageControl(numberOfPages: viewModel.newItems.count, currentPage: viewModel.index) + .frame(height: isHorizontal ? 8 : nil) + .allowsHitTesting(false) + .padding(.top, isHorizontal ? 0 : 170) + .padding(.bottom, 8) + } + + }.onChange(of: index) { ind in + withAnimation(.linear(duration: 0.3)) { + viewModel.index = ind + } + } + .navigationTitle(WhatsNewLocalization.title) + .toolbar { + ToolbarItem(placement: .navigationBarTrailing, content: { + Button(action: { + router.showMainOrWhatsNewScreen() + }, label: { + Image(systemName: "xmark") + .foregroundColor(Theme.Colors.accentColor) + }) + }) + } + } + } + + class BundleToken {} +} + +#if DEBUG +struct WhatsNewView_Previews: PreviewProvider { + static var previews: some View { + WhatsNewView( + router: WhatsNewRouterMock(), + viewModel: WhatsNewViewModel(storage: WhatsNewStorageMock()) + ) + .loadFonts() + } +} +#endif diff --git a/WhatsNew/WhatsNew/Presentation/WhatsNewViewModel.swift b/WhatsNew/WhatsNew/Presentation/WhatsNewViewModel.swift new file mode 100644 index 000000000..170472088 --- /dev/null +++ b/WhatsNew/WhatsNew/Presentation/WhatsNewViewModel.swift @@ -0,0 +1,73 @@ +// +// WhatsNewViewModel.swift +// WhatsNew +// +// Created by  Stepanok Ivan on 18.10.2023. +// + +import SwiftUI +import Core +import Swinject + +public class WhatsNewViewModel: ObservableObject { + @Published var index: Int = 0 + @Published var newItems: [WhatsNewPage] = [] + private let storage: WhatsNewStorage + + public init(storage: WhatsNewStorage) { + self.storage = storage + newItems = loadWhatsNew() + } + + public func getVersion() -> String? { + guard let model = loadWhatsNewModel() else { return nil } + return model.first?.version + } + + public func shouldShowWhatsNew() -> Bool { + guard let currentVersion = getVersion() else { return false } + + // If there is no saved version in storage, we always show WhatsNew + guard let savedVersion = storage.whatsNewVersion else { return true } + + // We break down the versions into components major, minor, patch + let savedComponents = savedVersion.components(separatedBy: ".") + let currentComponents = currentVersion.components(separatedBy: ".") + + // Checking major and minor components + if savedComponents.count >= 2 && currentComponents.count >= 2 { + let savedMajor = savedComponents[0] + let savedMinor = savedComponents[1] + + let currentMajor = currentComponents[0] + let currentMinor = currentComponents[1] + + // If major or minor are different, show WhatsNew + if savedMajor != currentMajor || savedMinor != currentMinor { + return true + } + } + return false + } + + func loadWhatsNew() -> [WhatsNewPage] { + guard let domain = loadWhatsNewModel()?.domain else { return [] } + return domain + } + + private func loadWhatsNewModel() -> WhatsNewModel? { + guard let fileUrl = Bundle(for: Self.self).url(forResource: "WhatsNew", withExtension: "json") else { + print("Unable to locate WhatsNew.json") + return nil + } + + do { + let data = try Data(contentsOf: fileUrl) + let decoder = JSONDecoder() + return try decoder.decode(WhatsNewModel.self, from: data) + } catch { + print("Error decoding WhatsNew.json: \(error)") + return nil + } + } +} diff --git a/WhatsNew/WhatsNew/SwiftGen/Strings.swift b/WhatsNew/WhatsNew/SwiftGen/Strings.swift new file mode 100644 index 000000000..8b483b7b4 --- /dev/null +++ b/WhatsNew/WhatsNew/SwiftGen/Strings.swift @@ -0,0 +1,47 @@ +// swiftlint:disable all +// Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen + +import Foundation + +// swiftlint:disable superfluous_disable_command file_length implicit_return prefer_self_in_static_references + +// MARK: - Strings + +// swiftlint:disable explicit_type_interface function_parameter_count identifier_name line_length +// swiftlint:disable nesting type_body_length type_name vertical_whitespace_opening_braces +public enum WhatsNewLocalization { + /// Done + public static let buttonDone = WhatsNewLocalization.tr("Localizable", "BUTTON_DONE", fallback: "Done") + /// Next + public static let buttonNext = WhatsNewLocalization.tr("Localizable", "BUTTON_NEXT", fallback: "Next") + /// Previous + public static let buttonPrevious = WhatsNewLocalization.tr("Localizable", "BUTTON_PREVIOUS", fallback: "Previous") + /// Localizable.strings + /// WhatsNew + /// + /// Created by  Stepanok Ivan on 18.10.2023. + public static let title = WhatsNewLocalization.tr("Localizable", "TITLE", fallback: "What's New") +} +// swiftlint:enable explicit_type_interface function_parameter_count identifier_name line_length +// swiftlint:enable nesting type_body_length type_name vertical_whitespace_opening_braces + +// MARK: - Implementation Details + +extension WhatsNewLocalization { + private static func tr(_ table: String, _ key: String, _ args: CVarArg..., fallback value: String) -> String { + let format = BundleToken.bundle.localizedString(forKey: key, value: value, table: table) + return String(format: format, locale: Locale.current, arguments: args) + } +} + +// swiftlint:disable convenience_type +private final class BundleToken { + static let bundle: Bundle = { + #if SWIFT_PACKAGE + return Bundle.module + #else + return Bundle(for: BundleToken.self) + #endif + }() +} +// swiftlint:enable convenience_type diff --git a/WhatsNew/WhatsNew/en.lproj/Localizable.strings b/WhatsNew/WhatsNew/en.lproj/Localizable.strings new file mode 100644 index 000000000..08fffcb7b --- /dev/null +++ b/WhatsNew/WhatsNew/en.lproj/Localizable.strings @@ -0,0 +1,13 @@ +/* + Localizable.strings + WhatsNew + + Created by  Stepanok Ivan on 18.10.2023. + +*/ + +"TITLE" = "What's New"; +"BUTTON_PREVIOUS" = "Previous"; +"BUTTON_NEXT" = "Next"; +"BUTTON_DONE" = "Done"; + diff --git a/WhatsNew/WhatsNew/uk.lproj/Localizable.strings b/WhatsNew/WhatsNew/uk.lproj/Localizable.strings new file mode 100644 index 000000000..a0194425c --- /dev/null +++ b/WhatsNew/WhatsNew/uk.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* + Localizable.strings + WhatsNew + + Created by  Stepanok Ivan on 18.10.2023. + +*/ + +"TITLE" = "Що нового"; +"BUTTON_PREVIOUS" = "Назад"; +"BUTTON_NEXT" = "Далі"; +"BUTTON_DONE" = "Завершити"; diff --git a/WhatsNew/WhatsNewTests/Presentation/WhatsNewTests.swift b/WhatsNew/WhatsNewTests/Presentation/WhatsNewTests.swift new file mode 100644 index 000000000..4f43a51dd --- /dev/null +++ b/WhatsNew/WhatsNewTests/Presentation/WhatsNewTests.swift @@ -0,0 +1,27 @@ +// +// WhatsNewTests.swift +// WhatsNewTests +// +// Created by  Stepanok Ivan on 18.10.2023. +// + +import XCTest +@testable import WhatsNew + +final class WhatsNewTests: XCTestCase { + + func testGetVersion() throws { + let viewModel = WhatsNewViewModel(storage: WhatsNewStorageMock()) + let version = viewModel.getVersion() + XCTAssertNotNil(version) + XCTAssertTrue(version == "1.0") + } + + func testshouldShowWhatsNew() throws { + let viewModel = WhatsNewViewModel(storage: WhatsNewStorageMock()) + let version = viewModel.getVersion() + + XCTAssertNotNil(version) + XCTAssertTrue(viewModel.shouldShowWhatsNew()) + } +} diff --git a/WhatsNew/WhatsNewTests/WhatsNewMock.generated.swift b/WhatsNew/WhatsNewTests/WhatsNewMock.generated.swift new file mode 100644 index 000000000..f61f1556d --- /dev/null +++ b/WhatsNew/WhatsNewTests/WhatsNewMock.generated.swift @@ -0,0 +1,19 @@ +// Generated using Sourcery 1.8.0 — https://github.com/krzysztofzablocki/Sourcery +// DO NOT EDIT + + +// Generated with SwiftyMocky 4.2.0 +// Required Sourcery: 1.8.0 + + +import SwiftyMocky +import XCTest +import Core +import WhatsNew +import Foundation +import SwiftUI +import Combine + + +// SwiftyMocky: no AutoMockable found. +// Please define and inherit from AutoMockable, or annotate protocols to be mocked diff --git a/WhatsNew/swiftgen.yml b/WhatsNew/swiftgen.yml new file mode 100644 index 000000000..9aa2d1c3b --- /dev/null +++ b/WhatsNew/swiftgen.yml @@ -0,0 +1,18 @@ +strings: + inputs: + - WhatsNew/en.lproj + outputs: + - templateName: structured-swift5 + params: + publicAccess: true + enumName: WhatsNewLocalization + output: WhatsNew/SwiftGen/Strings.swift +#xcassets: +# inputs: +# - WhatsNew/Assets.xcassets +# outputs: +# templateName: swift5 +# params: +# publicAccess: true +# enumName: WhatsNewAssets +# output: WhatsNew/SwiftGen/Assets.swift diff --git a/generateAllMocks.sh b/generateAllMocks.sh index ac1fe0dd6..0c4b5cfc7 100755 --- a/generateAllMocks.sh +++ b/generateAllMocks.sh @@ -12,4 +12,6 @@ cd ../Discovery cd ../Discussion ./../Pods/SwiftyMocky/bin/swiftymocky generate cd ../Profile +./../Pods/SwiftyMocky/bin/swiftymocky generate +cd ../WhatsNew ./../Pods/SwiftyMocky/bin/swiftymocky generate \ No newline at end of file

WAdy>htkIEdiCu+`!kA^iqVJ8E*Eddp^HW@tVmOS9WYLmpPtw*TIzH7 z6ZFtjpxV$rRt8n6Sralh_vL4tgTUU##_xlkTL$CmZ9`(DKE;kB`6WB@hAtf!<=K^u zj{3(OTo-q!O@f>rq{7-43M8$xzHg$F4F{H>L7SgwctBAzXALUN;5bVN0ruFjvE*py z;yAo~@Z;M`*DH4+8~nyQ=`|tsCqV`*3Hr#mTTS4+SE+eyeHQf*k5bW|!5uFL#EAWY zVw{56L-#%96zmLn`>QN-z<~g709CrLr>HhFZsX>gh&xvVu-oC)XIVF5Ic{_{9I=e| z+G$j5wkEVdZ3}D^>=>s_cM(cCu7C3`LP{1V`*f?SD?Uy1-~gH(-1oLFmK#Eh+Dutt1$#VbaKJl$itR!ezB!Ykw_29+)4Q zw#N0uNVqjC1-n(9@vwEdUkUq7r{72Q?P;J1)X_{ zhOxVh^IAQ8dBYUBH+;2guWU|SxfXgh2;gun+grDDlrQ5JCCZ-#9Q;noI-V{FWF~YF zX6xE8d8$4zXBH>N z`8dXumoFGI#dc;tUm>~8V2LffFgiA;|3fSBLMWfF-|x7Oc4b5sNMp$tN6hXvQ)xNB zj#LeVrV`5eqo*!==864W)~7C-7!F)pcHrYEG8YiE1vvl^kFpyZr>4ICut5~LX6cFol(LqdQl z_Q72mlt*tsuqh+@_t#v#A4BK=>s2aL;a~!C^ioT~-^p5PH@HABOEa_(ICjdU4x{z> zny%;E3-1S{ie`k>yb)78=Oau#m-diCBKDw{V!=19(1!|xY#tR$MR_BOe7oE8H`&!g-to(vP!uOK?rVRdSY z4WD(kS=gP5jpufyckV|PRS}h^APfdRdb-RBUNa*~G#)n3u40;t4@G0+U#aM?VP>9a z2K}cg-*T#oo=cFDio>kRa34d$8*@_7oZa7TN92Lsz6KCv)m+8Y|H5Q0FP)o=^7i5y0AzkWW0BTLX`S4yAB$uXgqG z*Y~Qv9ZtBImF&3H29YxZ>JG?U{RURHa&QG@?- z{k=I4m?K~Lli9q$xkAcQi&qm4L;+?-bASF?9ttbv*TSw(x33{)7|X`1{Hv()KD#c8 zoBdk@uc@SWoCh-Zu@*`r=iSfL2a4*46!gY73yXOFEr#vMqhr$PE&=Wf-B#Ux=p*LR zp#+}QgiQ5eBAz*Hp2<*ls3mEAl}I$jYH4$4i8by#jnuR%+Vi}E8|aAM?BooG@BO9t)=a$qnAQl`o*h3ARaPo zvh;D0QK#udX-Bw}_o;FwR=!4`ZpdqParRGnmrum%ibSPAR=~f{ucd0IOIc)Dm+*p; z;4n5LF zytZ1Otn7J5Rh3ZLVE4amYUEg^l)WniVqd=>f-U~7O>YYs;}mS)ng0cC z6KX1FoX?7Ic$h}ibp)L#@qoS@Gpyf1It=i#kljd*fjo}_z>kGo`r4SBuq}snGKn0l!V!=v)e0|VA zman!a|1Z3oBvDzLIP%IzqVtQ&2jfnGkO;MrQk!D42(6K!`k1sVTO@Ic!Tp5K=nD4~G` z4sM9{P$3KK=ja*H$qAAvchxYs_2veyTLuCa8w678?5bHCS^8!|E1Wz;u(71<5))2Bnwc*OFc!*Dq0$WjgbxJcvd_FxzmJa} zBI04F@RydvrZz{<9?#m`pPJmwT3ey6uON<*uMkTSchT9IB4|MW?h-NHy;l8P0+gE!6QVQ$hl)H;sYLLfqBV;ZMx}+RXU?%TIo;F4v8ST?sE6*d5lwVTAPhdY#CC!v|b@`erDT^l3Nnbm28# z7XWQJOyAS;&j`s2c&9o00sK?cnKVn$7;&r&w7osf{xXLP;PCsD_+v{Hakd#uhBW#Q zsrhJ^f$}ZsHw_DEgA9=2j>KUuvEMn_Ej!t&c0-(ga=SR8;+CZj9#=wrGY@23Fxsqj zVq<g|M#lazi-u; zlR_i)Lfx^Qr|C7sPI~I%QY3(#mE+a3xM5sG1C)-#ekYCqCFTpL=U`;r1s|;wKjULx zZ)~Wfzu=30T9lIoyXkDO984ya0t|D9XG6*ic%K&a+?1AmoLPW4^sRMp40x7y+B(Po zgyt+{ciD|Nf%tNs-VNDJ_M<%&qj$W9>@v(^J6(5A(fZdwj(qtR*$d;@PiU^yhCXSo zX%D;w8rZQoIXTOMol?1Bi0oPoWnq(XS3W|IuvZXg{IHu)%EnG10r5$+TrcWCp>EV) zCoTFX_+@vh=WB%v`P#4=g4W58c5!13M_fxQ6*$xWiZc7clb~s0!vc4g*@+F?{a$b0 z;`L`~Ja0nL=W;2icO`X#%*VbAyjLi&Yx0c^xNRZJyq*r+FQMK##pM|xj{crW(`S;Y z7l?hZp&9w1wjnC8S&Ih+Kloy;5#Sk59L(xkAz87KE_qfc4eELD?1b&nU(0vU6BY0i z$3>kOQa7hQ+s&OuTkOYAk)d*dJL1H?h6-M2OgQ~J*oi5+zS^QAv)Ka<6HC>lG=gAu z=4djG85|Ark@=)J6gGJtu}7(1G8JO8^c4Y(mM0t8YHdtyla2MovC8fr&;D(XycFN| z3M3%|ChUzbZXkTMv$o>W@+h4QTANj`4E*PArHAFaw!J49rqV*mv>-$|!WdMe-PI$a zk-*JGP)teq$xtX3_4j9{4JIWS2Kc zU^(pF}42LNwx-?5RYE`X5(dW*Wy=8+VCzl1# zxbJRsU%X%3RPcG>IJB4i!QtOC8|g4-C*G5WCqYH~)!Mm%#3Ad0JCzZCjO9g+I`GOg z1?U^6qo0jw@;M{QO`+JMnlNB7Dw#MRUD7>Toq*>fcS$K$9jMunpE6G|T_qKh8lURL z#zN)XIp!oTOmPFJB4npdsOiMpoukafyefr$b&gLTG4C2Ig6{P8Y!EHCF}z7w1Lj5E z@P7PX^wHhWOy-jS7+4yvsS3Nk>a0k=E2s@#%oFbV$W{B88T!?+@CBQdDfffUKh^nQ zIKwu@7UlAXgFTY6#YSIx3%L}bRla#zJ6+2e>#V8zK@!M)MuKn{XuZ3p^$j!z@>p3* Ksa(PG)&B$7Se~B% literal 0 HcmV?d00001 diff --git a/WhatsNew/WhatsNew/Assets.xcassets/1.0/image2_1.0.imageset/Contents.json b/WhatsNew/WhatsNew/Assets.xcassets/1.0/image2_1.0.imageset/Contents.json new file mode 100644 index 000000000..80d1a4ce5 --- /dev/null +++ b/WhatsNew/WhatsNew/Assets.xcassets/1.0/image2_1.0.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Group 96-2.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/WhatsNew/WhatsNew/Assets.xcassets/1.0/image2_1.0.imageset/Group 96-2.png b/WhatsNew/WhatsNew/Assets.xcassets/1.0/image2_1.0.imageset/Group 96-2.png new file mode 100644 index 0000000000000000000000000000000000000000..36b711417945f7b6457d166efb3b7d453f3b1026 GIT binary patch literal 32412 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