Compare commits

..

No commits in common. "3e1581e28e1c9f4ba76309fb3df28170caff427c" and "2b36711bca5ad24e205ee0371f1cfd903debe502" have entirely different histories.

7 changed files with 19 additions and 63 deletions

View File

@ -1113,7 +1113,7 @@
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../../SharedFrameworks"; FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../../SharedFrameworks";
INFOPLIST_FILE = MVMCore/Info.plist; INFOPLIST_FILE = MVMCore/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = "$(inherited)"; LIBRARY_SEARCH_PATHS = "$(inherited)";
MARKETING_VERSION = 3.1; MARKETING_VERSION = 3.1;
@ -1140,7 +1140,7 @@
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../../SharedFrameworks"; FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../../SharedFrameworks";
INFOPLIST_FILE = MVMCore/Info.plist; INFOPLIST_FILE = MVMCore/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = "$(inherited)"; LIBRARY_SEARCH_PATHS = "$(inherited)";
MARKETING_VERSION = 3.1; MARKETING_VERSION = 3.1;

View File

@ -25,16 +25,11 @@ open class ActionRestartHandler: MVMCoreActionHandlerProtocol {
return return
} }
continuation.resume(throwing: MVMCoreError.errorObject(error)) continuation.resume(throwing: MVMCoreError.errorObject(error))
return } else {
}
if let sessionObject = MVMCoreSessionObject.sharedGlobal() {
if model.hardReset {
sessionObject.clearPersistentCache()
}
// Restarts the app (forcing any passed in page types). // Restarts the app (forcing any passed in page types).
sessionObject.restartSession(withPageType: model.pageType, request: model.requestURL, parameters: model.extraParameters?.toJSON(), clearAllVariables: true) MVMCoreSessionObject.sharedGlobal()?.restartSession(withPageType: model.pageType, request: model.requestURL, parameters: model.extraParameters?.toJSON(), clearAllVariables: true)
continuation.resume()
} }
continuation.resume()
}) })
} }
} }

View File

@ -16,7 +16,6 @@ public struct ActionRestartModel: ActionModelProtocol {
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 requestURL: URL? public var requestURL: URL?
@DecodableDefault.True public var hardReset: Bool
public var extraParameters: JSONValueDictionary? public var extraParameters: JSONValueDictionary?
public var analyticsData: JSONValueDictionary? public var analyticsData: JSONValueDictionary?
@ -27,12 +26,11 @@ public struct ActionRestartModel: ActionModelProtocol {
// MARK: - Initializer // MARK: - Initializer
//-------------------------------------------------- //--------------------------------------------------
public init(_ pageType: String? = nil, _ requestUrl: URL? = nil, hardReset: Bool? = nil, _ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) { public init(_ pageType: String? = nil, _ requestUrl: URL? = nil, _ extraParameters: JSONValueDictionary? = nil, _ analyticsData: JSONValueDictionary? = nil) {
self.pageType = pageType self.pageType = pageType
self.requestURL = requestUrl self.requestURL = requestUrl
self.extraParameters = extraParameters self.extraParameters = extraParameters
self.analyticsData = analyticsData self.analyticsData = analyticsData
self.hardReset = hardReset ?? true
} }
public func isEqual(to model: any ModelComparisonProtocol) -> Bool { public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
@ -41,6 +39,5 @@ public struct ActionRestartModel: ActionModelProtocol {
&& analyticsData == model.analyticsData && analyticsData == model.analyticsData
&& requestURL == model.requestURL && requestURL == model.requestURL
&& pageType == model.pageType && pageType == model.pageType
&& hardReset == model.hardReset
} }
} }

View File

