public SearchResultKeywordPageViewModel( HohoemaApp hohoemaApp, PageManager pageManager, MylistRegistrationDialogService mylistDialogService ) : base(hohoemaApp, pageManager, mylistDialogService, useDefaultPageTitle: false) { _ContentFinder = HohoemaApp.ContentFinder; FailLoading = new ReactiveProperty <bool>(false) .AddTo(_CompositeDisposable); LoadedPage = new ReactiveProperty <int>(1) .AddTo(_CompositeDisposable); }
public SearchResultTagPageViewModel( HohoemaApp hohoemaApp, PageManager pageManager, MylistRegistrationDialogService mylistDialogService, ContentSelectDialogService contentSelectDialogService ) : base(hohoemaApp, pageManager, mylistDialogService, useDefaultPageTitle: false) { _ContentFinder = HohoemaApp.ContentFinder; _ContentSelectDialogService = contentSelectDialogService; FailLoading = new ReactiveProperty <bool>(false) .AddTo(_CompositeDisposable); LoadedPage = new ReactiveProperty <int>(1) .AddTo(_CompositeDisposable); IsFavoriteTag = new ReactiveProperty <bool>(mode: ReactivePropertyMode.DistinctUntilChanged) .AddTo(_CompositeDisposable); CanChangeFavoriteTagState = new ReactiveProperty <bool>() .AddTo(_CompositeDisposable); AddFavoriteTagCommand = CanChangeFavoriteTagState .ToReactiveCommand() .AddTo(_CompositeDisposable); RemoveFavoriteTagCommand = IsFavoriteTag .ToReactiveCommand() .AddTo(_CompositeDisposable); IsFavoriteTag.Subscribe(async x => { if (_NowProcessFavorite) { return; } _NowProcessFavorite = true; CanChangeFavoriteTagState.Value = false; if (x) { if (await FavoriteTag()) { Debug.WriteLine(SearchOption.Keyword + "のタグをお気に入り登録しました."); } else { // お気に入り登録に失敗した場合は状態を差し戻し Debug.WriteLine(SearchOption.Keyword + "のタグをお気に入り登録に失敗"); IsFavoriteTag.Value = false; } } else { if (await UnfavoriteTag()) { Debug.WriteLine(SearchOption.Keyword + "のタグをお気に入り解除しました."); } else { // お気に入り解除に失敗した場合は状態を差し戻し Debug.WriteLine(SearchOption.Keyword + "のタグをお気に入り解除に失敗"); IsFavoriteTag.Value = true; } } CanChangeFavoriteTagState.Value = IsFavoriteTag.Value == true || HohoemaApp.FollowManager.CanMoreAddFollow(FollowItemType.Tag); _NowProcessFavorite = false; }) .AddTo(_CompositeDisposable); }