review fixes
This commit is contained in:
parent
4631d332bd
commit
e63ba83770
@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
0184D3DB24B7D5A600A05369 /* ActionAlertModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0184D3DA24B7D5A600A05369 /* ActionAlertModel.swift */; };
|
0184D3DB24B7D5A600A05369 /* ActionAlertModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0184D3DA24B7D5A600A05369 /* ActionAlertModel.swift */; };
|
||||||
|
0184D3E324B8D0C600A05369 /* MVMCoreAlertObject+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0184D3E224B8D0C600A05369 /* MVMCoreAlertObject+Swift.swift */; };
|
||||||
01C851CF23CF7B260021F976 /* JSONMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01C851CE23CF7B260021F976 /* JSONMap.swift */; };
|
01C851CF23CF7B260021F976 /* JSONMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01C851CE23CF7B260021F976 /* JSONMap.swift */; };
|
||||||
01C851D123CF97FE0021F976 /* ActionBackModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01C851D023CF97FE0021F976 /* ActionBackModel.swift */; };
|
01C851D123CF97FE0021F976 /* ActionBackModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01C851D023CF97FE0021F976 /* ActionBackModel.swift */; };
|
||||||
01DF561421F90ADC00CC099B /* Dictionary+MFConvenience.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01DF561321F90ADC00CC099B /* Dictionary+MFConvenience.swift */; };
|
01DF561421F90ADC00CC099B /* Dictionary+MFConvenience.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01DF561321F90ADC00CC099B /* Dictionary+MFConvenience.swift */; };
|
||||||
@ -171,6 +172,7 @@
|
|||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
0184D3DA24B7D5A600A05369 /* ActionAlertModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActionAlertModel.swift; sourceTree = "<group>"; };
|
0184D3DA24B7D5A600A05369 /* ActionAlertModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActionAlertModel.swift; sourceTree = "<group>"; };
|
||||||
|
0184D3E224B8D0C600A05369 /* MVMCoreAlertObject+Swift.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MVMCoreAlertObject+Swift.swift"; sourceTree = "<group>"; };
|
||||||
01C851CE23CF7B260021F976 /* JSONMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSONMap.swift; sourceTree = "<group>"; };
|
01C851CE23CF7B260021F976 /* JSONMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSONMap.swift; sourceTree = "<group>"; };
|
||||||
01C851D023CF97FE0021F976 /* ActionBackModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionBackModel.swift; sourceTree = "<group>"; };
|
01C851D023CF97FE0021F976 /* ActionBackModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionBackModel.swift; sourceTree = "<group>"; };
|
||||||
01DF561321F90ADC00CC099B /* Dictionary+MFConvenience.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dictionary+MFConvenience.swift"; sourceTree = "<group>"; };
|
01DF561321F90ADC00CC099B /* Dictionary+MFConvenience.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dictionary+MFConvenience.swift"; sourceTree = "<group>"; };
|
||||||
@ -613,6 +615,7 @@
|
|||||||
AFBB967F1FBA3A9A0008D868 /* MVMCoreAlertHandler.m */,
|
AFBB967F1FBA3A9A0008D868 /* MVMCoreAlertHandler.m */,
|
||||||
AFBB96801FBA3A9A0008D868 /* MVMCoreAlertObject.h */,
|
AFBB96801FBA3A9A0008D868 /* MVMCoreAlertObject.h */,
|
||||||
AFBB96811FBA3A9A0008D868 /* MVMCoreAlertObject.m */,
|
AFBB96811FBA3A9A0008D868 /* MVMCoreAlertObject.m */,
|
||||||
|
0184D3E224B8D0C600A05369 /* MVMCoreAlertObject+Swift.swift */,
|
||||||
AFBB96821FBA3A9A0008D868 /* MVMCoreAlertOperation.h */,
|
AFBB96821FBA3A9A0008D868 /* MVMCoreAlertOperation.h */,
|
||||||
AFBB96831FBA3A9A0008D868 /* MVMCoreAlertOperation.m */,
|
AFBB96831FBA3A9A0008D868 /* MVMCoreAlertOperation.m */,
|
||||||
AFBB96841FBA3A9A0008D868 /* MVMCoreTopAlertAnimationDelegateProtocol.h */,
|
AFBB96841FBA3A9A0008D868 /* MVMCoreTopAlertAnimationDelegateProtocol.h */,
|
||||||
@ -903,6 +906,7 @@
|
|||||||
AFBB96BA1FBA3CEC0008D868 /* MVMCoreActionHandler.m in Sources */,
|
AFBB96BA1FBA3CEC0008D868 /* MVMCoreActionHandler.m in Sources */,
|
||||||
AFBB96ED1FBA4A260008D868 /* MFHardCodedServerResponse.m in Sources */,
|
AFBB96ED1FBA4A260008D868 /* MFHardCodedServerResponse.m in Sources */,
|
||||||
AF43A74D1FC6109F008E9347 /* MVMCoreSessionObject.m in Sources */,
|
AF43A74D1FC6109F008E9347 /* MVMCoreSessionObject.m in Sources */,
|
||||||
|
0184D3E324B8D0C600A05369 /* MVMCoreAlertObject+Swift.swift in Sources */,
|
||||||
D282AAB62240085300C46919 /* MVMCoreGetterUtility+Extension.swift in Sources */,
|
D282AAB62240085300C46919 /* MVMCoreGetterUtility+Extension.swift in Sources */,
|
||||||
AFBB965F1FBA3A570008D868 /* MFFreebeeOperation.m in Sources */,
|
AFBB965F1FBA3A570008D868 /* MFFreebeeOperation.m in Sources */,
|
||||||
AFBB96901FBA3A9A0008D868 /* MVMCoreNavigationObject.m in Sources */,
|
AFBB96901FBA3A9A0008D868 /* MVMCoreNavigationObject.m in Sources */,
|
||||||
|
|||||||
@ -316,13 +316,9 @@ NSString * const KeyActionTypeOpen = @"openPage";
|
|||||||
- (void)showAlert:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData delegateObject:(nullable DelegateObject *)delegateObject {
|
- (void)showAlert:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData delegateObject:(nullable DelegateObject *)delegateObject {
|
||||||
|
|
||||||
MVMCoreErrorObject *error = nil;
|
MVMCoreErrorObject *error = nil;
|
||||||
MVMCoreAlertObject *alertObject = [MVMCoreAlertObject alertObjectWithAction:actionInformation
|
MVMCoreAlertObject *alertObject = [MVMCoreAlertObject alertObjectWithAction:actionInformation additionalData:additionalData delegateObject:delegateObject error:&error];
|
||||||
additionalData:additionalData
|
if ([delegateObject.actionDelegate respondsToSelector:@selector(willShowPopupWithAlertObject:alertJson:)]) {
|
||||||
delegateObject:delegateObject
|
[delegateObject.actionDelegate willShowPopupWithAlertObject:alertObject alertJson:actionInformation];
|
||||||
error:&error];
|
|
||||||
if ([delegateObject.actionDelegate respondsToSelector:@selector(willShowTopAlertWithAlertObject:alertJson:)]) {
|
|
||||||
alertObject = [delegateObject.actionDelegate willShowTopAlertWithAlertObject:alertObject
|
|
||||||
alertJson:actionInformation];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (alertObject) {
|
if (alertObject) {
|
||||||
|
|||||||
42
MVMCore/MVMCore/AlertHandling/MVMCoreAlertObject+Swift.swift
Normal file
42
MVMCore/MVMCore/AlertHandling/MVMCoreAlertObject+Swift.swift
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
//
|
||||||
|
// MVMCoreAlertObject+Swift.swift
|
||||||
|
// MVMCore
|
||||||
|
//
|
||||||
|
// Created by Suresh, Kamlesh on 7/10/20.
|
||||||
|
// Copyright © 2020 myverizon. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
public extension MVMCoreAlertObject {
|
||||||
|
|
||||||
|
@objc static func alertObjectWith(action actionJson: [AnyHashable : Any]?, additionalData: [AnyHashable : Any]?, delegateObject: DelegateObject?, error: AutoreleasingUnsafeMutablePointer<MVMCoreErrorObject?>?) -> MVMCoreAlertObject? {
|
||||||
|
|
||||||
|
guard let alertJson = actionJson?.optionalDictionaryForKey("alert"),
|
||||||
|
let actionsList = alertJson.optionalArrayForKey("alertActions") as? [[AnyHashable : Any]] else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var actionsForAlert:[UIAlertAction] = []
|
||||||
|
for actionJson in actionsList {
|
||||||
|
let style = UIAlertAction.Style(rawValue: Int(actionJson.int32ForKey("style"))) ?? UIAlertAction.Style.default
|
||||||
|
let alertAction = UIAlertAction(title: actionJson.stringForkey(KeyTitle), style: style) { (action) in
|
||||||
|
MVMCoreActionHandler.shared()?.handleAction(with: actionJson.dictionaryForKey("action"), additionalData: additionalData, delegateObject: delegateObject)
|
||||||
|
}
|
||||||
|
actionsForAlert.append(alertAction)
|
||||||
|
}
|
||||||
|
|
||||||
|
let alertTitle = alertJson.optionalStringForKey(KeyTitle)
|
||||||
|
let alertMessage = alertJson.optionalStringForKey(KeyMessage)
|
||||||
|
|
||||||
|
if alertTitle != nil || alertMessage != nil {
|
||||||
|
let alert = MVMCoreAlertObject(popupAlertWithTitle: alertTitle, message: alertMessage, actions: actionsForAlert, isGreedy: true)
|
||||||
|
return alert
|
||||||
|
}
|
||||||
|
|
||||||
|
if let errorObject = MVMCoreErrorObject(title: nil, message: MVMCoreGetterUtility.hardcodedString(withKey: HardcodedErrorUnableToProcess), code: ErrorCode.popupFailed.rawValue, domain: ErrorDomainNative, location: String(describing: self)) {
|
||||||
|
error?.pointee = errorObject
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -68,6 +68,5 @@ typedef void (^TextFieldErrorHandler)(NSArray * _Nonnull fieldErrors);
|
|||||||
+ (nullable instancetype)alertObjectForLoadObject:(nullable MVMCoreLoadObject *)loadObject error:(nullable MVMCoreErrorObject *)error actionDelegate:(nullable NSObject <MVMCoreLoadDelegateProtocol,MVMCorePresentationDelegateProtocol,MVMCoreActionDelegateProtocol>*)actionDelegate __deprecated;
|
+ (nullable instancetype)alertObjectForLoadObject:(nullable MVMCoreLoadObject *)loadObject error:(nullable MVMCoreErrorObject *)error actionDelegate:(nullable NSObject <MVMCoreLoadDelegateProtocol,MVMCorePresentationDelegateProtocol,MVMCoreActionDelegateProtocol>*)actionDelegate __deprecated;
|
||||||
+ (nullable instancetype)alertObjectForPageType:(nullable NSString *)pageType responseInfo:(nullable NSDictionary *)responseInfo additionalData:(nullable NSDictionary *)additionalData actionDelegate:(nullable NSObject <MVMCoreLoadDelegateProtocol,MVMCorePresentationDelegateProtocol,MVMCoreActionDelegateProtocol>*)actionDelegate __deprecated;
|
+ (nullable instancetype)alertObjectForPageType:(nullable NSString *)pageType responseInfo:(nullable NSDictionary *)responseInfo additionalData:(nullable NSDictionary *)additionalData actionDelegate:(nullable NSObject <MVMCoreLoadDelegateProtocol,MVMCorePresentationDelegateProtocol,MVMCoreActionDelegateProtocol>*)actionDelegate __deprecated;
|
||||||
+ (nullable instancetype)alertObjectWithPage:(nullable NSDictionary *)page isGreedy:(BOOL)isGreedy additionalData:(nullable NSDictionary *)additionalData delegate:(nullable NSObject <MVMCoreLoadDelegateProtocol,MVMCorePresentationDelegateProtocol,MVMCoreActionDelegateProtocol>*)delegate error:(MVMCoreErrorObject *_Nullable *_Nullable)error __deprecated;
|
+ (nullable instancetype)alertObjectWithPage:(nullable NSDictionary *)page isGreedy:(BOOL)isGreedy additionalData:(nullable NSDictionary *)additionalData delegate:(nullable NSObject <MVMCoreLoadDelegateProtocol,MVMCorePresentationDelegateProtocol,MVMCoreActionDelegateProtocol>*)delegate error:(MVMCoreErrorObject *_Nullable *_Nullable)error __deprecated;
|
||||||
+ (nullable instancetype)alertObjectWithAction:(nullable NSDictionary *)actionJson additionalData:(nullable NSDictionary *)additionalData delegateObject:(nullable DelegateObject *)delegateObject error:(MVMCoreErrorObject *_Nullable *_Nullable)error;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@ -299,43 +299,4 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (nullable instancetype)alertObjectWithAction:(nullable NSDictionary *)actionJson additionalData:(nullable NSDictionary *)additionalData delegateObject:(nullable DelegateObject *)delegateObject error:(MVMCoreErrorObject *_Nullable *_Nullable)error {
|
|
||||||
|
|
||||||
NSDictionary *alertJson = [actionJson dict:@"alert"];
|
|
||||||
MVMCoreAlertObject *alert = [[MVMCoreAlertObject alloc] init];
|
|
||||||
alert.title = [alertJson stringForKey:KeyTitle];
|
|
||||||
alert.message = [alertJson stringForKey:KeyMessage];
|
|
||||||
alert.type = MFAlertTypePopup;
|
|
||||||
alert.isGreedy = YES;
|
|
||||||
alert.alertStyle = UIAlertControllerStyleAlert;
|
|
||||||
|
|
||||||
NSArray <NSDictionary *> *actions = [alertJson array:@"alertActions"];
|
|
||||||
NSMutableArray <UIAlertAction *> *actionsForAlert = [NSMutableArray array];
|
|
||||||
for (NSDictionary *actionMap in actions) {
|
|
||||||
[actionsForAlert addObject:[UIAlertAction actionWithTitle:[actionMap stringForKey:KeyTitle]
|
|
||||||
style:UIAlertActionStyleDefault
|
|
||||||
handler:^(UIAlertAction * _Nonnull action) {
|
|
||||||
[[MVMCoreActionHandler sharedActionHandler] handleActionWithDictionary:[actionMap dict:@"action"]
|
|
||||||
additionalData:additionalData
|
|
||||||
delegateObject:delegateObject];
|
|
||||||
}]];
|
|
||||||
}
|
|
||||||
alert.actions = actionsForAlert;
|
|
||||||
|
|
||||||
if ((alert.title.length > 0 || alert.message.length > 0) && alert.actions.count > 0) {
|
|
||||||
return alert;
|
|
||||||
} else {
|
|
||||||
if (error) {
|
|
||||||
*error = [[MVMCoreErrorObject alloc] initWithTitle:nil messageToLog:[MVMCoreGetterUtility hardcodedStringWithKey:HardcodedErrorUnableToProcess]
|
|
||||||
code:ErrorCodePopupFailed
|
|
||||||
domain:ErrorDomainNative
|
|
||||||
location:@""];
|
|
||||||
}
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@ -11,25 +11,32 @@ import UIKit
|
|||||||
public class AlertButtonModel: Codable {
|
public class AlertButtonModel: Codable {
|
||||||
public var title: String
|
public var title: String
|
||||||
public var action: ActionModelProtocol
|
public var action: ActionModelProtocol
|
||||||
public init(_ title: String,_ action: ActionModelProtocol) {
|
public var style: Int = 0
|
||||||
|
public init(_ title: String,_ action: ActionModelProtocol,_ style: Int) {
|
||||||
self.title = title
|
self.title = title
|
||||||
self.action = action
|
self.action = action
|
||||||
|
self.style = style
|
||||||
}
|
}
|
||||||
|
|
||||||
private enum CodingKeys: String, CodingKey {
|
private enum CodingKeys: String, CodingKey {
|
||||||
case title
|
case title
|
||||||
case action
|
case action
|
||||||
|
case style
|
||||||
}
|
}
|
||||||
|
|
||||||
required public init(from decoder: Decoder) throws {
|
required public init(from decoder: Decoder) throws {
|
||||||
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
|
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
|
||||||
title = try typeContainer.decode(String.self, forKey: .title)
|
title = try typeContainer.decode(String.self, forKey: .title)
|
||||||
|
if let style = try? typeContainer.decodeIfPresent(Int.self, forKey: .style) {
|
||||||
|
self.style = style
|
||||||
|
}
|
||||||
action = try typeContainer.decodeModel(codingKey: .action)
|
action = try typeContainer.decodeModel(codingKey: .action)
|
||||||
}
|
}
|
||||||
|
|
||||||
open func encode(to encoder: Encoder) throws {
|
open func encode(to encoder: Encoder) throws {
|
||||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||||
try container.encode(title, forKey: .title)
|
try container.encode(title, forKey: .title)
|
||||||
|
try container.encode(style, forKey: .style)
|
||||||
try container.encodeModel(action, forKey: .action)
|
try container.encodeModel(action, forKey: .action)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import "MVMCoreRequestParameters.h"
|
#import "MVMCoreRequestParameters.h"
|
||||||
|
|
||||||
#define ENABLE_HARD_CODED_RESPONSE 0 && DEBUG
|
#define ENABLE_HARD_CODED_RESPONSE 1 && DEBUG
|
||||||
|
|
||||||
#if ENABLE_HARD_CODED_RESPONSE
|
#if ENABLE_HARD_CODED_RESPONSE
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user