@ -686,24 +686,19 @@
if (obj && [obj isKindOfClass:[NSDictionary class]]) { if (obj && [obj isKindOfClass:[NSDictionary class]]) {
NSDictionary *responseInfo = [obj dict:KeyResponseInfo]; NSDictionary *responseInfo = [obj dict:KeyResponseInfo];
//Response Info is missing but errorObject should be created with generic message + code + domain
if (responseInfo == nil) { if (responseInfo == nil) {
errorObject = [[MVMCoreLoadHandler sharedGlobal] errorObject = [[MVMCoreLoadHandler sharedGlobal] errorForLoadObject:loadObject withTitle:nil message:[MVMCoreGetterUtility hardcodedStringWithKey:HardcodedErrorCritical] code:ErrorCodeJSONNotDictionary domain:ErrorDomainSystem];
errorForLoadObject:loadObject }else {
withTitle:nil if (![ValueTypeSuccess isEqualToString:[responseInfo string:KeyType]]) {
message:[MVMCoreGetterUtility hardcodedStringWithKey:HardcodedErrorCritical] errorObject = [[MVMCoreLoadHandler sharedGlobal] attachLoadInformation:loadObject toError:
messageToLog:[NSString stringWithFormat:@"Module %@ is missing a %@ object.", key, KeyResponseInfo] [[MVMCoreErrorObject alloc]
code:ErrorCodeJSONNotDictionary initWithTitle:[responseInfo stringForKey:KeyErrorHeading]
domain:ErrorDomainServer]; message:[responseInfo stringForKey:KeyUserMessage]
} else if (![ValueTypeSuccess isEqualToString:[responseInfo string:KeyType]]) { messageToLog:[responseInfo stringForKey:KeyMessage]
errorObject = [[MVMCoreLoadHandler sharedGlobal] attachLoadInformation:loadObject toError: code:[[responseInfo string:KeyCode] integerValue]
[[MVMCoreErrorObject alloc] domain:ErrorDomainServer
initWithTitle:[responseInfo stringForKey:KeyErrorHeading] location:[[MVMCoreLoadHandler sharedGlobal] errorLocationForRequest:loadObject]]];
message:[responseInfo stringForKey:KeyUserMessage] }
messageToLog:[responseInfo stringForKey:KeyMessage]
code:[[responseInfo string:KeyCode] integerValue]
domain:ErrorDomainServer
location:[[MVMCoreLoadHandler sharedGlobal] errorLocationForRequest:loadObject]]];
} }
// Caches each dictionary from the array. // Caches each dictionary from the array.
[[MVMCoreCache sharedCache] addModuleToCache:obj module:key queue:nil waitUntilFinished:YES completionBlock:NULL]; [[MVMCoreCache sharedCache] addModuleToCache:obj module:key queue:nil waitUntilFinished:YES completionBlock:NULL];

View File

@ -70,35 +70,9 @@ import os
#endif #endif
} }
open func handleWarningMessage(_ message: String, category: String?) {
#if LOGGING
guard message.count < 1024 else {
getLogger(category: category).warning("\(message.prefix(300), privacy: .public)... <stdio>") // Send initial log to console.
print(message) // Print the whole on stdout.
return
}
getLogger(category: category).warning("\(message, privacy: .public)") // Assume that becaues this is a LOGGING build we want these messages to be unmasked.
#endif
}
open func handleErrorMessage(_ message: String, category: String?) {
#if LOGGING
guard message.count < 1024 else {
getLogger(category: category).error("\(message.prefix(300), privacy: .public)... <stdio>") // Send initial log to console.
print(message) // Print the whole on stdout.
return
}
getLogger(category: category).error("\(message, privacy: .public)") // Assume that becaues this is a LOGGING build we want these messages to be unmasked.
#endif
}
@objc(addErrorToLog:) @objc(addErrorToLog:)
open func addError(toLog errorObject: MVMCoreErrorObject) { open func addError(toLog errorObject: MVMCoreErrorObject) {
if errorObject.silentError { // Subclass to handle.
handleWarningMessage(errorObject.messageToLog ?? errorObject.messageToDisplay ?? "Some error occurred.", category: "Handled Exception")
} else {
handleErrorMessage(errorObject.messageToLog ?? errorObject.messageToDisplay ?? "Some error occurred.", category: "Handled Exception")
}
} }
open func logLoadFinished(_ loadObject: MVMCoreLoadObject?, loadedViewController: MVMCoreViewControllerProtocol?, error: MVMCoreErrorObject?) {} open func logLoadFinished(_ loadObject: MVMCoreLoadObject?, loadedViewController: MVMCoreViewControllerProtocol?, error: MVMCoreErrorObject?) {}

View File

@ -38,9 +38,6 @@
/// Clears the session singleton. Creates a new session NSURLSession also. /// Clears the session singleton. Creates a new session NSURLSession also.
- (void)clearSessionObject; - (void)clearSessionObject;
/// Clears any persistent cache related to the current session.
- (void)clearPersistentCache;
/// Copys string to clipboard and assigns self.clipboardString for validation /// Copys string to clipboard and assigns self.clipboardString for validation
/// Should only be used when expected string is a secure string /// Should only be used when expected string is a secure string
-(void)copyStringToClipboard :(nullable NSString *)clipboardString; -(void)copyStringToClipboard :(nullable NSString *)clipboardString;

View File

@ -53,6 +53,4 @@
self.session = [self createNSURLSession]; self.session = [self createNSURLSession];
} }
- (void)clearPersistentCache {}
@end @end