Ejemplo n.º 1
0
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            if (!IsInitialized)
            {
                base.OnViewCreated(view, savedInstanceState);

                Presenter.SourceChanged += PresenterSourceChanged;
                _adapter                 = new FeedAdapter <FeedPresenter>(Context, Presenter);
                _adapter.PostAction     += PostAction;
                _adapter.AutoLinkAction += AutoLinkAction;

                _logo.Click            += OnLogoClick;
                _browseButton.Click    += GoToBrowseButtonClick;
                _toolbar.OffsetChanged += OnToolbarOffsetChanged;

                _scrollListner = new ScrollListener();
                _scrollListner.ScrolledToBottom += LoadPosts;

                _refresher.Refresh += OnRefresh;

                _feedList.SetAdapter(_adapter);
                _feedList.SetLayoutManager(new LinearLayoutManager(Android.App.Application.Context));
                _feedList.AddOnScrollListener(_scrollListner);

                _postPager.SetClipToPadding(false);
                _postPager.SetPadding(Style.PostPagerMargin * 2, 0, Style.PostPagerMargin * 2, 0);
                _postPager.PageMargin              = Style.PostPagerMargin;
                _postPager.PageScrollStateChanged += PostPagerOnPageScrollStateChanged;
                _postPager.PageScrolled           += PostPagerOnPageScrolled;

                _postPagerAdapter                 = new PostPagerAdapter <FeedPresenter>(_postPager, Context, Presenter);
                _postPagerAdapter.PostAction     += PostAction;
                _postPagerAdapter.AutoLinkAction += AutoLinkAction;
                _postPagerAdapter.CloseAction    += CloseAction;

                _postPager.Adapter = _postPagerAdapter;
                _postPager.SetPageTransformer(false, _postPagerAdapter, (int)LayerType.None);

                _emptyQueryLabel.Typeface = Style.Light;
                _emptyQueryLabel.Text     = AppSettings.LocalizationManager.GetText(LocalizationKeys.EmptyCategory);

                _mainMessage.Text  = AppSettings.LocalizationManager.GetText(LocalizationKeys.Greeting);
                _hintMessage.Text  = AppSettings.LocalizationManager.GetText(LocalizationKeys.EmptyFeedHint);
                _browseButton.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.GoToBrowse);

                LoadPosts();
            }

            var postUrl = Activity?.Intent?.GetStringExtra(CommentsFragment.ResultString);

            if (!string.IsNullOrWhiteSpace(postUrl))
            {
                var count = Activity.Intent.GetIntExtra(CommentsFragment.CountString, 0);
                Activity.Intent.RemoveExtra(CommentsFragment.ResultString);
                Activity.Intent.RemoveExtra(CommentsFragment.CountString);
                var post = Presenter.FirstOrDefault(p => p.Url == postUrl);
                post.Children += count;
                _adapter.NotifyDataSetChanged();
            }
        }
Ejemplo n.º 2
0
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            if (!IsInitialized)
            {
                base.OnViewCreated(view, savedInstanceState);

                Presenter.SourceChanged += PresenterSourceChanged;
                _adapter                = new FeedAdapter <FeedPresenter>(Context, Presenter);
                _adapter.LikeAction    += LikeAction;
                _adapter.UserAction    += UserAction;
                _adapter.CommentAction += CommentAction;
                _adapter.VotersClick   += VotersAction;
                _adapter.PhotoClick    += FeedPhotoClick;
                _adapter.FlagAction    += FlagAction;
                _adapter.HideAction    += HideAction;
                _adapter.TagAction     += TagAction;

                _postPagerAdapter                = new PostPagerAdapter <FeedPresenter>(Context, Presenter);
                _postPagerAdapter.LikeAction    += LikeAction;
                _postPagerAdapter.UserAction    += UserAction;
                _postPagerAdapter.CommentAction += CommentAction;
                _postPagerAdapter.VotersClick   += VotersAction;
                _postPagerAdapter.PhotoClick    += PhotoClick;
                _postPagerAdapter.FlagAction    += FlagAction;
                _postPagerAdapter.HideAction    += HideAction;
                _postPagerAdapter.DeleteAction  += DeleteAction;
                _postPagerAdapter.TagAction     += TagAction;
                _postPagerAdapter.CloseAction   += CloseAction;

                _logo.Click            += OnLogoClick;
                _toolbar.OffsetChanged += OnToolbarOffsetChanged;

                _scrollListner = new ScrollListener();
                _scrollListner.ScrolledToBottom += LoadPosts;

                _refresher.Refresh += OnRefresh;

                _feedList.SetAdapter(_adapter);
                _feedList.SetLayoutManager(new LinearLayoutManager(Android.App.Application.Context));
                _feedList.AddOnScrollListener(_scrollListner);

                _postPager.SetClipToPadding(false);
                var pagePadding = (int)BitmapUtils.DpToPixel(20, Resources);
                _postPager.SetPadding(pagePadding, 0, pagePadding, 0);
                _postPager.PageMargin              = pagePadding / 2;
                _postPager.PageScrollStateChanged += PostPagerOnPageScrollStateChanged;
                _postPager.PageScrolled           += PostPagerOnPageScrolled;
                _postPager.Adapter = _postPagerAdapter;
                _postPager.SetPageTransformer(false, _postPagerAdapter, (int)LayerType.None);

                _emptyQueryLabel.Typeface = Style.Light;
                _emptyQueryLabel.Text     = Localization.Texts.EmptyQuery;

                LoadPosts();
            }

            var postUrl = Activity?.Intent?.GetStringExtra(CommentsFragment.ResultString);

            if (!string.IsNullOrWhiteSpace(postUrl))
            {
                var count = Activity.Intent.GetIntExtra(CommentsFragment.CountString, 0);
                Activity.Intent.RemoveExtra(CommentsFragment.ResultString);
                Activity.Intent.RemoveExtra(CommentsFragment.CountString);
                var post = Presenter.FirstOrDefault(p => p.Url == postUrl);
                post.Children += count;
                _adapter.NotifyDataSetChanged();
            }
        }