Browse Source

added main module

pull/1/head
gme_2 6 years ago
parent
commit
f9357c4948
  1. 112
      GMERemittance.xcodeproj/project.pbxproj
  2. BIN
      GMERemittance/Module/.DS_Store
  3. 27
      GMERemittance/Module/Main/Application Logic/Interactor/MainInteractor.swift
  4. 15
      GMERemittance/Module/Main/Application Logic/Interactor/MainInteractorIO.swift
  5. 18
      GMERemittance/Module/Main/Application Logic/Service/MainService.swift
  6. 13
      GMERemittance/Module/Main/Application Logic/Service/MainServiceType.swift
  7. 10
      GMERemittance/Module/Main/Module Interface/MainModuleInterface.swift
  8. 28
      GMERemittance/Module/Main/User Interface/Presenter/MainPresenter.swift
  9. 62
      GMERemittance/Module/Main/User Interface/View/MainViewController.swift
  10. 11
      GMERemittance/Module/Main/User Interface/View/MainViewInterface.swift
  11. 140
      GMERemittance/Module/Main/User Interface/Wireframe/MainWireframe.swift
  12. 14
      GMERemittance/Module/Main/User Interface/Wireframe/MainWireframeInput.swift

112
GMERemittance.xcodeproj/project.pbxproj

