예제 #1
0
        public override async void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            try
            {
                ViewHolder_Display_trajets viewHolder = (ViewHolder_Display_trajets)holder;

                Trajet currenttrajet = m_lstrajet[position];

                await SetViewAsync(currenttrajet, viewHolder);
            }
            catch (Exception e)
            {
                MobileCenter_Helper.ReportError(new FileAccessManager(), e, GetType().Name, MethodBase.GetCurrentMethod().Name);
            }
        }
예제 #2
0
        public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
        {
            ViewHolder_Display_trajets viewHolder = null;

            try
            {
                View itemView = m_context.LayoutInflater.Inflate(Resource.Layout.item_display_trajets, parent, false);

                viewHolder = new ViewHolder_Display_trajets(itemView, OnCardClicked, OnBtnModifiedClicked, OnBtnOpenClicked, OnBtnDeletedClicked);
            }
            catch (Exception e)
            {
                MobileCenter_Helper.ReportError(new FileAccessManager(), e, GetType().Name, MethodBase.GetCurrentMethod().Name);
            }
            return(viewHolder);
        }
예제 #3
0
        private async Task SetViewAsync(Trajet currenttrajet, ViewHolder_Display_trajets viewHolder)
        {
            await Task.Factory.StartNew(() =>
            {
                try
                {
                    //Clean cardview and show progressbar
                    if (m_context != null)
                    {
                        m_context.RunOnUiThread(() =>
                        {
                            viewHolder.m_progressbar.Visibility     = ViewStates.Visible;
                            viewHolder.m_textviewRefNumber.Text     = "";
                            viewHolder.m_textviewDate.Text          = "";
                            viewHolder.m_textviewHourStart.Text     = "";
                            viewHolder.m_textviewLocationStart.Text = "";
                            viewHolder.m_textviewHourEnd.Text       = "";
                            viewHolder.m_textviewLocationEnd.Text   = "";
                        });
                    }

                    //Get values to show.. May take a few time and it's done in background
                    //RefNumber
                    string textviewRefNumberText = currenttrajet.m_sRefNumber;

                    //Date
                    string textviewDateText = currenttrajet.m_datetrajet.ToString(m_context.Resources.GetString(Resource.String.do_not_translate_dateTime_toString_DayMonthYear));

                    //Hour start
                    string textviewHourStartText = currenttrajet.m_sTimeStart;

                    //Location start
                    string textviewLocationStartText = currenttrajet.m_sLocationStart;

                    //Hour end
                    string textviewHourEndText = currenttrajet.m_sTimeEnd;

                    //Location end
                    string textviewLocationEndText = currenttrajet.m_sLocationEnd;

                    //Locations text color
                    Android.Graphics.Color textviewLocationTextColor;
                    if (Settings.NightMode)
                    {
                        textviewLocationTextColor = new Color(ContextCompat.GetColor(Application.Context, Android.Resource.Color.White));
                    }
                    else
                    {
                        textviewLocationTextColor = new Color(ContextCompat.GetColor(Application.Context, Android.Resource.Color.Black));
                    }

                    //Btn Start drive mode enable (or not)
                    bool btnOpenEnabled    = currenttrajet.m_bHasBeenPrepared;
                    Color btnOpenTextColor = btnOpenEnabled ? m_context.Resources.GetColor(Resource.Color.red_primary) : m_context.Resources.GetColor(Resource.Color.red_primary_disabled);

                    if (m_context == null || !m_Parent.IsAdded)
                    {
                        return;
                    }

                    //Update cardview with values
                    m_context.RunOnUiThread(() =>
                    {
                        //RefNumber
                        viewHolder.m_textviewRefNumber.Text = textviewRefNumberText;

                        //Date
                        viewHolder.m_textviewDate.Text = textviewDateText;

                        //Hour start
                        viewHolder.m_textviewHourStart.Text = textviewHourStartText;

                        //Location start
                        viewHolder.m_textviewLocationStart.Text = textviewLocationStartText;
                        viewHolder.m_textviewLocationStart.SetTextColor(textviewLocationTextColor);

                        //Hour end
                        viewHolder.m_textviewHourEnd.Text = textviewHourEndText;

                        //Location end
                        viewHolder.m_textviewLocationEnd.Text = textviewLocationEndText;
                        viewHolder.m_textviewLocationEnd.SetTextColor(textviewLocationTextColor);

                        //Btn Start drive mode enable (or not) (do not disabled the button in order to show error message to user)
                        viewHolder.m_btnOpen.SetTextColor(btnOpenTextColor);

                        //Remove progress bar
                        viewHolder.m_progressbar.Visibility = ViewStates.Gone;
                    });
                }
                catch (Exception e)
                {
                    MobileCenter_Helper.ReportError(new FileAccessManager(), e, GetType().Name, MethodBase.GetCurrentMethod().Name);
                }
            });
        }