From 52e623d7cf46023698727ba94a992e1c85fcfe51 Mon Sep 17 00:00:00 2001 From: SBiOSoftWhare Date: Mon, 6 Sep 2021 18:10:24 +0200 Subject: [PATCH] Templates: Add input parameters class to TemplateScreenCoordinator. --- .../TemplateScreenCoordinator.swift | 11 ++++---- .../TemplateScreenCoordinatorParameters.swift | 28 +++++++++++++++++++ 2 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 Tools/Templates/buildable/ScreenTemplate/TemplateScreenCoordinatorParameters.swift diff --git a/Tools/Templates/buildable/ScreenTemplate/TemplateScreenCoordinator.swift b/Tools/Templates/buildable/ScreenTemplate/TemplateScreenCoordinator.swift index 276fff2a8..4e9af01b3 100644 --- a/Tools/Templates/buildable/ScreenTemplate/TemplateScreenCoordinator.swift +++ b/Tools/Templates/buildable/ScreenTemplate/TemplateScreenCoordinator.swift @@ -23,7 +23,7 @@ final class TemplateScreenCoordinator: TemplateScreenCoordinatorType { // MARK: Private - private let session: MXSession + private let parameters: TemplateScreenCoordinatorParameters private var templateScreenViewModel: TemplateScreenViewModelType private let templateScreenViewController: TemplateScreenViewController @@ -36,16 +36,15 @@ final class TemplateScreenCoordinator: TemplateScreenCoordinatorType { // MARK: - Setup - init(session: MXSession) { - self.session = session - - let templateScreenViewModel = TemplateScreenViewModel(session: self.session) + init(parameters: TemplateScreenCoordinatorParameters) { + self.parameters = parameters + let templateScreenViewModel = TemplateScreenViewModel(session: self.parameters.session) let templateScreenViewController = TemplateScreenViewController.instantiate(with: templateScreenViewModel) self.templateScreenViewModel = templateScreenViewModel self.templateScreenViewController = templateScreenViewController } - // MARK: - Public methods + // MARK: - Public func start() { self.templateScreenViewModel.coordinatorDelegate = self diff --git a/Tools/Templates/buildable/ScreenTemplate/TemplateScreenCoordinatorParameters.swift b/Tools/Templates/buildable/ScreenTemplate/TemplateScreenCoordinatorParameters.swift new file mode 100644 index 000000000..69f3d75ac --- /dev/null +++ b/Tools/Templates/buildable/ScreenTemplate/TemplateScreenCoordinatorParameters.swift @@ -0,0 +1,28 @@ +/* + Copyright 2021 New Vector Ltd + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +import Foundation + +/// TemplateScreenCoordinator input parameters +class TemplateScreenCoordinatorParameters { + + /// The Matrix session + let session: MXSession + + init(session: MXSession) { + self.session = session + } +}