public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
 {
     if (holder.GetType() == typeof(OutletItemFISHolder))
     {
         OutletItemFISHolder vh = (OutletItemFISHolder)holder;
         vh.BindItem(OutletItem);
     }
     else if (holder.GetType() == typeof(OutletItemTaskHolder))
     {
         OutletItemTaskHolder vh = (OutletItemTaskHolder)holder;
         vh.BindItem(OutletItemTask);
     }
     else if (holder.GetType() == typeof(OutletItemRemarkHolder))
     {
         OutletItemRemarkHolder vh = (OutletItemRemarkHolder)holder;
         vh.BindItem(OutletItemRCS);
     }
     else if (holder.GetType() == typeof(OutletItemSalesHolder))
     {
         OutletItemSalesHolder vh = (OutletItemSalesHolder)holder;
         vh.BindItem(OutletItemChartList);
     }
     else if (holder.GetType() == typeof(OutletItemSalesTableHolder))
     {
         OutletItemSalesTableHolder vh = (OutletItemSalesTableHolder)holder;
         vh.BindItem(OutletItemSalesOutlet, mLKWk);
     }
 }
Example #2
0
        public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            if (holder.GetType() == typeof(DummyLoadingViewHolder))
            {
                return;
            }

            Post currentPost = GetPost(position);

            RecyclerViewHolder currentViewHolder = (RecyclerViewHolder)holder;

            // update data
            #pragma warning disable CS0618
            currentViewHolder.Title.TextFormatted = Html.FromHtml(currentPost.Title.Rendered);

            // author
            MediaAuthor author = currentPost.Embedded.Author.FirstOrDefault();

            currentViewHolder.Author.Text = author != null ? author.Name : "Unknown";

            Glide.With(context)
            .Load(currentPost.Embedded.WpFeaturedMedia.FirstOrDefault().SourceUrl)
            .Apply(glideOptions)
            .Into(currentViewHolder.ThumbnailImage);
        }
 public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
 {
     base.OnBindViewHolder(holder, GetActualPosition(position));
     // because of getCurrentPosition may return ViewHolder�es position,
     // so we must reset mPosition if exists.
     //ViewHolderDelegate.setPosition(holder, position);
     if (mPositionField == null)
     {
         try
         {
             mPositionField = holder.GetType().GetField("mPosition", BindingFlags.NonPublic
                                                        | BindingFlags.Instance);
         }
         catch (NoSuchFieldException e)
         {
             //Log.i(TAG, "The holder doesn't have a mPosition field.");
         }
     }
     if (mPositionField != null)
     {
         try
         {
             mPositionField.SetValue(holder, position);
         }
         catch (Java.Lang.Exception e)
         {
             //Log.w(TAG, "Error while updating holder's mPosition field", e);
         }
     }
 }
Example #4
0
 public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
 {
     if (holder.GetType() == typeof(DashboardItemvwTEHolder))
     {
         DashboardItemvwTEHolder vh = (DashboardItemvwTEHolder)holder;
         vh.BindItem(mVwTE);
     }
     else if (holder.GetType() == typeof(DashboardItemRCSTEHolder))
     {
         DashboardItemRCSTEHolder vh = (DashboardItemRCSTEHolder)holder;
         vh.BindItem(mRCSTE);
     }
     else if (holder.GetType() == typeof(DashboardItemvwSalesTEChartHolder))
     {
         DashboardItemvwSalesTEChartHolder vh = (DashboardItemvwSalesTEChartHolder)holder;
         vh.BindItem(mVwSalesTEChart);
     }
     else if (holder.GetType() == typeof(DashboardItemvwSalesTEHolder))
     {
         DashboardItemvwSalesTEHolder vh = (DashboardItemvwSalesTEHolder)holder;
         vh.BindItem(mVwSalesTE, mLKWk);
     }
 }
