public static void Initialize(this FoundationMvvmCross self, App app, IScheduler scheduler) { Func <ITogglDataSource, ISyncManager> createSyncManager(ITogglApi api) => dataSource => TogglSyncManager.CreateSyncManager(self.Database, api, dataSource, self.TimeService, self.AnalyticsService, retryDelayLimit, scheduler); ITogglDataSource createDataSource(ITogglApi api) => new TogglDataSource(api, self.Database, self.TimeService, self.ApiErrorHandlingService, self.BackgroundService, createSyncManager(api), TimeSpan.FromMinutes(5), self.ShortcutCreator) .RegisterServices(); var loginManager = new LoginManager(self.ApiFactory, self.Database, self.GoogleService, self.ShortcutCreator, self.AccessRestrictionStorage, createDataSource); app.Initialize(loginManager, self.NavigationService, self.AccessRestrictionStorage); }
public static FoundationMvvmCross RevokeNewUserIfNeeded(this FoundationMvvmCross self) { var now = self.TimeService.CurrentDateTime; var lastUsed = self.OnboardingStorage.GetLastOpened(); self.OnboardingStorage.SetLastOpened(now); if (lastUsed == null) { return(self); } var lastUsedDate = DateTimeOffset.Parse(lastUsed); var offset = now - lastUsedDate; if (offset < TimeSpan.FromDays(newUserThreshold)) { return(self); } self.OnboardingStorage.SetIsNewUser(false); return(self); }