qwen edit

This commit is contained in:
Курнат Андрей
2026-02-18 22:19:29 +03:00
parent 23a3563524
commit f50c918f10
3 changed files with 32 additions and 51 deletions

View File

@@ -46,17 +46,11 @@ public partial class ReaderViewModel : BaseViewModel
[ObservableProperty]
private int _totalPages = 1;
[ObservableProperty]
private bool _isLocationsLoaded;
// Это свойство будет обновляться автоматически при изменении любого из полей выше
public string ChapterProgressText => $"{ChapterCurrentPage} из {ChapterTotalPages}";
// Это свойство будет обновляться автоматически при изменении любого из полей выше
// Пока страницы не посчитаны, показываем 0%
public string ProgressText => !_isLocationsLoaded || TotalPages <= 0
? "0%"
: $"{CurrentPage} из {TotalPages}";
// Это свойство показывает процент прогресса
public string ProgressText => $"{CurrentPage}%";
// Чтобы ChapterProgressText уведомлял интерфейс, добавим частичные методы (особенность Toolkit)
partial void OnChapterCurrentPageChanged(int value) => OnPropertyChanged(nameof(ChapterProgressText));
@@ -65,7 +59,6 @@ public partial class ReaderViewModel : BaseViewModel
// Чтобы ProgressText уведомлял интерфейс, добавим частичные методы (особенность Toolkit)
partial void OnCurrentPageChanged(int value) => OnPropertyChanged(nameof(ProgressText));
partial void OnTotalPagesChanged(int value) => OnPropertyChanged(nameof(ProgressText));
partial void OnIsLocationsLoadedChanged(bool value) => OnPropertyChanged(nameof(ProgressText));
public List<string> AvailableFonts { get; } = new()
{
@@ -116,25 +109,6 @@ public partial class ReaderViewModel : BaseViewModel
return;
}
// Проверяем, есть ли сохранённые локации (кэш)
var hasCachedLocations = !string.IsNullOrEmpty(Book.Locations);
// Если есть кэш - сразу показываем реальный прогресс
IsLocationsLoaded = hasCachedLocations;
// Если есть кэш - восстанавливаем прогресс из книги
if (hasCachedLocations)
{
CurrentPage = Book.CurrentPage > 0 ? Book.CurrentPage : 0;
TotalPages = Book.TotalPages > 0 ? Book.TotalPages : 0;
}
else
{
// Сбрасываем прогресс в 0% пока идёт подсчёт страниц
CurrentPage = 0;
TotalPages = 0;
}
var savedFontSize = await _settingsService.GetIntAsync(SettingsKeys.DefaultFontSize, Constants.Reader.DefaultFontSize);
var savedFontFamily = await _settingsService.GetAsync(SettingsKeys.DefaultFontFamily, "serif");
@@ -197,13 +171,6 @@ public partial class ReaderViewModel : BaseViewModel
}
Book.Locations = locations;
await _databaseService.UpdateBookAsync(Book);
// Локации сохранены - теперь показываем реальный прогресс
// (если ещё не был показан из кэша)
if (!IsLocationsLoaded)
{
IsLocationsLoaded = true;
}
}
public async Task SaveProgressAsync(double progress, string? cfi, string? chapter, int currentPage, int totalPages)