public void MarksTheUserAsNotNewWhenUsingTheAppForTheFirstTimeAfterSixtyDays() { var now = DateTimeOffset.Now; TimeService.CurrentDateTime.Returns(now); OnboardingStorage.GetLastOpened().Returns(now.AddDays(-60)); var dependencyContainer = new TestDependencyContainer { MockTimeService = TimeService, MockUserAccessManager = UserAccessManager, MockNavigationService = NavigationService, MockOnboardingStorage = OnboardingStorage, MockAccessRestrictionStorage = AccessRestrictionStorage, MockSyncManager = Substitute.For <ISyncManager>(), MockInteractorFactory = Substitute.For <IInteractorFactory>(), MockBackgroundSyncService = Substitute.For <IBackgroundSyncService>() }; var app = new AppStart(dependencyContainer); app.UpdateOnboardingProgress(); OnboardingStorage.Received().SetLastOpened(now); OnboardingStorage.Received().SetIsNewUser(false); }
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { #if !USE_PRODUCTION_API System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true; #endif #if !DEBUG Firebase.Core.App.Configure(); #endif UNUserNotificationCenter.Current.Delegate = this; UIApplication.SharedApplication.RegisterForRemoteNotifications(); Messaging.SharedInstance.Delegate = this; initializeAnalytics(); Window = new UIWindow(UIScreen.MainScreen.Bounds); Window.MakeKeyAndVisible(); setupNavigationBar(); setupTabBar(); IosDependencyContainer.EnsureInitialized(Window, this); var app = new AppStart(IosDependencyContainer.Instance); app.LoadLocalizationConfiguration(); app.UpdateOnboardingProgress(); app.SetFirstOpened(); app.SetupBackgroundSync(); var accessLevel = app.GetAccessLevel(); loginWithCredentialsIfNecessary(accessLevel); navigateAccordingToAccessLevel(accessLevel, app); var accessibilityEnabled = UIAccessibility.IsVoiceOverRunning; IosDependencyContainer.Instance.AnalyticsService.AccessibilityEnabled.Track(accessibilityEnabled); var watchservice = new WatchService(); watchservice.TryLogWatchConnectivity(); #if ENABLE_TEST_CLOUD Xamarin.Calabash.Start(); #endif return(true); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); var dependencyContainer = AndroidDependencyContainer.Instance; registerTimezoneChangedBroadcastReceiver(dependencyContainer.TimeService); registerApplicationLifecycleObserver(dependencyContainer.BackgroundService); var app = new AppStart(dependencyContainer); app.UpdateOnboardingProgress(); var accessLevel = app.GetAccessLevel(); if (accessLevel != AccessLevel.LoggedIn) { navigateAccordingToAccessLevel(accessLevel); Finish(); return; } clearAllViewModelsAndSetupRootViewModel( dependencyContainer.ViewModelCache, dependencyContainer.ViewModelLoader); var navigationUrl = Intent.Data?.ToString() ?? getTrackUrlFromProcessedText(); if (string.IsNullOrEmpty(navigationUrl)) { app.ForceFullSync(); StartActivity(typeof(MainTabBarActivity)); Finish(); return; } handleDeepLink(new Uri(navigationUrl), dependencyContainer); return; }