예제 #1
0
        public static ITweetableFilter SetupMute(FilterType type, string data)
        {
            if (Config.GlobalFilter == null)
            {
                Config.GlobalFilter = new ColumnFilter();
            }

            ITweetableFilter filter = new ITweetableFilter();

            filter.Inclusion = IncludeOrExclude.Exclude;
            filter.Type      = type;
            filter.Filter    = data;
            if (Config.DefaultMuteTime == TimeSpan.MaxValue)
            {
                filter.IsValidUntil = DateTime.MaxValue;
            }
            else
            {
                filter.IsValidUntil = DateTime.Now + (TimeSpan)Config.DefaultMuteTime;
            }

            Config.GlobalFilter.AddFilter(filter);
            Config.GlobalFilter = Config.GlobalFilter; // Force save.
            GlobalEvents.FireFiltersChanged(filter, new EventArgs());

            return(filter);
        }
예제 #2
0
        private ITweetableFilter CreateNewFilter(FilterType type, string data)
        {
            if (Config.GlobalFilter == null)
            {
                Config.GlobalFilter = new ColumnFilter();
            }

            if (Config.DefaultMuteTime == null)
            {
                Config.DefaultMuteTime = TimeSpan.FromHours(8);
            }

            ITweetableFilter filter = new ITweetableFilter();

            filter.Type   = type;
            filter.Filter = data;
            if (Config.DefaultMuteTime == TimeSpan.MaxValue)
            {
                filter.IsValidUntil = DateTime.MaxValue;
            }
            else
            {
                filter.IsValidUntil = DateTime.Now + (TimeSpan)Config.DefaultMuteTime;
            }
            filter.Inclusion = IncludeOrExclude.Exclude;

            Config.GlobalFilter.AddFilter(filter);
            Config.GlobalFilter = Config.GlobalFilter;

            return(filter);
        }
예제 #3
0
        private void ApplicationBarIconButton_Click(object sender, System.EventArgs e)
        {
            ITweetableFilter filter = new ITweetableFilter();

            if (Resource.SelectedIndex == 0)
            {
                filter.Type = FilterType.User;
            }
            else if (Resource.SelectedIndex == 1)
            {
                filter.Type = FilterType.Source;
            }
            else if (Resource.SelectedIndex == 2)
            {
                filter.Type = FilterType.Text;
            }
            else
            {
                MessageAndExit(Localization.Resources.ErrorSavingFilter);
                return;
            }

            filter.Filter = FilterText.Text;

            filter.IsValidUntil = new DateTime(
                date.Value.Value.Year,
                date.Value.Value.Month,
                date.Value.Value.Day,
                time.Value.Value.Hour,
                time.Value.Value.Minute,
                0);

            if (Inclusion.SelectedIndex == 1)
            {
                filter.Inclusion = IncludeOrExclude.Include;
            }
            else
            {
                filter.Inclusion = IncludeOrExclude.Exclude;
            }

            DataTransfer.cFilter.RemoveFilter(Filter);
            DataTransfer.cFilter.AddFilter(filter);
            DataTransfer.Filter = filter;

            NavigationService.GoBack();
        }
예제 #4
0
        void ManageFilter_Loaded(object sender, RoutedEventArgs e)
        {
            if (_initialized)
            {
                return;
            }
            Filter = DataTransfer.Filter;

            if (Filter == null)
            {
                MessageAndExit(Localization.Resources.CouldntLoadFilter);
            }

            if (Filter.Type == FilterType.User)
            {
                Resource.SelectedIndex = 0;
            }
            else if (Filter.Type == FilterType.Source)
            {
                Resource.SelectedIndex = 1;
            }
            else if (Filter.Type == FilterType.Text)
            {
                Resource.SelectedIndex = 2;
            }

            FilterText.Text = Filter.Filter;

            date.Value = Filter.IsValidUntil.Date;
            time.Value = Filter.IsValidUntil;

            if (Filter.Inclusion == IncludeOrExclude.Include)
            {
                Inclusion.SelectedIndex = 1;
            }
            else
            {
                Inclusion.SelectedIndex = 0;
            }

            _initialized = true;
        }
예제 #5
0
        public object Convert(object value, Type targeType, object parameter, CultureInfo culture)
        {
            ITweetableFilter filter = value as ITweetableFilter;

            if (filter != null)
            {
                switch (filter.Type)
                {
                case FilterType.User:
                    return(Resources.User);

                case FilterType.Text:
                    return(Resources.TweetText);

                case FilterType.Source:
                    return(Resources.Source);
                }
            }

            return(Resources.UnknownValue);
        }
예제 #6
0
        private void MuteHashtags_Tap(object sender, System.Windows.Input.GestureEventArgs e)
        {
            ITweetableFilter filter  = null;
            string           message = "";

            foreach (var entity in viewModel.Tweet.Entities)
            {
                if (entity.EntityType == TwitterEntityType.HashTag)
                {
                    filter   = FilterManager.SetupMute(FilterType.Text, ((TwitterHashTag)entity).Text);
                    message += ((TwitterHashTag)entity).Text + ", ";
                }
            }
            if (message == "")
            {
                Dependency.Resolve <IMessageService>().ShowMessage(Localization.Resources.NoHashtagsToMute);
            }
            else
            {
                Dependency.Resolve <IMessageService>().
                ShowMessage(String.Format(Localization.Resources.HashtagsMutedUntil, message.Substring(0, message.Length - 2), filter.IsValidUntil.ToString("f")), "");
            }
            viewModel.IsMuting = false;
        }