/// <summary> /// Subscribes to progress report. /// </summary> /// <param name="id">The identifier.</param> /// <param name="disposables">The disposables.</param> private void SubscribeToProgressReport(long id, CompositeDisposable disposables) { definitionLoadHandler?.Dispose(); definitionLoadHandler = modDefinitionLoadHandler.Subscribe(s => { var message = localizationManager.GetResource(LocalizationResources.Mod_Actions.ConflictSolver.Overlay_Conflict_Solver_Loading_Definitions); var overlayProgress = Smart.Format(localizationManager.GetResource(LocalizationResources.Mod_Actions.ConflictSolver.Overlay_Conflict_Solver_Progress), new { PercentDone = s.Percentage.ToLocalizedPercentage(), Count = 1, TotalCount = 4 }); TriggerOverlay(id, true, message, overlayProgress); }).DisposeWith(disposables); modInvalidReplaceHandler?.Dispose(); modInvalidReplaceHandler = modDefinitionInvalidReplaceHandler.Subscribe(s => { var message = localizationManager.GetResource(LocalizationResources.Mod_Actions.ConflictSolver.Overlay_Conflict_Solver_Replacing_Definitions); var overlayProgress = Smart.Format(localizationManager.GetResource(LocalizationResources.Mod_Actions.ConflictSolver.Overlay_Conflict_Solver_Progress), new { PercentDone = s.Percentage.ToLocalizedPercentage(), Count = 2, TotalCount = 4 }); TriggerOverlay(id, true, message, overlayProgress); }).DisposeWith(disposables); definitionAnalyzeLoadHandler?.Dispose(); definitionAnalyzeLoadHandler = modDefinitionAnalyzeHandler.Subscribe(s => { var message = localizationManager.GetResource(LocalizationResources.Mod_Actions.ConflictSolver.Overlay_Conflict_Solver_Analyzing_Conflicts); var overlayProgress = Smart.Format(localizationManager.GetResource(LocalizationResources.Mod_Actions.ConflictSolver.Overlay_Conflict_Solver_Progress), new { PercentDone = s.Percentage.ToLocalizedPercentage(), Count = 3, TotalCount = 4 }); TriggerOverlay(id, true, message, overlayProgress); }).DisposeWith(disposables); definitionSyncHandler?.Dispose(); definitionSyncHandler = modDefinitionPatchLoadHandler.Subscribe(s => { var message = localizationManager.GetResource(LocalizationResources.Mod_Actions.ConflictSolver.Overlay_Conflict_Solver_Analyzing_Resolved_Conflicts); var overlayProgress = Smart.Format(localizationManager.GetResource(LocalizationResources.Mod_Actions.ConflictSolver.Overlay_Conflict_Solver_Progress), new { PercentDone = s.Percentage.ToLocalizedPercentage(), Count = 4, TotalCount = 4 }); TriggerOverlay(id, true, message, overlayProgress); }).DisposeWith(disposables); }