Example #5
0
        public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            if (Utils.ObjectUtility.CheckInherit(holder.GetType(), typeof(RecyclerViewHolder)))
            {
                RecyclerViewHolder recyclerViewHolder        = (RecyclerViewHolder)holder;
                Android.Views.Animations.Animation animation = AnimationUtils.LoadAnimation(context, Resource.Animation.anim_recycler_item_show);
                recyclerViewHolder.mView.StartAnimation(animation);

                AlphaAnimation aa1 = new AlphaAnimation(1.0f, 0.1f);
                aa1.Duration = 400;
                recyclerViewHolder.rela_round.StartAnimation(aa1);

                AlphaAnimation aa = new AlphaAnimation(0.1f, 1.0f);
                aa.Duration = 400;

                if (color == 1)
                {
                    recyclerViewHolder.rela_round.BackgroundTintList = ColorStateList.ValueOf(new Android.Graphics.Color(Utils.AppUtils.GetColor(context, Resource.Color.google_blue)));
                }
                else if (color == 2)
                {
                    recyclerViewHolder.rela_round.BackgroundTintList = ColorStateList.ValueOf(new Android.Graphics.Color(Utils.AppUtils.GetColor(context, Resource.Color.google_green)));
                }
                else if (color == 3)
                {
                    recyclerViewHolder.rela_round.BackgroundTintList = ColorStateList.ValueOf(new Android.Graphics.Color(Utils.AppUtils.GetColor(context, Resource.Color.google_yellow)));
                }
                else if (color == 4)
                {
                    recyclerViewHolder.rela_round.BackgroundTintList = ColorStateList.ValueOf(new Android.Graphics.Color(Utils.AppUtils.GetColor(context, Resource.Color.google_red)));
                }
                else
                {
                    recyclerViewHolder.rela_round.BackgroundTintList = ColorStateList.ValueOf(new Android.Graphics.Color(Utils.AppUtils.GetColor(context, Resource.Color.gray)));
                }

                recyclerViewHolder.rela_round.StartAnimation(aa);

                recyclerViewHolder.mView.SetOnClickListener(new RecycleViewHolderClick(context, recyclerViewHolder, color));
            }
        }
Example #6
0
        public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            switch (holder)
            {
            case TItemViewHolder itemViewHolder:
                itemViewHolder.Item = currentItems[position - HeaderOffset].WrappedItem;
                break;

            case TSectionViewHolder sectionViewHolder:
                sectionViewHolder.Item = currentItems[position - HeaderOffset].WrappedSection;
                break;

            default:
                if (TryBindCustomViewType(holder, position) == false)
                {
                    throw new InvalidOperationException($"{holder.GetType().Name} was not bound to position {position}");
                }

                break;
            }
        }
        public sealed override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            switch (holder)
            {
            case TItemViewHolder itemViewHolder:
                itemViewHolder.Item = GetItemFromAdapterPosition(position);
                break;

            case TSectionViewHolder sectionViewHolder:
                sectionViewHolder.Item = GetSectionListFromAdapterPosition(position);
                break;

            default:
                if (TryBindCustomViewType(holder, position) == false)
                {
                    throw new InvalidOperationException($"{holder.GetType().Name} was not bound to position {position}");
                }

                break;
            }
        }
        public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            switch (holder)
            {
            case ReportsItemCellViewHolder reportsViewHolder:
                reportsViewHolder.Item       = currentReportsSummaryData.Segments[position - headerItemsCount];
                reportsViewHolder.IsLastItem = position == ItemCount - 1;
                reportsViewHolder.RecalculateSize();
                break;

            case ReportsWorkspaceNameViewHolder reportsWorkspaceHolder:
                reportsWorkspaceHolder.Item = currentWorkspaceName;
                break;

            case ReportsHeaderCellViewHolder reportsSummaryHolder:
                reportsSummaryHolder.Item = currentReportsSummaryData;
                if (currentBarChartData.HasValue)
                {
                    var barChartView           = holder.ItemView.FindViewById <BarChartView>(Resource.Id.BarChartView);
                    var barChartTopLegendGroup = holder.ItemView.FindViewById <Group>(Resource.Id.WorkspaceBillableGroup);
                    var barChartData           = currentBarChartData.GetValueOrDefault();
                    barChartView.BarChartData         = barChartData;
                    barChartTopLegendGroup.Visibility = barChartData.WorkspaceIsBillable ? ViewStates.Visible : ViewStates.Gone;
                }
                break;

            default:
                throw new InvalidOperationException($"Tried to bind unexpected viewholder {holder?.GetType().Name ?? "null"}");
            }
        }