@ -300,6 +300,16 @@
D922D9B021351B7400D43053 /* SendMoneyVerification.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D922D9A521351B7400D43053 /* SendMoneyVerification.storyboard */; };
D922D9B121351B7400D43053 /* SendMoneyVerificationViewInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D922D9A621351B7400D43053 /* SendMoneyVerificationViewInterface.swift */; };
D922D9B221351B7400D43053 /* SendMoneyVerificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D922D9A721351B7400D43053 /* SendMoneyVerificationViewController.swift */; };
D92B80252140C3CB00A25B26 /* MainModuleInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92B80142140C3CB00A25B26 /* MainModuleInterface.swift */; };
D92B80262140C3CB00A25B26 /* MainService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92B80172140C3CB00A25B26 /* MainService.swift */; };
D92B80272140C3CB00A25B26 /* MainServiceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92B80182140C3CB00A25B26 /* MainServiceType.swift */; };
D92B80282140C3CB00A25B26 /* MainInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92B801A2140C3CB00A25B26 /* MainInteractor.swift */; };
D92B80292140C3CB00A25B26 /* MainInteractorIO.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92B801B2140C3CB00A25B26 /* MainInteractorIO.swift */; };
D92B802A2140C3CB00A25B26 /* MainPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92B801E2140C3CB00A25B26 /* MainPresenter.swift */; };
D92B802B2140C3CB00A25B26 /* MainWireframeInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92B80202140C3CB00A25B26 /* MainWireframeInput.swift */; };
D92B802C2140C3CB00A25B26 /* MainWireframe.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92B80212140C3CB00A25B26 /* MainWireframe.swift */; };
D92B802D2140C3CB00A25B26 /* MainViewInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92B80232140C3CB00A25B26 /* MainViewInterface.swift */; };
D92B802E2140C3CB00A25B26 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92B80242140C3CB00A25B26 /* MainViewController.swift */; };
D945F11D213E1D5100A24824 /* SendMoneyReceiptModuleInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D945F10A213E1D5100A24824 /* SendMoneyReceiptModuleInterface.swift */; };
D945F11E213E1D5100A24824 /* SendMoneyReceiptService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D945F10D213E1D5100A24824 /* SendMoneyReceiptService.swift */; };
D945F11F213E1D5100A24824 /* SendMoneyReceiptServiceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D945F10E213E1D5100A24824 /* SendMoneyReceiptServiceType.swift */; };
@ -704,6 +714,16 @@
D922D9A521351B7400D43053 /* SendMoneyVerification.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = SendMoneyVerification.storyboard; sourceTree = "<group>"; };
D922D9A621351B7400D43053 /* SendMoneyVerificationViewInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SendMoneyVerificationViewInterface.swift; sourceTree = "<group>"; };
D922D9A721351B7400D43053 /* SendMoneyVerificationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SendMoneyVerificationViewController.swift; sourceTree = "<group>"; };
D92B80142140C3CB00A25B26 /* MainModuleInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainModuleInterface.swift; sourceTree = "<group>"; };
D92B80172140C3CB00A25B26 /* MainService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainService.swift; sourceTree = "<group>"; };
D92B80182140C3CB00A25B26 /* MainServiceType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainServiceType.swift; sourceTree = "<group>"; };
D92B801A2140C3CB00A25B26 /* MainInteractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainInteractor.swift; sourceTree = "<group>"; };
D92B801B2140C3CB00A25B26 /* MainInteractorIO.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainInteractorIO.swift; sourceTree = "<group>"; };
D92B801E2140C3CB00A25B26 /* MainPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainPresenter.swift; sourceTree = "<group>"; };
D92B80202140C3CB00A25B26 /* MainWireframeInput.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainWireframeInput.swift; sourceTree = "<group>"; };
D92B80212140C3CB00A25B26 /* MainWireframe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainWireframe.swift; sourceTree = "<group>"; };
D92B80232140C3CB00A25B26 /* MainViewInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainViewInterface.swift; sourceTree = "<group>"; };
D92B80242140C3CB00A25B26 /* MainViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = "<group>"; };
D945F10A213E1D5100A24824 /* SendMoneyReceiptModuleInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SendMoneyReceiptModuleInterface.swift; sourceTree = "<group>"; };
D945F10D213E1D5100A24824 /* SendMoneyReceiptService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SendMoneyReceiptService.swift; sourceTree = "<group>"; };
D945F10E213E1D5100A24824 /* SendMoneyReceiptServiceType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SendMoneyReceiptServiceType.swift; sourceTree = "<group>"; };
@ -1307,6 +1327,7 @@
D907AB96212AA8A300915A87 /* Module */ = {
isa = PBXGroup;
children = (
D92B80122140C3CB00A25B26 /* Main */,
D945F108213E1D5100A24824 /* SendMoneyReceipt */,
D922D99321351B7400D43053 /* SendMoneyVerification */,
D922D96F21351AAE00D43053 /* SendMoneyExchangeRate */,
@ -1894,6 +1915,87 @@
path = ViewModels;
sourceTree = "<group>";
};
D92B80122140C3CB00A25B26 /* Main */ = {
isa = PBXGroup;
children = (
D92B80132140C3CB00A25B26 /* Module Interface */,
D92B80152140C3CB00A25B26 /* Application Logic */,
D92B801C2140C3CB00A25B26 /* User Interface */,
);
path = Main;
sourceTree = "<group>";
};
D92B80132140C3CB00A25B26 /* Module Interface */ = {
isa = PBXGroup;
children = (
D92B80142140C3CB00A25B26 /* MainModuleInterface.swift */,
);
path = "Module Interface";
sourceTree = "<group>";
};
D92B80152140C3CB00A25B26 /* Application Logic */ = {
isa = PBXGroup;
children = (
D92B80162140C3CB00A25B26 /* Service */,
D92B80192140C3CB00A25B26 /* Interactor */,
);
path = "Application Logic";
sourceTree = "<group>";
};
D92B80162140C3CB00A25B26 /* Service */ = {
isa = PBXGroup;
children = (
D92B80172140C3CB00A25B26 /* MainService.swift */,
D92B80182140C3CB00A25B26 /* MainServiceType.swift */,
);
path = Service;
sourceTree = "<group>";
};
D92B80192140C3CB00A25B26 /* Interactor */ = {
isa = PBXGroup;
children = (
D92B801A2140C3CB00A25B26 /* MainInteractor.swift */,
D92B801B2140C3CB00A25B26 /* MainInteractorIO.swift */,
);
path = Interactor;
sourceTree = "<group>";
};
D92B801C2140C3CB00A25B26 /* User Interface */ = {
isa = PBXGroup;
children = (
D92B801D2140C3CB00A25B26 /* Presenter */,
D92B801F2140C3CB00A25B26 /* Wireframe */,
D92B80222140C3CB00A25B26 /* View */,
);
path = "User Interface";
sourceTree = "<group>";
};
D92B801D2140C3CB00A25B26 /* Presenter */ = {
isa = PBXGroup;
children = (
D92B801E2140C3CB00A25B26 /* MainPresenter.swift */,
);
path = Presenter;
sourceTree = "<group>";
};
D92B801F2140C3CB00A25B26 /* Wireframe */ = {
isa = PBXGroup;
children = (
D92B80202140C3CB00A25B26 /* MainWireframeInput.swift */,
D92B80212140C3CB00A25B26 /* MainWireframe.swift */,
);
path = Wireframe;
sourceTree = "<group>";
};
D92B80222140C3CB00A25B26 /* View */ = {
isa = PBXGroup;
children = (
D92B80232140C3CB00A25B26 /* MainViewInterface.swift */,
D92B80242140C3CB00A25B26 /* MainViewController.swift */,
);
path = View;
sourceTree = "<group>";
};
D945F108213E1D5100A24824 /* SendMoneyReceipt */ = {
isa = PBXGroup;
children = (
@ -2749,6 +2851,7 @@
D962231B212BE4CA00B7A115 /* TablePickerWithImageTableViewCell.swift in Sources */,
D945F125213E1D5100A24824 /* SendMoneyReceiptViewInterface.swift in Sources */,
04BEF55E205948E8007713F9 /* RewardViewModel.swift in Sources */,
D92B80262140C3CB00A25B26 /* MainService.swift in Sources */,
0428DC682048FF91008355D7 /* WalletTransactionTableViewCell.swift in Sources */,
9F23DF512074A02B0025D6DF /* MyCollectionViewCell.swift in Sources */,
A28D38F0202D49C90012EF6A /* TransactionSearchViewController.swift in Sources */,
@ -2831,6 +2934,7 @@
D95B7043213F9A2C0053CC3D /* CALayerExtension.swift in Sources */,
A25CF60920467BA40029BC12 /* InviteViewController.swift in Sources */,
D922D9AD21351B7400D43053 /* SendMoneyVerificationPresenter.swift in Sources */,
D92B802D2140C3CB00A25B26 /* MainViewInterface.swift in Sources */,
A25A6C092029ADA80024CDFB /* TranscationStatementViewController.swift in Sources */,
D962231E212C126500B7A115 /* ExchangeModel.swift in Sources */,
A2637C5820395B8F006EA9AA /* NotificationTableViewCell.swift in Sources */,
@ -2854,6 +2958,7 @@
D922D9452135124200D43053 /* SendMoneyPaymentModePresenter.swift in Sources */,
9F3CFC582028272B0034F588 /* TrackRecipientViewModel.swift in Sources */,
D922D9662135145F00D43053 /* SendMoneyParentInteractorIO.swift in Sources */,
D92B802B2140C3CB00A25B26 /* MainWireframeInput.swift in Sources */,
9FA00FBE1FEE69AF0049753E /* UIViewExtension.swift in Sources */,
04C6F2422025CE0F0055B083 /* WalletViewController.swift in Sources */,
D9B7ADF12130048E009B0564 /* ExchangeRatesService.swift in Sources */,
@ -2873,6 +2978,7 @@
D922D98521351AAE00D43053 /* SendMoneyExchangeRateServiceType.swift in Sources */,
D922D91E2134DCF000D43053 /* EditReciepientService.swift in Sources */,
9F1F7A5C1FF2146000A4DD82 /* ReviewViewController.swift in Sources */,
D92B802C2140C3CB00A25B26 /* MainWireframe.swift in Sources */,
D922D9222134DCF000D43053 /* EditReciepientWireframeInput.swift in Sources */,
D9768C88213BAE92009E01BC /* User.swift in Sources */,
0430986E2029FBA300821C70 /* TextFieldExtension.swift in Sources */,
@ -2889,6 +2995,7 @@
04BEF55A20593CFB007713F9 /* RewardViewController.swift in Sources */,
A2661F32201EEC1C00ECBF94 /* ProfileViewModel.swift in Sources */,
9FD1EE6A1FF0F48F00AC79FC /* PaymentMethodViewController.swift in Sources */,
D92B80252140C3CB00A25B26 /* MainModuleInterface.swift in Sources */,
A255A907206A14220002905D /* SSBadgeButton.swift in Sources */,
D922D9232134DCF000D43053 /* EditReciepientWireframe.swift in Sources */,
D945F121213E1D5100A24824 /* SendMoneyReceiptInteractorIO.swift in Sources */,
@ -2912,6 +3019,7 @@
A2266A5D2028451700E890A6 /* AgentViewModel.swift in Sources */,
D922D9652135145F00D43053 /* SendMoneyParentInteractor.swift in Sources */,
04BED13A2015BC6300B4CEB7 /* CDDenum.swift in Sources */,
D92B80292140C3CB00A25B26 /* MainInteractorIO.swift in Sources */,
0496B84F1FE7DFCD0044810E /* StringExtension.swift in Sources */,
D9B7ADF52130048E009B0564 /* ExchangeRatesPresenter.swift in Sources */,
A2E3379720483C84002DB015 /* InviteViewModel.swift in Sources */,
@ -2985,6 +3093,7 @@
04CD5395208F0765008F0971 /* UploadImageViewModel.swift in Sources */,
D922D9AF21351B7400D43053 /* SendMoneyVerificationWireframeInput.swift in Sources */,
A2CB8E592027002E00008EEE /* ExchangeRateViewModel.swift in Sources */,
D92B80282140C3CB00A25B26 /* MainInteractor.swift in Sources */,
A2B9D7592020C616007C1049 /* MyStoryViewController.swift in Sources */,
D96848CC212D3F2300EF12B1 /* ExchangeRateApiService.swift in Sources */,
A2B0DD8E2085AC690074A5BA /* PaymentMethodId.swift in Sources */,
@ -2998,11 +3107,13 @@
D945F122213E1D5100A24824 /* SendMoneyReceiptPresenter.swift in Sources */,
04BEF55C20593F0C007713F9 /* RewardCollectionViewCell.swift in Sources */,
9F983C0A20245483001DCB3F /* SplashScreenViewController.swift in Sources */,
D92B802A2140C3CB00A25B26 /* MainPresenter.swift in Sources */,
D922D91D2134DCF000D43053 /* EditReciepientServiceType.swift in Sources */,
D90D55D121327CD600EEEE04 /* AddReciepientWireframe.swift in Sources */,
D957DC6C213D05E700FA812D /* SendMoneySubmitResponse.swift in Sources */,
D90D55CB21327CD600EEEE04 /* AddReciepientModuleInterface.swift in Sources */,
9F04F1D92088BE160011C0BA /* CurrenciesData.swift in Sources */,
D92B80272140C3CB00A25B26 /* MainServiceType.swift in Sources */,
D95B5E4B21315C57000C0B33 /* EmptyTableViewCell.swift in Sources */,
04CAEC2D1FEBAEB400C819D4 /* KYCViewModel.swift in Sources */,
9F03D22E1FECFC52002E132E /* RecipientTranscationViewController.swift in Sources */,
@ -3018,6 +3129,7 @@
A2637C5A20395BA7006EA9AA /* NotificationViewController.swift in Sources */,
048031B4209464400002B1A1 /* WalletLoadMoreTableViewCell.swift in Sources */,
9F40C3521FEAB0F4000CB53C /* KYCDocumentsUploadViewController.swift in Sources */,
D92B802E2140C3CB00A25B26 /* MainViewController.swift in Sources */,
D9CB49872132A5F500B7A124 /* ItemsPickerViewController.swift in Sources */,
D922D9422135124200D43053 /* SendMoneyPaymentModeServiceType.swift in Sources */,
9F2B5AF020218751002284F6 /* ProfileDocumentViewController.swift in Sources */,

BIN
GMERemittance/Module/.DS_Store

27
GMERemittance/Module/Main/Application Logic/Interactor/MainInteractor.swift

@ -0,0 +1,27 @@
//
// MainInteractor.swift
// Sipradi
//
// Created by bibek timalsina on 5/26/17.
// Copyright © 2017 Ekbana. All rights reserved.
//
import Foundation
class MainInteractor: MainInteractorInput {
// MARK: Properties
weak var output: MainInteractorOutput?
private let service: MainServiceType
// MARK: Initialization
init(service: MainServiceType) {
self.service = service
}
// MARK: Main interactor input interface
// MARK: Converting entities
}

15
GMERemittance/Module/Main/Application Logic/Interactor/MainInteractorIO.swift

@ -0,0 +1,15 @@
//
// MainInteractorIO.swift
// Sipradi
//
// Created by bibek timalsina on 5/26/17.
// Copyright © 2017 Ekbana. All rights reserved.
//
protocol MainInteractorInput: class {
}
protocol MainInteractorOutput: class {
}

18
GMERemittance/Module/Main/Application Logic/Service/MainService.swift

@ -0,0 +1,18 @@
//
// MainService.swift
// Sipradi
//
// Created by bibek timalsina on 5/26/17.
// Copyright © 2017 Ekbana. All rights reserved.
//
import Foundation
class MainService: MainServiceType {
// MARK: Properties
// MARK: Initialization
// MARK: Data management
}

13
GMERemittance/Module/Main/Application Logic/Service/MainServiceType.swift

@ -0,0 +1,13 @@
//
// MainServiceType.swift
// Sipradi
//
// Created by bibek timalsina on 5/26/17.
// Copyright © 2017 Ekbana. All rights reserved.
//
import Foundation
protocol MainServiceType: class {
}

10
GMERemittance/Module/Main/Module Interface/MainModuleInterface.swift

@ -0,0 +1,10 @@
//
// MainModuleInterface.swift
// Sipradi
//
// Created by bibek timalsina on 5/26/17.
// Copyright © 2017 Ekbana. All rights reserved.
//
protocol MainModuleInterface: class {
}

28
GMERemittance/Module/Main/User Interface/Presenter/MainPresenter.swift

@ -0,0 +1,28 @@
//
// MainPresenter.swift
// Sipradi
//
// Created by bibek timalsina on 5/26/17.
// Copyright © 2017 Ekbana. All rights reserved.
//
import Foundation
class MainPresenter: MainInteractorOutput {
// MARK: Properties
weak var view: MainViewInterface?
var interactor: MainInteractorInput?
var wireframe: MainWireframeInput?
// MARK: Main module interface
// MARK: Main interactor output interface
// MARK: Converting entities
}
extension MainPresenter: MainModuleInterface {
}

62
GMERemittance/Module/Main/User Interface/View/MainViewController.swift

@ -0,0 +1,62 @@
//
// MainViewController.swift
// Sipradi
//
// Created by bibek timalsina on 5/26/17.
// Copyright © 2017 Ekbana. All rights reserved.
//
import Foundation
import UIKit
class MainViewController: UITabBarController {
// MARK: Properties
// MARK: ENUMS:
private enum Items: Int {
case home = 0
case vehicle
case nearby
case profile
case more
}
var presenter: MainModuleInterface?
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
self.setupAppearance()
}
func setup(viewControllers: [UIViewController]) {
self.viewControllers = viewControllers
self.setupTab()
setupTabItem()
}
// MARK: Other functions
func setupAppearance() {
UINavigationBar.setInsideAppearance()
}
private func setupTab() {
self.tabBar.barTintColor = Colors.TabBar.barTint
self.tabBar.isTranslucent = false
self.tabBar.shadowImage = Colors.TabBar.shadow.image()
self.tabBar.backgroundImage = UIImage()
}
override func setupTabItem() {
self.viewControllers?.forEach({ (viewController) in
viewController.tabBarItem.imageInsets = UIEdgeInsets(top: 7, left: 0, bottom: -7, right: 0)
})
}
}
extension MainViewController: MainViewInterface {
}

11
GMERemittance/Module/Main/User Interface/View/MainViewInterface.swift

@ -0,0 +1,11 @@
//
// MainViewInterface.swift
// Sipradi
//
// Created by bibek timalsina on 5/26/17.
// Copyright © 2017 Ekbana. All rights reserved.
//
protocol MainViewInterface: class {
}

140
GMERemittance/Module/Main/User Interface/Wireframe/MainWireframe.swift

@ -0,0 +1,140 @@
//
// MainWireframe.swift
// Sipradi
//
// Created by bibek timalsina on 5/26/17.
// Copyright © 2017 Ekbana. All rights reserved.
//
import Foundation
import UIKit
class MainWireframe {
private static var _userShared: MainWireframe?
private static var _salesShared: MainWireframe? = MainWireframe(false)
static var userShared: MainWireframe {
if _userShared == nil {
_userShared = MainWireframe()
}
return _userShared!
}
static var salesShared: MainWireframe {
if _salesShared == nil {
_salesShared = MainWireframe(false)
}
return _salesShared!
}
init(_ isUser: Bool = true) {
self.isUserWireframe = isUser
}
weak var view: UIViewController!
private var isUserWireframe: Bool
// MARK: Wireframes for user views
private lazy var homeWireFrame: HomeWireframeInput = {HomeWireframe()}()
private lazy var moreWireFrame: MoreWireFrameInput = {MoreWireframe()}()
private lazy var categoriesWireframe: CategoriesWireframeInput = {CategoriesWireframe()}()
private lazy var favoriteWireframe: FavouritesWireframeInput = {FavouritesWireframe()}()
private lazy var quickOrderWireframe: QuickOrderWireframeInput = {QuickOrderWireframe()}()
// MARK: Wireframes for sales
private lazy var salesDashboardWireframe: SalesDashboardWireframeInput = {SalesDashboardWireframe()}()
private lazy var storeListWireframe: StoreListWireframeInput = {StoreListWireframe()}()
private lazy var salesMoreWireframe: SalesMoreWireFrameInput = {SalesMoreWireframe()}()
}
extension MainWireframe: MainWireframeInput {
var storyboardName: String {return "Main"}
func getMainView() -> UIViewController {
let viewController = MainViewController()
let viewControllers: [UIViewController] = self.isUserWireframe ? self.getUser() : self.getSales()
viewController.setup(viewControllers: viewControllers)
viewController.setupTabItem()
self.view = viewController
self.show(index: 0) // temporary
return viewController
}
private func getUser() -> [UIViewController] {
// home view controller
let homeViewController = self.homeWireFrame.getMainView()
let navHomeViewController = UINavigationController(rootViewController: homeViewController)
// user more view controller
let moreViewController = moreWireFrame.getMainView()
let navMoreViewController = UINavigationController(rootViewController: moreViewController)
// categories view controller
let categoriesViewController = categoriesWireframe.getMainView()
let navCategoriesViewController = UINavigationController(rootViewController: categoriesViewController)
// favorite view controller
let favoritesViewController = favoriteWireframe.getMainView()
let navFavoriteViewController = UINavigationController(rootViewController: favoritesViewController)
let quickOrderViewController = quickOrderWireframe.getMainView()
let navQuickOrderViewController = UINavigationController(rootViewController: quickOrderViewController)
return [navHomeViewController, navCategoriesViewController, navFavoriteViewController, navQuickOrderViewController, navMoreViewController]
}
private func getSales() -> [UIViewController] {
// sales dashboard
let salesDashboardViewController = salesDashboardWireframe.getMainView()
let navSalesDashboardViewController = UINavigationController(rootViewController: salesDashboardViewController)
// store list
let storeListViewController = storeListWireframe.getMainView()
let navSalesListViewController = UINavigationController(rootViewController: storeListViewController)
// store more
let salesMoreViewController = salesMoreWireframe.getMainView()
let navSalesMoreViewController = UINavigationController(rootViewController: salesMoreViewController)
return [navSalesDashboardViewController, navSalesListViewController, navSalesMoreViewController]
}
func show(index: Int) {
if let view = self.view as? MainViewController {
view.selectedIndex = index
}
}
func replaceLoginToProfile() {
// let profileView = self.profileWireframe.getMainView()
//
// let nav = UINavigationController(rootViewController: profileView)
// if let view = self.view as? MainViewController {
// view.viewControllers?.remove(at: 3)
// view.viewControllers?.insert(nav, at: 3)
// }
//
// self.show(index: 3)
}
func showStoreListing () {
if !self.isUserWireframe {
self.show(index: 1)
self.storeListWireframe.changeOrderType(alphabetic: false)
}
}
static func logout() {
guard let window = (MainWireframe._salesShared?.window ?? MainWireframe._userShared?.window) else {return}
MainWireframe._salesShared = nil
MainWireframe._userShared = nil
LoginWireframe().openMainViewAsNavigationControllerIn(window: window)
}
}

14
GMERemittance/Module/Main/User Interface/Wireframe/MainWireframeInput.swift

@ -0,0 +1,14 @@
//
// MainWireframeInput.swift
// Sipradi
//
// Created by bibek timalsina on 5/26/17.
// Copyright © 2017 Ekbana. All rights reserved.
//
import Foundation
protocol MainWireframeInput: WireframeInput {
func show(index: Int)
func showStoreListing()
}
Loading…
Cancel
Save