action sheet stuff
This commit is contained in:
parent
1cbf5e8908
commit
d1f60ba79c
@ -30,6 +30,8 @@
|
|||||||
01F2A04E23A82CF500D954D8 /* ActionPopupModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F2A04D23A82CF500D954D8 /* ActionPopupModel.swift */; };
|
01F2A04E23A82CF500D954D8 /* ActionPopupModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F2A04D23A82CF500D954D8 /* ActionPopupModel.swift */; };
|
||||||
01F2A05223A8325100D954D8 /* ModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F2A05123A8325100D954D8 /* ModelMapping.swift */; };
|
01F2A05223A8325100D954D8 /* ModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F2A05123A8325100D954D8 /* ModelMapping.swift */; };
|
||||||
0A42538F23F3414800554656 /* Codable+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A42538E23F3414800554656 /* Codable+Helpers.swift */; };
|
0A42538F23F3414800554656 /* Codable+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A42538E23F3414800554656 /* Codable+Helpers.swift */; };
|
||||||
|
0A6173B724C09315005FB46A /* ActionSheetModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A6173B624C09315005FB46A /* ActionSheetModel.swift */; };
|
||||||
|
0AD93AA424C0CD8300E56A97 /* ActionAlertModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AD93AA324C0CD8300E56A97 /* ActionAlertModel.swift */; };
|
||||||
0AFF597A23FC6E60005C24E8 /* ActionShareModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AFF597923FC6E60005C24E8 /* ActionShareModel.swift */; };
|
0AFF597A23FC6E60005C24E8 /* ActionShareModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AFF597923FC6E60005C24E8 /* ActionShareModel.swift */; };
|
||||||
30349BF11FCCA78A00546A1E /* MVMCoreSessionTimeHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 30349BEF1FCCA78A00546A1E /* MVMCoreSessionTimeHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
30349BF11FCCA78A00546A1E /* MVMCoreSessionTimeHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 30349BEF1FCCA78A00546A1E /* MVMCoreSessionTimeHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
30349BF21FCCA78A00546A1E /* MVMCoreSessionTimeHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 30349BF01FCCA78A00546A1E /* MVMCoreSessionTimeHandler.m */; };
|
30349BF21FCCA78A00546A1E /* MVMCoreSessionTimeHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 30349BF01FCCA78A00546A1E /* MVMCoreSessionTimeHandler.m */; };
|
||||||
@ -180,6 +182,8 @@
|
|||||||
0A11030B20864F94008ADD90 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
|
0A11030B20864F94008ADD90 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
0A11030C20864F9A008ADD90 /* es-MX */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-MX"; path = "es-MX.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
0A11030C20864F9A008ADD90 /* es-MX */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-MX"; path = "es-MX.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||||
0A42538E23F3414800554656 /* Codable+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Codable+Helpers.swift"; sourceTree = "<group>"; };
|
0A42538E23F3414800554656 /* Codable+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Codable+Helpers.swift"; sourceTree = "<group>"; };
|
||||||
|
0A6173B624C09315005FB46A /* ActionSheetModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionSheetModel.swift; sourceTree = "<group>"; };
|
||||||
|
0AD93AA324C0CD8300E56A97 /* ActionAlertModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionAlertModel.swift; sourceTree = "<group>"; };
|
||||||
0AFF597923FC6E60005C24E8 /* ActionShareModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionShareModel.swift; sourceTree = "<group>"; };
|
0AFF597923FC6E60005C24E8 /* ActionShareModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionShareModel.swift; sourceTree = "<group>"; };
|
||||||
30349BEF1FCCA78A00546A1E /* MVMCoreSessionTimeHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVMCoreSessionTimeHandler.h; sourceTree = "<group>"; };
|
30349BEF1FCCA78A00546A1E /* MVMCoreSessionTimeHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVMCoreSessionTimeHandler.h; sourceTree = "<group>"; };
|
||||||
30349BF01FCCA78A00546A1E /* MVMCoreSessionTimeHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MVMCoreSessionTimeHandler.m; sourceTree = "<group>"; };
|
30349BF01FCCA78A00546A1E /* MVMCoreSessionTimeHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MVMCoreSessionTimeHandler.m; sourceTree = "<group>"; };
|
||||||
@ -466,6 +470,8 @@
|
|||||||
94C014D2242119E6005811A9 /* ActionPreviousSubmitModel.swift */,
|
94C014D2242119E6005811A9 /* ActionPreviousSubmitModel.swift */,
|
||||||
94C014D424211AF0005811A9 /* ActionCancelModel.swift */,
|
94C014D424211AF0005811A9 /* ActionCancelModel.swift */,
|
||||||
94C014D824212360005811A9 /* ActionSettingModel.swift */,
|
94C014D824212360005811A9 /* ActionSettingModel.swift */,
|
||||||
|
0A6173B624C09315005FB46A /* ActionSheetModel.swift */,
|
||||||
|
0AD93AA324C0CD8300E56A97 /* ActionAlertModel.swift */,
|
||||||
);
|
);
|
||||||
path = ActionType;
|
path = ActionType;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -923,6 +929,7 @@
|
|||||||
AFED77A31FCCA29400BAE689 /* MVMCoreViewControllerNibMappingObject.m in Sources */,
|
AFED77A31FCCA29400BAE689 /* MVMCoreViewControllerNibMappingObject.m in Sources */,
|
||||||
8876D5EB1FB50AB000EB2E3D /* NSDecimalNumber+MFConvenience.m in Sources */,
|
8876D5EB1FB50AB000EB2E3D /* NSDecimalNumber+MFConvenience.m in Sources */,
|
||||||
AFBB96A41FBA3A9A0008D868 /* MVMCoreTopAlertObject.m in Sources */,
|
AFBB96A41FBA3A9A0008D868 /* MVMCoreTopAlertObject.m in Sources */,
|
||||||
|
0A6173B724C09315005FB46A /* ActionSheetModel.swift in Sources */,
|
||||||
01F2A03923A812DD00D954D8 /* ActionOpenUrlModel.swift in Sources */,
|
01F2A03923A812DD00D954D8 /* ActionOpenUrlModel.swift in Sources */,
|
||||||
AFBB96351FBA34310008D868 /* MVMCoreErrorConstants.m in Sources */,
|
AFBB96351FBA34310008D868 /* MVMCoreErrorConstants.m in Sources */,
|
||||||
AFBB969C1FBA3A9A0008D868 /* MVMCoreAlertHandler.m in Sources */,
|
AFBB969C1FBA3A9A0008D868 /* MVMCoreAlertHandler.m in Sources */,
|
||||||
@ -948,6 +955,7 @@
|
|||||||
AF43A6FF1FBE3252008E9347 /* Reachability.m in Sources */,
|
AF43A6FF1FBE3252008E9347 /* Reachability.m in Sources */,
|
||||||
01C851D123CF97FE0021F976 /* ActionBackModel.swift in Sources */,
|
01C851D123CF97FE0021F976 /* ActionBackModel.swift in Sources */,
|
||||||
AFBB96921FBA3A9A0008D868 /* MVMCoreNavigationOperation.m in Sources */,
|
AFBB96921FBA3A9A0008D868 /* MVMCoreNavigationOperation.m in Sources */,
|
||||||
|
0AD93AA424C0CD8300E56A97 /* ActionAlertModel.swift in Sources */,
|
||||||
AFBB96611FBA3A570008D868 /* MVMCoreLoadObject.m in Sources */,
|
AFBB96611FBA3A570008D868 /* MVMCoreLoadObject.m in Sources */,
|
||||||
946EE1B4237B619D0036751F /* Encoder.swift in Sources */,
|
946EE1B4237B619D0036751F /* Encoder.swift in Sources */,
|
||||||
AFBB96941FBA3A9A0008D868 /* MVMCorePresentAnimationOperation.m in Sources */,
|
AFBB96941FBA3A9A0008D868 /* MVMCorePresentAnimationOperation.m in Sources */,
|
||||||
|
|||||||
@ -71,6 +71,9 @@ NSString * const KeyActionTypeOpen = @"openPage";
|
|||||||
} else if ([actionType isEqualToString:KeyActionTypeShare]) {
|
} else if ([actionType isEqualToString:KeyActionTypeShare]) {
|
||||||
[self shareAction:actionInformation additionalData:additionalData delegateObject:delegateObject];
|
[self shareAction:actionInformation additionalData:additionalData delegateObject:delegateObject];
|
||||||
|
|
||||||
|
} else if ([actionType isEqualToString:KeyActionTypeActionSheet]) {
|
||||||
|
[self actionSheetAction:actionInformation additionalData:additionalData delegateObject:delegateObject];
|
||||||
|
|
||||||
} else if ([actionType isEqualToString:KeyActionTypePreviousSubmit]) {
|
} else if ([actionType isEqualToString:KeyActionTypePreviousSubmit]) {
|
||||||
[self previousSubmitAction:actionInformation additionalData:additionalData delegateObject:delegateObject];
|
[self previousSubmitAction:actionInformation additionalData:additionalData delegateObject:delegateObject];
|
||||||
|
|
||||||
@ -197,6 +200,35 @@ NSString * const KeyActionTypeOpen = @"openPage";
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)actionSheetAction:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData delegateObject:(nullable DelegateObject *)delegateObject {
|
||||||
|
|
||||||
|
NSArray *actions = [actionInformation array:@"actions"];
|
||||||
|
NSString *title = [actionInformation string:@"title"];
|
||||||
|
NSString *message = [actionInformation string:@"message"];
|
||||||
|
BOOL isGreedy = [actionInformation boolForKey:@"isGreedy"];
|
||||||
|
|
||||||
|
NSMutableArray *alertActions = [NSMutableArray array];
|
||||||
|
|
||||||
|
[actions enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||||
|
|
||||||
|
NSDictionary *actionDict = [actions objectAtIndex:idx];
|
||||||
|
NSString *actionTitle = [actionDict string:@"title"];
|
||||||
|
|
||||||
|
UIAlertAction *alertAction = [UIAlertAction actionWithTitle:actionTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
|
||||||
|
[[MVMCoreActionHandler sharedActionHandler] handleActionWithDictionary:obj additionalData:nil delegateObject:nil];
|
||||||
|
}];
|
||||||
|
|
||||||
|
[alertActions addObject:alertAction];
|
||||||
|
}];
|
||||||
|
|
||||||
|
[[MVMCoreAlertHandler sharedAlertHandler] showAlertWithTitle:title
|
||||||
|
message:message
|
||||||
|
actions:alertActions
|
||||||
|
alertStyle:UIAlertControllerStyleActionSheet
|
||||||
|
isGreedy:isGreedy
|
||||||
|
alertDelegate:nil];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)restartAction:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData delegateObject:(nullable DelegateObject *)delegateObject {
|
- (void)restartAction:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData delegateObject:(nullable DelegateObject *)delegateObject {
|
||||||
|
|
||||||
// Invalidates the session before restarting.
|
// Invalidates the session before restarting.
|
||||||
|
|||||||
@ -31,6 +31,7 @@ extern NSString * const KeyMessage;
|
|||||||
extern NSString * const KeyActionTypeRestart;
|
extern NSString * const KeyActionTypeRestart;
|
||||||
extern NSString * const KeyActionTypeBack;
|
extern NSString * const KeyActionTypeBack;
|
||||||
extern NSString * const KeyActionTypeShare;
|
extern NSString * const KeyActionTypeShare;
|
||||||
|
extern NSString * const KeyActionTypeActionSheet;
|
||||||
extern NSString * const KeyShareType;
|
extern NSString * const KeyShareType;
|
||||||
extern NSString * const KeyShareText;
|
extern NSString * const KeyShareText;
|
||||||
extern NSString * const KeyActionTypeCall;
|
extern NSString * const KeyActionTypeCall;
|
||||||
|
|||||||
@ -33,6 +33,7 @@ NSString * const KeyMessage = @"message";
|
|||||||
NSString * const KeyActionTypeRestart = @"restart";
|
NSString * const KeyActionTypeRestart = @"restart";
|
||||||
NSString * const KeyActionTypeBack = @"back";
|
NSString * const KeyActionTypeBack = @"back";
|
||||||
NSString * const KeyActionTypeShare = @"share";
|
NSString * const KeyActionTypeShare = @"share";
|
||||||
|
NSString * const KeyActionTypeActionSheet = @"actionSheet";
|
||||||
NSString * const KeyActionTypeCall = @"call";
|
NSString * const KeyActionTypeCall = @"call";
|
||||||
NSString * const KeyActionTypePreviousSubmit = @"previousSubmit";
|
NSString * const KeyActionTypePreviousSubmit = @"previousSubmit";
|
||||||
NSString * const KeyActionTypePopup = @"popup";
|
NSString * const KeyActionTypePopup = @"popup";
|
||||||
|
|||||||
57
MVMCore/MVMCore/Models/ActionType/ActionAlertModel.swift
Normal file
57
MVMCore/MVMCore/Models/ActionType/ActionAlertModel.swift
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
//
|
||||||
|
// ActionAlertModel.swift
|
||||||
|
// MVMCore
|
||||||
|
//
|
||||||
|
// Created by Kevin Christiano on 7/16/20.
|
||||||
|
// Copyright © 2020 myverizon. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
@objcMembers public class ActionAlertModel: ActionModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
|
public static var identifier: String = "actionAlert"
|
||||||
|
public var actionType: String = ActionAlertModel.identifier
|
||||||
|
public var extraParameters: JSONValueDictionary?
|
||||||
|
public var analyticsData: JSONValueDictionary?
|
||||||
|
public var title: String?
|
||||||
|
public var action: ActionModelProtocol
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Keys
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
|
private enum CodingKeys: String, CodingKey {
|
||||||
|
case actionType
|
||||||
|
case action
|
||||||
|
case title
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initializer
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
|
public init(action: ActionAlertModel, _ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
||||||
|
self.extraParameters = extraParameters
|
||||||
|
self.analyticsData = analyticsData
|
||||||
|
self.action = action
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Codec
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
|
required public init(from decoder: Decoder) throws {
|
||||||
|
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
|
||||||
|
action = try typeContainer.decodeModel(codingKey: .action)
|
||||||
|
title = try typeContainer.decodeIfPresent(String.self, forKey: .title)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func encode(to encoder: Encoder) throws {
|
||||||
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||||
|
try container.encodeModel(action, forKey: .action)
|
||||||
|
try container.encodeIfPresent(title, forKey: .title)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,19 +1,26 @@
|
|||||||
//
|
//
|
||||||
// File.swift
|
// ActionBackModel.swift
|
||||||
// MVMCore
|
// MVMCore
|
||||||
//
|
//
|
||||||
// Created by Suresh, Kamlesh on 1/15/20.
|
// Created by Suresh, Kamlesh on 1/15/20.
|
||||||
// Copyright © 2020 myverizon. All rights reserved.
|
// Copyright © 2020 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
@objcMembers public class ActionBackModel: ActionModelProtocol {
|
@objcMembers public class ActionBackModel: ActionModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public static var identifier: String = "back"
|
public static var identifier: String = "back"
|
||||||
public var actionType: String = ActionBackModel.identifier
|
public var actionType: String = ActionBackModel.identifier
|
||||||
public var extraParameters: JSONValueDictionary?
|
public var extraParameters: JSONValueDictionary?
|
||||||
public var analyticsData: JSONValueDictionary?
|
public var analyticsData: JSONValueDictionary?
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initializer
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public init(_ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
public init(_ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
|
|||||||
@ -6,9 +6,12 @@
|
|||||||
// Copyright © 2019 myverizon. All rights reserved.
|
// Copyright © 2019 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
@objcMembers public class ActionCallModel: ActionModelProtocol {
|
@objcMembers public class ActionCallModel: ActionModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public static var identifier: String = "call"
|
public static var identifier: String = "call"
|
||||||
public var actionType: String = ActionCallModel.identifier
|
public var actionType: String = ActionCallModel.identifier
|
||||||
// TODO: decode into phone number once action handler is re-written
|
// TODO: decode into phone number once action handler is re-written
|
||||||
@ -16,6 +19,10 @@ import Foundation
|
|||||||
public var extraParameters: JSONValueDictionary?
|
public var extraParameters: JSONValueDictionary?
|
||||||
public var analyticsData: JSONValueDictionary?
|
public var analyticsData: JSONValueDictionary?
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initializer
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public init(callNumber: String, _ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
public init(callNumber: String, _ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
||||||
self.callNumber = callNumber
|
self.callNumber = callNumber
|
||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
|
|||||||
@ -6,14 +6,21 @@
|
|||||||
// Copyright © 2020 myverizon. All rights reserved.
|
// Copyright © 2020 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
|
||||||
|
|
||||||
@objcMembers public class ActionCancelModel: ActionModelProtocol {
|
@objcMembers public class ActionCancelModel: ActionModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public static var identifier: String = "cancel"
|
public static var identifier: String = "cancel"
|
||||||
public var actionType: String = ActionCancelModel.identifier
|
public var actionType: String = ActionCancelModel.identifier
|
||||||
public var extraParameters: JSONValueDictionary?
|
public var extraParameters: JSONValueDictionary?
|
||||||
public var analyticsData: JSONValueDictionary?
|
public var analyticsData: JSONValueDictionary?
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initializer
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public init(_ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
public init(_ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
// Copyright © 2019 myverizon. All rights reserved.
|
// Copyright © 2019 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
public protocol ActionModelProtocol: ModelProtocol {
|
public protocol ActionModelProtocol: ModelProtocol {
|
||||||
|
|
||||||
|
|||||||
@ -6,9 +6,12 @@
|
|||||||
// Copyright © 2019 Suresh, Kamlesh. All rights reserved.
|
// Copyright © 2019 Suresh, Kamlesh. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
@objcMembers open class ActionOpenPageModel: ActionModelProtocol {
|
@objcMembers open class ActionOpenPageModel: ActionModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public static var identifier: String = "openPage"
|
public static var identifier: String = "openPage"
|
||||||
public var actionType: String = ActionOpenPageModel.identifier
|
public var actionType: String = ActionOpenPageModel.identifier
|
||||||
public var pageType: String
|
public var pageType: String
|
||||||
@ -17,6 +20,10 @@ import Foundation
|
|||||||
public var presentationStyle: String?
|
public var presentationStyle: String?
|
||||||
public var tabBarIndex: Int?
|
public var tabBarIndex: Int?
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initialzier
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public init(pageType: String, presentationStyle: String? = nil, extraParameters: JSONValueDictionary? = nil, analyticsData: JSONValueDictionary? = nil, tabBarIndex: Int? = nil) {
|
public init(pageType: String, presentationStyle: String? = nil, extraParameters: JSONValueDictionary? = nil, analyticsData: JSONValueDictionary? = nil, tabBarIndex: Int? = nil) {
|
||||||
self.pageType = pageType
|
self.pageType = pageType
|
||||||
self.presentationStyle = presentationStyle
|
self.presentationStyle = presentationStyle
|
||||||
|
|||||||
@ -6,9 +6,12 @@
|
|||||||
// Copyright © 2019 myverizon. All rights reserved.
|
// Copyright © 2019 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
@objcMembers public class ActionOpenUrlModel: ActionModelProtocol {
|
@objcMembers public class ActionOpenUrlModel: ActionModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public static var identifier: String = "openURL"
|
public static var identifier: String = "openURL"
|
||||||
public var actionType: String = ActionOpenUrlModel.identifier
|
public var actionType: String = ActionOpenUrlModel.identifier
|
||||||
// TODO: decode into url once action handler is re-written
|
// TODO: decode into url once action handler is re-written
|
||||||
@ -27,6 +30,10 @@ import Foundation
|
|||||||
public var dontShowProgress: Bool?
|
public var dontShowProgress: Bool?
|
||||||
public var headerParameters: JSONValueDictionary?
|
public var headerParameters: JSONValueDictionary?
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initialzier
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public init(browserUrl: String) {
|
public init(browserUrl: String) {
|
||||||
self.browserUrl = browserUrl
|
self.browserUrl = browserUrl
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,15 +6,22 @@
|
|||||||
// Copyright © 2019 myverizon. All rights reserved.
|
// Copyright © 2019 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
@objcMembers public class ActionPopupModel: ActionModelProtocol {
|
@objcMembers public class ActionPopupModel: ActionModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public static var identifier: String = "popup"
|
public static var identifier: String = "popup"
|
||||||
public var actionType: String = ActionPopupModel.identifier
|
public var actionType: String = ActionPopupModel.identifier
|
||||||
public var pageType: String
|
public var pageType: String
|
||||||
public var extraParameters: JSONValueDictionary?
|
public var extraParameters: JSONValueDictionary?
|
||||||
public var analyticsData: JSONValueDictionary?
|
public var analyticsData: JSONValueDictionary?
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initializer
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public init(pageType: String, _ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
public init(pageType: String, _ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
||||||
self.pageType = pageType
|
self.pageType = pageType
|
||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
|
|||||||
@ -6,14 +6,21 @@
|
|||||||
// Copyright © 2020 myverizon. All rights reserved.
|
// Copyright © 2020 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
|
||||||
|
|
||||||
@objcMembers public class ActionPreviousSubmitModel: ActionModelProtocol {
|
@objcMembers public class ActionPreviousSubmitModel: ActionModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public static var identifier: String = "previousSubmit"
|
public static var identifier: String = "previousSubmit"
|
||||||
public var actionType: String = ActionPreviousSubmitModel.identifier
|
public var actionType: String = ActionPreviousSubmitModel.identifier
|
||||||
public var extraParameters: JSONValueDictionary?
|
public var extraParameters: JSONValueDictionary?
|
||||||
public var analyticsData: JSONValueDictionary?
|
public var analyticsData: JSONValueDictionary?
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initialzier
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public init(_ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
public init(_ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
|
|||||||
@ -6,9 +6,12 @@
|
|||||||
// Copyright © 2020 myverizon. All rights reserved.
|
// Copyright © 2020 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
|
||||||
|
|
||||||
@objcMembers public class ActionRestartModel: ActionModelProtocol {
|
@objcMembers public class ActionRestartModel: ActionModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public static var identifier: String = "restart"
|
public static var identifier: String = "restart"
|
||||||
public var actionType: String = ActionRestartModel.identifier
|
public var actionType: String = ActionRestartModel.identifier
|
||||||
public var extraParameters: JSONValueDictionary?
|
public var extraParameters: JSONValueDictionary?
|
||||||
@ -17,6 +20,10 @@ import UIKit
|
|||||||
///Optional pageType, if pageType is nil, will start with pageType launchApp
|
///Optional pageType, if pageType is nil, will start with pageType launchApp
|
||||||
public var pageType: String?
|
public var pageType: String?
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initializer
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public init(_ pageType: String? = nil, _ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
public init(_ pageType: String? = nil, _ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
||||||
self.pageType = pageType
|
self.pageType = pageType
|
||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
|
|||||||
@ -6,14 +6,21 @@
|
|||||||
// Copyright © 2020 myverizon. All rights reserved.
|
// Copyright © 2020 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
|
||||||
|
|
||||||
@objcMembers public class ActionSettingModel: ActionModelProtocol {
|
@objcMembers public class ActionSettingModel: ActionModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public static var identifier: String = "openSettings"
|
public static var identifier: String = "openSettings"
|
||||||
public var actionType: String = ActionSettingModel.identifier
|
public var actionType: String = ActionSettingModel.identifier
|
||||||
public var extraParameters: JSONValueDictionary?
|
public var extraParameters: JSONValueDictionary?
|
||||||
public var analyticsData: JSONValueDictionary?
|
public var analyticsData: JSONValueDictionary?
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initializer
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
public init(_ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
public init(_ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
|
||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
// Copyright © 2020 myverizon. All rights reserved.
|
// Copyright © 2020 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
|
||||||
|
|
||||||
@objcMembers public class ActionShareModel: ActionModelProtocol {
|
@objcMembers public class ActionShareModel: ActionModelProtocol {
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|||||||
70
MVMCore/MVMCore/Models/ActionType/ActionSheetModel.swift
Normal file
70
MVMCore/MVMCore/Models/ActionType/ActionSheetModel.swift
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
//
|
||||||
|
// ActionSheetModel.swift
|
||||||
|
// MVMCore
|
||||||
|
//
|
||||||
|
// Created by Kevin Christiano on 7/16/20.
|
||||||
|
// Copyright © 2020 myverizon. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
@objcMembers public class ActionSheetModel: ActionModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
|
public static var identifier: String = "actionSheet"
|
||||||
|
public var actionType: String = ActionSheetModel.identifier
|
||||||
|
public var extraParameters: JSONValueDictionary?
|
||||||
|
public var analyticsData: JSONValueDictionary?
|
||||||
|
public var actions: [ActionModelProtocol]
|
||||||
|
public var title: String?
|
||||||
|
public var message: String?
|
||||||
|
public var isGreedy = false
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initializer
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
|
public init(_ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil, _ actions: [ActionModelProtocol]) {
|
||||||
|
self.extraParameters = extraParameters
|
||||||
|
self.analyticsData = analyticsData
|
||||||
|
self.actions = actions
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Keys
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
|
private enum CodingKeys: String, CodingKey {
|
||||||
|
case actionType
|
||||||
|
case actions
|
||||||
|
case title
|
||||||
|
case message
|
||||||
|
case greedy
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Initializer
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
|
required public init(from decoder: Decoder) throws {
|
||||||
|
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
|
||||||
|
actions = try typeContainer.decodeModels(codingKey: .actions)
|
||||||
|
// actions = try typeContainer.decode([ActionAlertModel].self, forKey: .actions)
|
||||||
|
title = try typeContainer.decodeIfPresent(String.self, forKey: .title)
|
||||||
|
message = try typeContainer.decodeIfPresent(String.self, forKey: .message)
|
||||||
|
|
||||||
|
if let isGreedy = try typeContainer.decodeIfPresent(Bool.self, forKey: .greedy) {
|
||||||
|
self.isGreedy = isGreedy
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func encode(to encoder: Encoder) throws {
|
||||||
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||||
|
try container.encodeModels(actions, forKey: .actions)
|
||||||
|
try container.encodeIfPresent(title, forKey: .title)
|
||||||
|
try container.encodeIfPresent(message, forKey: .message)
|
||||||
|
try container.encode(isGreedy, forKey: .greedy)
|
||||||
|
try container.encode(actionType, forKey: .actionType)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -21,5 +21,7 @@ import Foundation
|
|||||||
try? ModelRegistry.register(ActionPreviousSubmitModel.self)
|
try? ModelRegistry.register(ActionPreviousSubmitModel.self)
|
||||||
try? ModelRegistry.register(ActionCancelModel.self)
|
try? ModelRegistry.register(ActionCancelModel.self)
|
||||||
try? ModelRegistry.register(ActionSettingModel.self)
|
try? ModelRegistry.register(ActionSettingModel.self)
|
||||||
|
try? ModelRegistry.register(ActionAlertModel.self)
|
||||||
|
try? ModelRegistry.register(ActionSheetModel.self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user