Example #9
0
        public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            TaskViewHolder vh;

            Type thisType = holder.GetType();

            OnBind = true;

            if (Curator)
            {
                if (position == 0)
                {
                    return;
                }
            }

            if (position == 0 || (Curator && position == 1))
            {
                // Activity description + entered names (if required)
                vh = holder as TaskViewHolderName;
                if (vh == null)
                {
                    return;
                }

                vh.Title.Text       = description;
                vh.Description.Text = context.Resources.GetString(Resource.String.TasksTitle);

                ((TaskViewHolderName)vh).NameSection.Visibility =
                    (reqName) ? ViewStates.Visible : ViewStates.Gone;
                ((TaskViewHolderName)vh).EnteredNames.Text = names;

                return;
            }

            if (position == Items.Count - 1)
            {
                // Finish button
                if (holder is ButtonViewHolder bvh)
                {
                    bvh.Button.Enabled = true;
                }

                return;
            }

            string taskType = Items[position].TaskType.IdName;

            if (thisType == typeof(TaskViewHolderInfo))
            {
                AdditionalInfoData taskInfo = JsonConvert.DeserializeObject <AdditionalInfoData>(Items[position].JsonData);
                vh = holder as TaskViewHolderInfo;
                Items[position].IsCompleted = true;

                if (!string.IsNullOrWhiteSpace(taskInfo.ImageUrl))
                {
                    Items[position].ImageUrl = taskInfo.ImageUrl;
                }

                TaskViewHolderInfo taskViewHolderInfo = (TaskViewHolderInfo)vh;
                if (taskViewHolderInfo != null)
                {
                    taskViewHolderInfo.Button.Visibility =
                        (string.IsNullOrWhiteSpace(taskInfo.ExternalUrl)) ? ViewStates.Gone : ViewStates.Visible;
                }
            }
            else if (thisType == typeof(TaskViewHolderRecordAudio))
            {
                vh = holder as TaskViewHolderRecordAudio;
                if (vh != null)
                {
                    ((TaskViewHolderRecordAudio)vh).StartTaskButton.Text =
                        context.Resources.GetString(Resource.String.StartBtn);

                    if (!string.IsNullOrWhiteSpace(Items[position].CompletionData.JsonData))
                    {
                        List <string> audioPaths =
                            JsonConvert.DeserializeObject <List <string> >(Items[position].CompletionData.JsonData);

                        ((TaskViewHolderRecordAudio)vh).ShowResults(audioPaths, context);
                        Items[position].IsCompleted = true;
                    }
                    else
                    {
                        Items[position].IsCompleted = false;
                        ((TaskViewHolderRecordAudio)vh).ClearResults();
                    }
                }
            }
            else if (thisType == typeof(TaskViewHolderRecordVideo))
            {
                vh = holder as TaskViewHolderRecordVideo;
                if (vh != null)
                {
                    ((TaskViewHolderRecordVideo)vh).StartTaskButton.Text =
                        context.Resources.GetString(Resource.String.RecBtn);

                    if (!string.IsNullOrWhiteSpace(Items[position].CompletionData.JsonData))
                    {
                        List <string> videoPaths =
                            JsonConvert.DeserializeObject <List <string> >(Items[position].CompletionData.JsonData);

                        ((TaskViewHolderRecordVideo)vh).ShowResults(videoPaths, context);
                        Items[position].IsCompleted = true;
                    }
                    else
                    {
                        Items[position].IsCompleted = false;
                        ((TaskViewHolderRecordVideo)vh).ClearResults();
                    }
                }
            }
            else if (thisType == typeof(TaskViewHolderResultList))
            {
                vh = holder as TaskViewHolderResultList;

                bool   btnEnabled = true;
                string btnText;

                if (taskType == "DRAW" || taskType == "DRAW_PHOTO")
                {
                    btnText = context.Resources.GetString(Resource.String.StartDrawBtn);

                    if (taskType == "DRAW_PHOTO")
                    {
                        btnEnabled = !int.TryParse(Items[position].JsonData, out var idResult) || GetTaskWithId(idResult).IsCompleted;

                        if (!btnEnabled)
                        {
                            btnText = context.Resources.GetString(Resource.String.TaskBtnNotReady);
                        }
                    }
                }
                else
                {
                    btnText = context.Resources.GetString(Resource.String.TakePhotoBtn);
                }

                if (vh != null)
                {
                    ((TaskViewHolderResultList)vh).StartTaskButton.Text    = btnText;
                    ((TaskViewHolderResultList)vh).StartTaskButton.Enabled = btnEnabled;

                    if (!string.IsNullOrWhiteSpace(Items[position].CompletionData.JsonData))
                    {
                        List <string> photoPaths =
                            JsonConvert.DeserializeObject <List <string> >(Items[position].CompletionData.JsonData);

                        ((TaskViewHolderResultList)vh).ShowResults(photoPaths, context);
                        Items[position].IsCompleted = true;
                    }
                    else
                    {
                        Items[position].IsCompleted = false;
                        ((TaskViewHolderResultList)vh).ClearResults();
                    }
                }
            }
            else if (thisType == typeof(TaskViewHolderBtn))
            {
                vh = holder as TaskViewHolderBtn;
                string btnText = context.Resources.GetString(Resource.String.TaskBtn);

                if (taskType == "LISTEN_AUDIO")
                {
                    btnText = context.Resources.GetString(Resource.String.ListenBtn);
                }

                TaskViewHolderBtn viewHolderBtn = (TaskViewHolderBtn)vh;
                if (viewHolderBtn != null)
                {
                    viewHolderBtn.Button.Text = btnText;
                }
            }
            else if (thisType == typeof(TaskViewHolderTextEntry))
            {
                vh = holder as TaskViewHolderTextEntry;
                if (vh != null)
                {
                    ((TaskViewHolderTextEntry)vh).TextField.Text = Items[position].CompletionData.JsonData;
                    Items[position].IsCompleted =
                        !string.IsNullOrWhiteSpace(((TaskViewHolderTextEntry)vh).TextField.Text);
                }
            }
            else
            {
                if (thisType == typeof(TaskViewHolderMultipleChoice))
                {
                    vh = holder as TaskViewHolderMultipleChoice;
                    RadioGroup radios = ((TaskViewHolderMultipleChoice)vh)?.RadioGroup;

                    string[] choices = JsonConvert.DeserializeObject <string[]>(Items[position].JsonData);
                    int.TryParse(Items[position].CompletionData.JsonData, out var answeredInd);

                    if (radios != null && radios.ChildCount == 0)
                    {
                        int index = 0;
                        foreach (string option in choices)
                        {
                            RadioButton rad = new RadioButton(context)
                            {
                                Text = option
                            };
                            rad.SetPadding(0, 0, 0, 5);
                            rad.TextSize = 16;
                            radios.AddView(rad);

                            if (Items[position].IsCompleted && answeredInd == index)
                            {
                                ((RadioButton)radios.GetChildAt(answeredInd)).Checked = true;
                            }
                            index++;
                        }
                    }

                    if (answeredInd == -1)
                    {
                        Items[position].IsCompleted = false;
                    }

                    if (radios != null)
                    {
                        radios.CheckedChange += (sender, e) =>
                        {
                            Items[position].IsCompleted = true;
                            int  radioButtonId = radios.CheckedRadioButtonId;
                            View radioButton   = radios.FindViewById(radioButtonId);
                            int  idx           = radios.IndexOfChild(radioButton);
                            Items[position].CompletionData.JsonData = idx.ToString();
                            NotifyItemChanged(Items.Count - 1);
                        };
                    }
                }
                else if (thisType == typeof(TaskViewHolderMap))
                {
                    vh = holder as TaskViewHolderMap;
                    TaskViewHolderMap mapHolder = ((TaskViewHolderMap)vh);

                    if (taskType == "MAP_MARK")
                    {
                        List <Map_Location> points = JsonConvert.DeserializeObject <List <Map_Location> >(Items[position].CompletionData.JsonData);

                        if (points != null && points.Count > 0)
                        {
                            if (mapHolder != null)
                            {
                                mapHolder.EnteredLocationsView.Visibility = ViewStates.Visible;
                                mapHolder.EnteredLocationsView.Text       = string.Format(
                                    context.Resources.GetString(Resource.String.ChosenLocations),
                                    points.Count,
                                    (points.Count > 1) ? "s" : "");
                            }

                            Items[position].IsCompleted = true;
                        }
                        else
                        {
                            if (mapHolder != null)
                            {
                                mapHolder.EnteredLocationsView.Visibility = ViewStates.Gone;
                            }

                            Items[position].IsCompleted = false;
                        }
                    }
                }
                else
                {
                    vh = holder as TaskViewHolder;
                }
            }

            // These apply to all task types:
            AndroidUtils.LoadTaskTypeIcon(Items[position].TaskType, ((TaskViewHolder)holder).TaskTypeIcon);

            if (!string.IsNullOrWhiteSpace(Items[position].ImageUrl))
            {
                AndroidUtils.LoadActivityImageIntoView(vh.TaskImage, Items[position].ImageUrl, activityId, 350);
            }
            else
            {
                if (vh != null)
                {
                    vh.TaskImage.Visibility = ViewStates.Gone;
                }
            }

            vh.Description.Text = Items[position].Description;
            vh.Title.Text       = Items[position].TaskType.DisplayName;

            bool hasChildren = Items[position].ChildTasks != null && Items[position].ChildTasks.Any();

            if (Items[position].TaskType.IdName == "ENTER_TEXT")
            {
                vh.LockedChildrenTease.Visibility = ViewStates.Gone;
            }
            else if (hasChildren && !Items[position].IsCompleted)
            {
                vh.LockedChildrenTease.Visibility = ViewStates.Visible;
                int childCount = Items[position].ChildTasks.Count();
                vh.LockedChildrenTease.Text = string.Format(
                    context.GetString(Resource.String.taskLockedParent),
                    childCount,
                    (childCount > 1) ? "s" : "");
            }
            else if (hasChildren && Items[position].IsCompleted)
            {
                vh.LockedChildrenTease.Visibility = ViewStates.Visible;
                vh.LockedChildrenTease.Text       = context.GetString(Resource.String.taskUnlockedParent);
            }
            else
            {
                vh.LockedChildrenTease.Visibility = ViewStates.Gone;
            }

            OnBind = false;
        }