Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
            }
        }