public override MvxBasePresentationAttribute CreatePresentationAttribute(Type viewModelType, Type viewType) { if (viewType.GetTypeInfo().IsSubclassOf(typeof(ContentPage))) { MvxFormsLog.Instance.Trace($"PresentationAttribute not found for {viewModelType.Name}. " + $"Assuming ContentPage presentation"); return(new MvxContentPagePresentationAttribute() { ViewType = viewType, ViewModelType = viewModelType }); } if (viewType.GetTypeInfo().IsSubclassOf(typeof(CarouselPage))) { MvxFormsLog.Instance.Trace($"PresentationAttribute not found for {viewModelType.Name}. " + $"Assuming CarouselPage presentation"); return(new MvxCarouselPagePresentationAttribute() { ViewType = viewType, ViewModelType = viewModelType }); } if (viewType.GetTypeInfo().IsSubclassOf(typeof(TabbedPage))) { MvxFormsLog.Instance.Trace($"PresentationAttribute not found for {viewModelType.Name}. " + $"Assuming TabbedPage presentation"); return(new MvxTabbedPagePresentationAttribute() { ViewType = viewType, ViewModelType = viewModelType }); } if (viewType.GetTypeInfo().IsSubclassOf(typeof(MasterDetailPage))) { MvxFormsLog.Instance.Trace($"PresentationAttribute not found for {viewModelType.Name}. " + $"Assuming MasterDetailPage presentation"); return(new MvxMasterDetailPagePresentationAttribute() { ViewType = viewType, ViewModelType = viewModelType }); } if (viewType.GetTypeInfo().IsSubclassOf(typeof(NavigationPage))) { MvxFormsLog.Instance.Trace($"PresentationAttribute not found for {viewModelType.Name}. " + $"Assuming NavigationPage presentation"); return(new MvxNavigationPagePresentationAttribute() { ViewType = viewType, ViewModelType = viewModelType }); } return(PlatformPresenter.CreatePresentationAttribute(viewModelType, viewType)); }
protected virtual Page CloseAndCreatePage(Type view, MvxViewModelRequest request, MvxPagePresentationAttribute attribute, bool closeModal = true, bool closePlatformViews = true, bool showPlatformViews = true) { if (closeModal) { CloseAllModals(); } if (closePlatformViews) { PlatformPresenter.ClosePlatformViews(); } if (showPlatformViews) { PlatformPresenter.ShowPlatformHost(attribute.HostViewModelType); } return(CreatePage(view, request, attribute)); }