Merge branch 'feature/collor_assets' of https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui into feature/collor_assets
This commit is contained in:
commit
17a2256af9
@ -392,8 +392,23 @@ public typealias ActionBlockConfirmation = () -> (Bool)
|
|||||||
accessibilityLabel = accessibileString
|
accessibilityLabel = accessibileString
|
||||||
}
|
}
|
||||||
|
|
||||||
if let actionMap = model.action?.toJSON() {
|
let actionMap = model.action?.toJSON()
|
||||||
didToggleAction = { MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalData, delegateObject: delegateObject) }
|
let alternateActionMap = model.alternateAction?.toJSON()
|
||||||
|
if actionMap != nil || alternateActionMap != nil {
|
||||||
|
didToggleAction = { [weak self] in
|
||||||
|
guard let self = self else { return }
|
||||||
|
if self.isOn {
|
||||||
|
if actionMap != nil {
|
||||||
|
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalData, delegateObject: delegateObject)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if alternateActionMap != nil {
|
||||||
|
MVMCoreActionHandler.shared()?.handleAction(with: alternateActionMap, additionalData: additionalData, delegateObject: delegateObject)
|
||||||
|
} else if actionMap != nil {
|
||||||
|
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalData, delegateObject: delegateObject)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,6 +9,9 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
@objc public protocol TabBarProtocol {
|
@objc public protocol TabBarProtocol {
|
||||||
|
|
||||||
|
var delegateObject: MVMCoreUIDelegateObject? { get set }
|
||||||
|
|
||||||
/// Should visually select the given tab index.
|
/// Should visually select the given tab index.
|
||||||
@objc func highlightTab(at index: Int)
|
@objc func highlightTab(at index: Int)
|
||||||
|
|
||||||
|
|||||||
@ -11,16 +11,23 @@ import Foundation
|
|||||||
public protocol TemplateProtocol: AnyObject {
|
public protocol TemplateProtocol: AnyObject {
|
||||||
associatedtype TemplateModel: TemplateModelProtocol
|
associatedtype TemplateModel: TemplateModelProtocol
|
||||||
var templateModel: TemplateModel? { get set }
|
var templateModel: TemplateModel? { get set }
|
||||||
|
|
||||||
|
func decodeTemplate(using decoder: JSONDecoder, from data: Data) throws -> TemplateModel
|
||||||
}
|
}
|
||||||
|
|
||||||
public extension TemplateProtocol where Self: ViewController {
|
public extension TemplateProtocol where Self: ViewController {
|
||||||
|
|
||||||
func parseTemplate(json: [AnyHashable: Any]?) throws {
|
func parseTemplate(json: [AnyHashable: Any]?) throws {
|
||||||
guard let pageJSON = json else { return }
|
guard let pageJSON = json else { return }
|
||||||
let data = try JSONSerialization.data(withJSONObject: pageJSON)
|
let data = try JSONSerialization.data(withJSONObject: pageJSON)
|
||||||
let decoder = JSONDecoder()
|
let decoder = JSONDecoder()
|
||||||
try decoder.add(delegateObject: delegateObjectIVar)
|
try decoder.add(delegateObject: delegateObjectIVar)
|
||||||
let templateModel = try decoder.decode(TemplateModel.self, from: data)
|
self.templateModel = try decodeTemplate(using: decoder, from: data)
|
||||||
self.templateModel = templateModel
|
|
||||||
self.pageModel = templateModel as? MVMControllerModelProtocol
|
self.pageModel = templateModel as? MVMControllerModelProtocol
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func decodeTemplate(using decoder: JSONDecoder, from data: Data) throws -> TemplateModel {
|
||||||
|
return try decoder.decode(TemplateModel.self, from: data)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,12 +8,12 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
@objcMembers public class ListPageTemplateModel: ThreeLayerModelBase {
|
@objcMembers open class ListPageTemplateModel: ThreeLayerModelBase {
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|
||||||
public override class var identifier: String {
|
open override class var identifier: String {
|
||||||
return "list"
|
return "list"
|
||||||
}
|
}
|
||||||
public var molecules: [ListItemModelProtocol & MoleculeModelProtocol]?
|
public var molecules: [ListItemModelProtocol & MoleculeModelProtocol]?
|
||||||
@ -49,7 +49,7 @@ import Foundation
|
|||||||
try super.init(from: decoder)
|
try super.init(from: decoder)
|
||||||
}
|
}
|
||||||
|
|
||||||
public override func encode(to encoder: Encoder) throws {
|
open override func encode(to encoder: Encoder) throws {
|
||||||
try super.encode(to: encoder)
|
try super.encode(to: encoder)
|
||||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||||
try container.encodeModelsIfPresent(molecules, forKey: .molecules)
|
try container.encodeModelsIfPresent(molecules, forKey: .molecules)
|
||||||
|
|||||||
@ -28,6 +28,11 @@ open class MoleculeListTemplate: ThreeLayerTableViewController, TemplateProtocol
|
|||||||
try super.parsePageJSON()
|
try super.parsePageJSON()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For subclassing the model.
|
||||||
|
open func decodeTemplate(using decoder: JSONDecoder, from data: Data) throws -> ListPageTemplateModel {
|
||||||
|
return try decoder.decode(ListPageTemplateModel.self, from: data)
|
||||||
|
}
|
||||||
|
|
||||||
open override var loadObject: MVMCoreLoadObject? {
|
open override var loadObject: MVMCoreLoadObject? {
|
||||||
didSet {
|
didSet {
|
||||||
guard loadObject != oldValue else { return }
|
guard loadObject != oldValue else { return }
|
||||||
|
|||||||
@ -9,7 +9,8 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
|
|
||||||
@objcMembers public class TemplateModel: MVMControllerModelProtocol, TabPageModelProtocol {
|
@objcMembers open class TemplateModel: MVMControllerModelProtocol, TabPageModelProtocol {
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
@objcMembers public class ThreeLayerModelBase: TemplateModel, ThreeLayerTemplateModelProtocol {
|
@objcMembers open class ThreeLayerModelBase: TemplateModel, ThreeLayerTemplateModelProtocol {
|
||||||
public var anchorHeader: Bool = false
|
public var anchorHeader: Bool = false
|
||||||
public var header: MoleculeModelProtocol?
|
public var header: MoleculeModelProtocol?
|
||||||
public var anchorFooter: Bool = false
|
public var anchorFooter: Bool = false
|
||||||
|
|||||||
@ -94,9 +94,10 @@ import UIKit
|
|||||||
try parsePageJSON()
|
try parsePageJSON()
|
||||||
MVMCoreDispatchUtility.performBlock(onMainThread: {
|
MVMCoreDispatchUtility.performBlock(onMainThread: {
|
||||||
self.handleNewDataAndUpdateUI()
|
self.handleNewDataAndUpdateUI()
|
||||||
// If the screen is showing, can update the navigation controller.
|
|
||||||
if MVMCoreUIUtility.getCurrentVisibleController() == self.manager ?? self {
|
// Update navigation bar if showing.
|
||||||
self.setNavigationController()
|
if MVMCoreUIUtility.getCurrentVisibleController() == self {
|
||||||
|
self.setNavigationBar()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} catch {
|
} catch {
|
||||||
@ -196,12 +197,6 @@ import UIKit
|
|||||||
|
|
||||||
/// Processes any new data. Called after the page is loaded the first time and on response updates for this page,
|
/// Processes any new data. Called after the page is loaded the first time and on response updates for this page,
|
||||||
open func handleNewData() {
|
open func handleNewData() {
|
||||||
// TODO: remove legacy. Temporary, convert legacy to navigation model.
|
|
||||||
if pageModel?.navigationBar == nil {
|
|
||||||
let navigationItem = createDefaultLegacyNavigationModel()
|
|
||||||
pageModel?.navigationBar = navigationItem
|
|
||||||
}
|
|
||||||
|
|
||||||
if formValidator == nil {
|
if formValidator == nil {
|
||||||
let rules = pageModel?.formRules
|
let rules = pageModel?.formRules
|
||||||
formValidator = FormValidator(rules)
|
formValidator = FormValidator(rules)
|
||||||
@ -210,20 +205,43 @@ import UIKit
|
|||||||
if let backgroundColor = pageModel?.backgroundColor {
|
if let backgroundColor = pageModel?.backgroundColor {
|
||||||
view.backgroundColor = backgroundColor.uiColor
|
view.backgroundColor = backgroundColor.uiColor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sets up the navigation item based on the data.
|
||||||
|
setNavigationItem()
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Navigation Item (Move to model base)
|
// MARK: - Navigation Item (Move to model base)
|
||||||
open func setNavigationController() {
|
|
||||||
|
open func getNavigationModel() -> NavigationItemModelProtocol? {
|
||||||
|
// TODO: remove legacy. Temporary, convert legacy to navigation model.
|
||||||
|
if pageModel?.navigationBar == nil {
|
||||||
|
let navigationItem = createDefaultLegacyNavigationModel()
|
||||||
|
pageModel?.navigationBar = navigationItem
|
||||||
|
}
|
||||||
|
return pageModel?.navigationBar
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Sets the navigation item for this view controller.
|
||||||
|
open func setNavigationItem() {
|
||||||
|
guard let navigationItemModel = getNavigationModel(),
|
||||||
|
let navigationController = navigationController else { return }
|
||||||
|
|
||||||
|
// We additionally want our left items
|
||||||
|
navigationItem.leftItemsSupplementBackButton = true
|
||||||
|
|
||||||
|
// Utilize helper function to set the navigation item state.
|
||||||
|
NavigationController.setNavigationItem(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: self)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Sets the appearance of the navigation bar based on the model.
|
||||||
|
open func setNavigationBar() {
|
||||||
let viewController = manager ?? self
|
let viewController = manager ?? self
|
||||||
guard let navigationItemModel = pageModel?.navigationBar,
|
guard let navigationItemModel = getNavigationModel(),
|
||||||
let navigationController = viewController.navigationController else {
|
let navigationController = viewController.navigationController else {
|
||||||
MVMCoreUISession.sharedGlobal()?.splitViewController?.parent?.setNeedsStatusBarAppearanceUpdate()
|
MVMCoreUISession.sharedGlobal()?.splitViewController?.parent?.setNeedsStatusBarAppearanceUpdate()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// We additionally want our left items
|
|
||||||
navigationItem.leftItemsSupplementBackButton = true
|
|
||||||
|
|
||||||
// Utilize helper function to set the split view and navigation item state.
|
// Utilize helper function to set the split view and navigation item state.
|
||||||
MVMCoreUISplitViewController.setSplitViewController(for: viewController, navigationController: navigationController, navigationItemModel: navigationItemModel, leftPanelAccessible: isMasterInitiallyAccessible(), rightPanelAccessible: isSupportInitiallyAccessible(), progress: bottomProgress() ?? 0)
|
MVMCoreUISplitViewController.setSplitViewController(for: viewController, navigationController: navigationController, navigationItemModel: navigationItemModel, leftPanelAccessible: isMasterInitiallyAccessible(), rightPanelAccessible: isSupportInitiallyAccessible(), progress: bottomProgress() ?? 0)
|
||||||
}
|
}
|
||||||
@ -277,6 +295,7 @@ import UIKit
|
|||||||
open func updateTabBar() {
|
open func updateTabBar() {
|
||||||
guard MVMCoreUISplitViewController.main()?.getCurrentDetailViewController() == self,
|
guard MVMCoreUISplitViewController.main()?.getCurrentDetailViewController() == self,
|
||||||
let tabModel = pageModel as? TabPageModelProtocol else { return }
|
let tabModel = pageModel as? TabPageModelProtocol else { return }
|
||||||
|
MVMCoreUISplitViewController.main()?.tabBar?.delegateObject = delegateObjectIVar
|
||||||
if let index = tabModel.tabBarIndex {
|
if let index = tabModel.tabBarIndex {
|
||||||
MVMCoreUISplitViewController.main()?.tabBar?.highlightTab(at: index)
|
MVMCoreUISplitViewController.main()?.tabBar?.highlightTab(at: index)
|
||||||
}
|
}
|
||||||
@ -336,7 +355,7 @@ import UIKit
|
|||||||
|
|
||||||
open func pageShown() {
|
open func pageShown() {
|
||||||
// Update the navigation bar ui when view is appearing.
|
// Update the navigation bar ui when view is appearing.
|
||||||
setNavigationController()
|
setNavigationBar()
|
||||||
|
|
||||||
// Update tab if needed.
|
// Update tab if needed.
|
||||||
updateTabBar()
|
updateTabBar()
|
||||||
@ -453,7 +472,7 @@ import UIKit
|
|||||||
|
|
||||||
// Reset the navigation state.
|
// Reset the navigation state.
|
||||||
public func splitViewDidReset() {
|
public func splitViewDidReset() {
|
||||||
setNavigationController()
|
setNavigationBar()
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - UITextFieldDelegate (Check if this is still needed)
|
// MARK: - UITextFieldDelegate (Check if this is still needed)
|
||||||
|
|||||||
@ -43,6 +43,14 @@ import UIKit
|
|||||||
return navigationController
|
return navigationController
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Convenience function for setting the navigation item.
|
||||||
|
public static func setNavigationItem(navigationController: UINavigationController, navigationItemModel: NavigationItemModelProtocol, viewController: UIViewController) {
|
||||||
|
viewController.navigationItem.title = navigationItemModel.title
|
||||||
|
viewController.navigationItem.accessibilityLabel = navigationItemModel.title
|
||||||
|
viewController.navigationItem.hidesBackButton = (navigationItemModel.backButton != nil)
|
||||||
|
setNavigationButtons(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: viewController)
|
||||||
|
}
|
||||||
|
|
||||||
/// Convenience function for setting the navigation buttons.
|
/// Convenience function for setting the navigation buttons.
|
||||||
public static func setNavigationButtons(navigationController: UINavigationController, navigationItemModel: NavigationItemModelProtocol, viewController: UIViewController) {
|
public static func setNavigationButtons(navigationController: UINavigationController, navigationItemModel: NavigationItemModelProtocol, viewController: UIViewController) {
|
||||||
let delegate = (viewController as? MVMCoreViewControllerProtocol)?.delegateObject?() as? MVMCoreUIDelegateObject
|
let delegate = (viewController as? MVMCoreViewControllerProtocol)?.delegateObject?() as? MVMCoreUIDelegateObject
|
||||||
@ -70,11 +78,7 @@ import UIKit
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Convenience function for setting the navigation bar ui, except for the buttons.
|
/// Convenience function for setting the navigation bar ui, except for the buttons.
|
||||||
public static func setNavigationUI(navigationController: UINavigationController, navigationItemModel: NavigationItemModelProtocol, viewController: UIViewController) {
|
public static func setNavigationBarUI(navigationController: UINavigationController, navigationItemModel: NavigationItemModelProtocol, viewController: UIViewController) {
|
||||||
viewController.navigationItem.title = navigationItemModel.title
|
|
||||||
viewController.navigationItem.accessibilityLabel = navigationItemModel.title
|
|
||||||
viewController.navigationItem.hidesBackButton = (navigationItemModel.backButton != nil)
|
|
||||||
|
|
||||||
navigationController.setNavigationBarHidden(navigationItemModel.hidden, animated: true)
|
navigationController.setNavigationBarHidden(navigationItemModel.hidden, animated: true)
|
||||||
navigationController.navigationBar.barTintColor = navigationItemModel.backgroundColor?.uiColor ?? .white
|
navigationController.navigationBar.barTintColor = navigationItemModel.backgroundColor?.uiColor ?? .white
|
||||||
|
|
||||||
@ -90,17 +94,19 @@ import UIKit
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Convenience function for setting navigation bar with model.
|
|
||||||
public static func set(navigationController: UINavigationController, navigationItemModel: NavigationItemModelProtocol, viewController: UIViewController) {
|
|
||||||
setNavigationUI(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: viewController)
|
|
||||||
setNavigationButtons(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: viewController)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Convenience setter for legacy files
|
/// Convenience setter for legacy files
|
||||||
public static func set(navigationController: UINavigationController, navigationJSON: [String: Any], viewController: UIViewController) throws {
|
public static func setNavigationItem(navigationController: UINavigationController, navigationJSON: [String: Any], viewController: UIViewController) throws {
|
||||||
guard let barModel = try MoleculeObjectMapping.shared()?.getMoleculeModelForJSON(navigationJSON) as? (MoleculeModelProtocol & NavigationItemModelProtocol) else {
|
guard let barModel = try MoleculeObjectMapping.shared()?.getMoleculeModelForJSON(navigationJSON) as? (MoleculeModelProtocol & NavigationItemModelProtocol) else {
|
||||||
throw ModelRegistry.Error.decoderOther(message: "Model not a bar model")
|
throw ModelRegistry.Error.decoderOther(message: "Model not a bar model")
|
||||||
}
|
}
|
||||||
set(navigationController: navigationController, navigationItemModel: barModel, viewController: viewController)
|
setNavigationItem(navigationController: navigationController, navigationItemModel: barModel, viewController: viewController)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Convenience setter for legacy files
|
||||||
|
public static func setNavigationBarUI(navigationController: UINavigationController, navigationJSON: [String: Any], viewController: UIViewController) throws {
|
||||||
|
guard let barModel = try MoleculeObjectMapping.shared()?.getMoleculeModelForJSON(navigationJSON) as? (MoleculeModelProtocol & NavigationItemModelProtocol) else {
|
||||||
|
throw ModelRegistry.Error.decoderOther(message: "Model not a bar model")
|
||||||
|
}
|
||||||
|
setNavigationBarUI(navigationController: navigationController, navigationItemModel: barModel, viewController: viewController)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,7 +15,7 @@ public extension MVMCoreUISplitViewController {
|
|||||||
guard let splitView = MVMCoreUISplitViewController.main(),
|
guard let splitView = MVMCoreUISplitViewController.main(),
|
||||||
navigationController == splitView.navigationController,
|
navigationController == splitView.navigationController,
|
||||||
navigationController.topViewController == viewController else {
|
navigationController.topViewController == viewController else {
|
||||||
NavigationController.set(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: viewController)
|
NavigationController.setNavigationBarUI(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: viewController)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
splitView.set(for: viewController, navigationController: navigationController, navigationItemModel: navigationItemModel, leftPanelAccessible: leftPanelAccessible, rightPanelAccessible: rightPanelAccessible, progress: progress)
|
splitView.set(for: viewController, navigationController: navigationController, navigationItemModel: navigationItemModel, leftPanelAccessible: leftPanelAccessible, rightPanelAccessible: rightPanelAccessible, progress: progress)
|
||||||
@ -27,7 +27,7 @@ public extension MVMCoreUISplitViewController {
|
|||||||
// Setup the panels.
|
// Setup the panels.
|
||||||
setupPanels()
|
setupPanels()
|
||||||
|
|
||||||
NavigationController.setNavigationUI(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: viewController)
|
NavigationController.setNavigationBarUI(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: viewController)
|
||||||
|
|
||||||
setLeftPanelIsAccessible(leftPanelAccessible ?? leftPanelIsAccessible, for: viewController, updateNavigationButtons: false)
|
setLeftPanelIsAccessible(leftPanelAccessible ?? leftPanelIsAccessible, for: viewController, updateNavigationButtons: false)
|
||||||
setRightPanelIsAccessible(rightPanelAccessible ?? rightPanelIsAccessible, for: viewController, updateNavigationButtons: false)
|
setRightPanelIsAccessible(rightPanelAccessible ?? rightPanelIsAccessible, for: viewController, updateNavigationButtons: false)
|
||||||
@ -117,7 +117,7 @@ public extension MVMCoreUISplitViewController {
|
|||||||
guard let splitView = MVMCoreUISplitViewController.main(),
|
guard let splitView = MVMCoreUISplitViewController.main(),
|
||||||
navigationController == splitView.navigationController,
|
navigationController == splitView.navigationController,
|
||||||
navigationController.topViewController == viewController else {
|
navigationController.topViewController == viewController else {
|
||||||
NavigationController.set(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: viewController)
|
NavigationController.setNavigationBarUI(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: viewController)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let progress = progress?.floatValue
|
let progress = progress?.floatValue
|
||||||
|
|||||||
@ -17,8 +17,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
- (void)defaultLogPageStateForController:(nonnull id <MVMCoreViewControllerProtocol>)controller;
|
- (void)defaultLogPageStateForController:(nonnull id <MVMCoreViewControllerProtocol>)controller;
|
||||||
|
|
||||||
// Action Logging
|
// Action Logging
|
||||||
- (void)defaultLogActionForController:(nonnull id <MVMCoreViewControllerProtocol>)controller actionInformation:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData;
|
- (void)defaultLogActionForController:(nullable id <MVMCoreViewControllerProtocol>)controller actionInformation:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData;
|
||||||
- (nullable NSDictionary *)defaultGetActionTrackDataDictionaryForController:(nonnull id <MVMCoreViewControllerProtocol>)controller actionInformation:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData;
|
- (nullable NSDictionary *)defaultGetActionTrackDataDictionaryForController:(nullable id <MVMCoreViewControllerProtocol>)controller actionInformation:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|||||||
@ -13,10 +13,10 @@
|
|||||||
- (void)defaultLogPageStateForController:(nonnull id <MVMCoreViewControllerProtocol>)controller {
|
- (void)defaultLogPageStateForController:(nonnull id <MVMCoreViewControllerProtocol>)controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)defaultLogActionForController:(nonnull id <MVMCoreViewControllerProtocol>)controller actionInformation:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData {
|
- (void)defaultLogActionForController:(nullable id <MVMCoreViewControllerProtocol>)controller actionInformation:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData {
|
||||||
}
|
}
|
||||||
|
|
||||||
- (nullable NSDictionary *)defaultGetActionTrackDataDictionaryForController:(nonnull id <MVMCoreViewControllerProtocol>)controller actionInformation:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData {
|
- (nullable NSDictionary *)defaultGetActionTrackDataDictionaryForController:(nullable id <MVMCoreViewControllerProtocol>)controller actionInformation:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData {
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user