Digital PCT265 story MVAPCT-48 - Code cleanup
This commit is contained in:
parent
8235aff75f
commit
25b79530eb
@ -39,49 +39,37 @@ public enum PopBackError: MVMError, CustomStringConvertible {
|
|||||||
@objc
|
@objc
|
||||||
public extension MVMCoreLoadRequestOperation {
|
public extension MVMCoreLoadRequestOperation {
|
||||||
|
|
||||||
|
/// Attempt to navigate to the controller with the given load object. Return the controller that we navigated to if successful.
|
||||||
@objc
|
@objc
|
||||||
@MainActor
|
@MainActor
|
||||||
func goToViewController(loadObject: MVMCoreLoadObject) async -> UIViewController? {
|
func goToViewController(loadObject: MVMCoreLoadObject) async -> UIViewController? {
|
||||||
guard loadObject.requestParameters?.replaceViewIfOnStackElseLoadWithStyle == true,
|
guard loadObject.requestParameters?.replaceViewIfOnStackElseLoadWithStyle == true,
|
||||||
let pageType = loadObject.pageType else {
|
let pageType = loadObject.pageType else {
|
||||||
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: Controller shouldn't be replaced.")
|
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "\(type(of: self)): A new controller should be made and any existing shouldn't be replaced. pageType:\(String(describing: loadObject.pageType))")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
guard let newVC = MVMCoreViewControllerMappingObject.shared()?.createMFViewController(ofTemplate: loadObject.pageJSON?.optionalStringForKey("template"), pageType: pageType) else {
|
let template = loadObject.pageJSON?.optionalStringForKey("template")
|
||||||
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: Failed to create a new controller")
|
guard let controllerMappingObject = MVMCoreViewControllerMappingObject.shared()?.getViewControllerMapping(forTemplate: template, pageType: pageType) else {
|
||||||
|
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "\(type(of: self)): Failed to create a new controller. template:\(String(describing: template)) page:\(pageType)")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
let type = type(of: newVC)
|
var controllerType: AnyClass?
|
||||||
guard let viewController = await NavigationHandler.shared().navigateToViewController(of: pageType, controllerType: type) else {
|
if let programmaticMapping = controllerMappingObject as? MVMCoreViewControllerProgrammaticMappingObject {
|
||||||
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: No matching controller found for \(pageType) \(type).")
|
controllerType = programmaticMapping.viewControllerClass
|
||||||
|
} else if let newVC = MVMCoreViewControllerMappingObject.shared()?.createMFViewController(ofTemplate: loadObject.pageJSON?.optionalStringForKey("template"), pageType: pageType) {
|
||||||
|
// Need to create the view controller to fetch the type.
|
||||||
|
controllerType = type(of: newVC)
|
||||||
|
} else {
|
||||||
|
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "\(type(of: self)): Failed to create a new controller. template:\(String(describing: template)) page:\(pageType)")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: Navigated to controller of \(pageType) \(type).")
|
|
||||||
|
guard let viewController = await NavigationHandler.shared().navigateToViewController(of: pageType, controllerType: controllerType) else {
|
||||||
|
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "\(type(of: self)): No matching controller found in the hierarchy. Will need to create a new controller. pageType:\(pageType) controllerType:\(String(describing: controllerType)).")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "\(type(of: self)): Navigated to controller. pageType:\(pageType) controllerType:\(String(describing: controllerType))")
|
||||||
return viewController
|
return viewController
|
||||||
// MVMCoreLoadRequestOperation.loadFinished(loadObject, loadedViewController: nil, errorObject: nil)
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// guard let index = NavigationHandler.shared().navigationController?.viewControllers.firstIndex(where: { controller in
|
|
||||||
// MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: Compare controller pageType:\(pageType) controllerPageType:\((controller as? MVMCoreViewControllerProtocol)?.pageType) type:\(type(of: controller)) newType:\(type(of: newVC))")
|
|
||||||
// return (controller as? MVMCoreViewControllerProtocol)?.pageType == pageType && type(of: controller) == type(of: newVC)
|
|
||||||
// }) else {
|
|
||||||
// MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: No matching controller found.")
|
|
||||||
// return true
|
|
||||||
// }
|
|
||||||
// if index == NavigationHandler.shared().navigationController!.viewControllers.count - 1 {
|
|
||||||
// MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: Controller is already showing.")
|
|
||||||
// Task {
|
|
||||||
// MVMCoreLoadRequestOperation.loadFinished(loadObject, loadedViewController: nil, errorObject: nil)
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: Pop back to controller.")
|
|
||||||
// guard let operation = try? NavigationHandler.shared().getOperationPopToViewController(with: pageType, navigationController: loadObject.requestParameters?.navigationController, delegateObject: loadObject.delegateObject, animated: !(loadObject.requestParameters?.shouldNotAnimatePush ?? false)) else { return true }
|
|
||||||
// Task {
|
|
||||||
// await navigate(with: operation, loadObject: loadObject)
|
|
||||||
// MVMCoreLoadRequestOperation.loadFinished(loadObject, loadedViewController: nil, errorObject: nil)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc
|
@objc
|
||||||
@ -117,11 +105,9 @@ public extension MVMCoreLoadRequestOperation {
|
|||||||
func navigate(with navigationOperation: NavigationOperation, loadObject: MVMCoreLoadObject?) async {
|
func navigate(with navigationOperation: NavigationOperation, loadObject: MVMCoreLoadObject?) async {
|
||||||
// stop any loading animation we may have started if we are about to display
|
// stop any loading animation we may have started if we are about to display
|
||||||
cancellable = NavigationHandler.shared().onNavigation
|
cancellable = NavigationHandler.shared().onNavigation
|
||||||
.filter { $0.0 == .willNavigate }
|
.filter { $0.0 == .willNavigate && navigationOperation == $0.1 }
|
||||||
.sink { [weak self] (event, operation) in
|
.sink { [weak self] (event, operation) in
|
||||||
if navigationOperation == operation {
|
self?.stopLoadingAnimationIfNeeded()
|
||||||
self?.stopLoadingAnimationIfNeeded()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
await NavigationHandler.shared().navigate(with: navigationOperation)
|
await NavigationHandler.shared().navigate(with: navigationOperation)
|
||||||
cancellable = nil
|
cancellable = nil
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
- (nullable NSArray*)getAccessibilityElements; //AccessibilityElements that are owned by Manager.
|
- (nullable NSArray*)getAccessibilityElements; //AccessibilityElements that are owned by Manager.
|
||||||
|
|
||||||
/// Attempt to navigate to the controller. Return true if navigation occured.
|
/// Attempt to navigate to the controller. Return the controller that we navigated to if successful.
|
||||||
- (void)navigateToViewControllerOfPageType:(nonnull NSString *)pageType controllerType:(_Nullable Class)controllerType completionHandler:(void (^ __nullable)(UIViewController * _Nullable viewController))completionHandler;
|
- (void)navigateToViewControllerOfPageType:(nonnull NSString *)pageType controllerType:(_Nullable Class)controllerType completionHandler:(void (^ __nullable)(UIViewController * _Nullable viewController))completionHandler;
|
||||||
|
|
||||||
@optional
|
@optional
|
||||||
|
|||||||
@ -47,6 +47,9 @@
|
|||||||
// For pages external to the mobile first framework to be added to the view controller mapping.
|
// For pages external to the mobile first framework to be added to the view controller mapping.
|
||||||
- (void)addToTemplateViewControllerMapping:(nullable NSDictionary <NSString *,NSObject <MVMCoreViewControllerMappingProtocol>*>*)map;
|
- (void)addToTemplateViewControllerMapping:(nullable NSDictionary <NSString *,NSObject <MVMCoreViewControllerMappingProtocol>*>*)map;
|
||||||
|
|
||||||
|
// Transition function: A mix of new and legacy.
|
||||||
|
- (nullable NSObject <MVMCoreViewControllerMappingProtocol>*)getViewControllerMappingForTemplate:(nullable NSString *)templateID pageType:(nullable NSString *)pageType;
|
||||||
|
|
||||||
// Transition function: A mix of new and legacy.
|
// Transition function: A mix of new and legacy.
|
||||||
- (nullable UIViewController <MVMCoreViewControllerProtocol> *)createMFViewControllerOfTemplate:(nullable NSString *)templateID pageType:(nullable NSString *)pageType;
|
- (nullable UIViewController <MVMCoreViewControllerProtocol> *)createMFViewControllerOfTemplate:(nullable NSString *)templateID pageType:(nullable NSString *)pageType;
|
||||||
|
|
||||||
|
|||||||
@ -46,6 +46,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (nullable NSObject <MVMCoreViewControllerMappingProtocol>*)getViewControllerMappingForTemplate:(nullable NSString *)templateID pageType:(nullable NSString *)pageType {
|
||||||
|
if (templateID) {
|
||||||
|
return [self getViewControllerMappingForTemplate:templateID];
|
||||||
|
} else if (pageType) {
|
||||||
|
return [self getViewControllerMappingForPageType:pageType];
|
||||||
|
} else {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Transition function: A mix of new and legacy.
|
// Transition function: A mix of new and legacy.
|
||||||
- (nullable UIViewController <MVMCoreViewControllerProtocol> *)createMFViewControllerOfTemplate:(nullable NSString *)templateID pageType:(nullable NSString *)pageType {
|
- (nullable UIViewController <MVMCoreViewControllerProtocol> *)createMFViewControllerOfTemplate:(nullable NSString *)templateID pageType:(nullable NSString *)pageType {
|
||||||
if (templateID) {
|
if (templateID) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user