/// <summary> /// コンストラクタ /// </summary> public MentionsViewModel() { MentionsStack.Initialize(); this.Mentions = new Mentions(); this._IsVisibleBackButton = false; this._TimelineItems = new ObservableCollection <TimelineItemProperties>(); this.CompositeDisposable.Add( new PropertyChangedEventListener(this.Mentions, (_, __) => { switch (__.PropertyName) { case nameof(this.Mentions.ScreenNames): this.RaisePropertyChanged(() => this.ScreenNames); break; case nameof(this.Mentions.IsOpen): this.RaisePropertyChanged(() => this.IsOpen); break; case nameof(this.Mentions.ProfileImageUrl): this.RaisePropertyChanged(() => this.ProfileImageUrl); break; case nameof(this.Mentions.TokenSuffix): this.RaisePropertyChanged(() => this.TokenSuffix); break; } }) ); this.CloseCommand = new RelayCommand(this.ToggleOpen); }
/// <summary> /// メンションを受け取ったとき /// </summary> /// <param name="tokenSuffix">アカウント番号</param> /// <param name="statusMessage">メンション</param> private void ReceiveMention(int tokenSuffix, StatusMessage statusMessage) { if (statusMessage.Status.CurrentUserRetweet != null) { return; } if (Properties.Settings.Default.IsNotify) { var text = ""; if (statusMessage.Status.ExtendedTweet != null && !string.IsNullOrEmpty(statusMessage.Status.ExtendedTweet.FullText)) { text = statusMessage.Status.ExtendedTweet.FullText; } else if (statusMessage.Status.FullText != null && !string.IsNullOrEmpty(statusMessage.Status.FullText)) { text = statusMessage.Status.FullText; } else { text = statusMessage.Status.Text; } CommonMethods.PlaySoundEffect(SoundEffect.Notification1); this.Notify(statusMessage.Status.User.Name + "さんからのメンション\n" + text, NotificationType.Normal); } if (statusMessage.Status.RetweetedStatus != null) { NotificationsStack.StackNotification( statusMessage.Status.User, statusMessage.Status.RetweetedStatus.User, Timeline.NotificationPropertiesType.Retweeted, statusMessage.Status.User.Name + "さんにツイートがリツイートされました。\n" + statusMessage.Status.RetweetedStatus.Text, statusMessage.Status.RetweetedStatus.Id); } else { MentionsStack.StackMention(statusMessage.Status); } }