private TogglFoundation(Builder builder) { builder.EnsureValidity(); Version = builder.Version; DataSource = builder.DataSource; Database = builder.Database; UserAgent = builder.UserAgent; Scheduler = builder.Scheduler; ApiFactory = builder.ApiFactory; TimeService = builder.TimeService; GoogleService = builder.GoogleService; RatingService = builder.RatingService; ApiEnvironment = builder.ApiEnvironment; LicenseProvider = builder.LicenseProvider; ShortcutCreator = builder.ShortcutCreator; AnalyticsService = builder.AnalyticsService; StopwatchProvider = builder.StopwatchProvider; PlatformInfo = builder.PlatformInfo; BackgroundService = builder.BackgroundService; BackgroundSyncService = builder.BackgroundSyncService; SchedulerProvider = builder.SchedulerProvider; NotificationService = builder.NotificationService; RemoteConfigService = builder.RemoteConfigService; IntentDonationService = builder.IntentDonationService; PrivateSharedStorageService = builder.PrivateSharedStorageService; SuggestionProviderContainer = builder.SuggestionProviderContainer; AutomaticSyncingService = builder.AutomaticSyncingService; }
public SyncManager( ISyncStateQueue queue, IStateMachineOrchestrator orchestrator, IAnalyticsService analyticsService, ILastTimeUsageStorage lastTimeUsageStorage, ITimeService timeService, IStopwatchProvider stopwatchProvider, IAutomaticSyncingService automaticSyncingService) { Ensure.Argument.IsNotNull(queue, nameof(queue)); Ensure.Argument.IsNotNull(orchestrator, nameof(orchestrator)); Ensure.Argument.IsNotNull(analyticsService, nameof(analyticsService)); Ensure.Argument.IsNotNull(lastTimeUsageStorage, nameof(lastTimeUsageStorage)); Ensure.Argument.IsNotNull(timeService, nameof(timeService)); Ensure.Argument.IsNotNull(stopwatchProvider, nameof(stopwatchProvider)); Ensure.Argument.IsNotNull(automaticSyncingService, nameof(automaticSyncingService)); this.queue = queue; this.orchestrator = orchestrator; this.analyticsService = analyticsService; this.lastTimeUsageStorage = lastTimeUsageStorage; this.timeService = timeService; this.stopwatchProvider = stopwatchProvider; this.automaticSyncingService = automaticSyncingService; progress = new BehaviorSubject <SyncProgress>(SyncProgress.Unknown); ProgressObservable = progress.AsObservable(); errors = new Subject <Exception>(); Errors = errors.AsObservable(); orchestrator.SyncCompleteObservable.Subscribe(syncOperationCompleted); isFrozen = false; automaticSyncingService.Start(this); }
public static ISyncManager CreateSyncManager( ITogglDatabase database, ITogglApi api, ITogglDataSource dataSource, ITimeService timeService, IAnalyticsService analyticsService, ILastTimeUsageStorage lastTimeUsageStorage, IScheduler scheduler, IAutomaticSyncingService automaticSyncingService) { var queue = new SyncStateQueue(); var entryPoints = new StateMachineEntryPoints(); var transitions = new TransitionHandlerProvider(analyticsService); ConfigureTransitions(transitions, database, api, dataSource, scheduler, timeService, analyticsService, lastTimeUsageStorage, entryPoints, queue); var stateMachine = new StateMachine(transitions, scheduler); var orchestrator = new StateMachineOrchestrator(stateMachine, entryPoints); return(new SyncManager(queue, orchestrator, analyticsService, lastTimeUsageStorage, timeService, automaticSyncingService)); }
public Builder WithAutomaticSyncingService(IAutomaticSyncingService automaticSyncingService) { AutomaticSyncingService = automaticSyncingService; return(this); }