Ejemplo n.º 1
0
        private void RefreshMessages()
        {
            if (_isRefreshingMessage)
            {
                return;
            }

            this.MessageList.Visibility = ViewStates.Gone;

            _isRefreshingMessage = true;
            ((MainActivity)this.Activity).BlockUI();

            Model.Message[] messages = null;

            _cts1 = new CancellationTokenSource();
            AppController.RefreshMessages(_cts1,
                                          _issue.IssueId,
                                          (newMessages) =>
            {
                messages = newMessages;
            },
                                          (error) =>
            {
                Toast.MakeText(this.Activity.ApplicationContext, error, ToastLength.Long).Show();
            },
                                          () =>
            {
                if (messages != null)
                {
                    LoadMessages(messages);

                    if (_adapter?.ItemCount > 0)
                    {
                        this.MessageList.Visibility = ViewStates.Visible;
                    }

                    _isRefreshingMessage = false;
                    ((MainActivity)this.Activity).UnblockUI();
                }
                else
                {
                    AppController.Utility.ExecuteOnAsyncTask(_cts1.Token,
                                                             () =>
                    {
                        messages = AppController.GetMessages(_issue.IssueId);
                    },
                                                             () =>
                    {
                        LoadMessages(messages);

                        if (_adapter?.ItemCount > 0)
                        {
                            this.MessageList.Visibility = ViewStates.Visible;
                        }

                        _isRefreshingMessage = false;
                        ((MainActivity)this.Activity).UnblockUI();
                    });
                }
            });
        }
Ejemplo n.º 2
0
        private void RefreshMessages()
        {
            if (_isRefreshingMessage)
            {
                return;
            }

            this.MessageList.Hidden = true;

            _isRefreshingMessage = true;
            ((MainViewController)this.MainViewController).BlockUI();

            Model.Message[] messages = null;

            _cts1 = new CancellationTokenSource();
            AppController.RefreshMessages(_cts1,
                                          _issue.IssueId,
                                          (newMessages) =>
            {
                messages = newMessages;
            },
                                          (error) =>
            {
                UIToast.MakeText(error, UIToastLength.Long).Show();
            },
                                          () =>
            {
                if (messages != null)
                {
                    LoadMessages(messages);

                    if (_source?.Count > 0)
                    {
                        this.MessageList.Hidden = false;
                    }

                    _isRefreshingMessage = false;
                    ((MainViewController)this.MainViewController).UnblockUI();
                }
                else
                {
                    AppController.Utility.ExecuteOnAsyncTask(_cts1.Token,
                                                             () =>
                    {
                        messages = AppController.GetMessages(_issue.IssueId);
                    },
                                                             () =>
                    {
                        LoadMessages(messages);

                        if (_source?.Count > 0)
                        {
                            this.MessageList.Hidden = false;
                        }

                        _isRefreshingMessage = false;
                        ((MainViewController)this.MainViewController).UnblockUI();
                    });
                }
            });
        }