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); } }
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); }
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); } }); }