private static List <PickedMeal> RearangeList(List <Meal> newList)
        {
            List <PickedMeal> pickedMealList = new List <PickedMeal>();

            foreach (Meal meal in newList)
            {
                PickedMeal selectedPickedMeal = null;
                foreach (PickedMeal pMeal in pickedMealList)
                {
                    if (pMeal.Name == meal.Name)
                    {
                        selectedPickedMeal = pMeal;
                        break;
                    }
                }
                if (selectedPickedMeal == null)
                {
                    // 메인은 통계적인 정보를 보여주는 건데, 개별 아이템에 날짜/type 정보를 보여주기 애매해서 일단 첫번째 데이터로 뿌려줌
                    pickedMealList.Add(new PickedMeal(meal.Name, meal.Rate, meal.ImageName, meal.CreateDate, meal.Comments, meal.Type));
                }
                else
                {
                    selectedPickedMeal.AddRate(meal.Rate);
                    selectedPickedMeal.AddCount();
                    selectedPickedMeal.SetComments(meal.Comments); // 제일 긴걸로 넣어준다.
                }
            }
            return(pickedMealList);
        }
Esempio n. 2
0
        public static List <PickedMeal> GetDataWithNoDataProcessing(List <PickedMeal> list)
        {
            if (list == null)
            {
                list = new List <PickedMeal>();
            }

            if (list.Count == 0)
            {
                PickedMeal meal = new PickedMeal();
                meal.Name = MyUtil.NO_DATA;
                list.Add(meal);
            }
            return(list);
        }
        protected void OnListItemClick(object sender, AdapterView.ItemClickEventArgs e, List <PickedMeal> list)
        {
            ListView listView = sender as ListView;

            for (int i = 0; i < listView.ChildCount; i++)
            {
                listView.GetChildAt(i).SetBackgroundColor(Color.Transparent);
            }
            e.View.SetBackgroundColor(Color.LightGray);

            meal = list[e.Position];

            // custom dialog
            if (dialog == null)
            {
                dialog = new Dialog(view.Context, Resource.Style.Dialog);
            }
            dialog.SetContentView(Resource.Layout.ViewInformation);
            dialog.FindViewById <TextView>(Resource.Id.viewComments).Text     = meal.Comments;
            dialog.FindViewById <TextView>(Resource.Id.viewFoodName).Text     = meal.Name;
            dialog.FindViewById <RatingBar>(Resource.Id.viewRatingBar).Rating = meal.Rate;
            dialog.FindViewById <TextView>(Resource.Id.viewMealType).Text     = meal.CreateDate.ToString("yyyy-MM-dd") + " / " + MyUtil.GetType(meal);

            FFImageLoading.Views.ImageViewAsync imageView = dialog.FindViewById <FFImageLoading.Views.ImageViewAsync>(Resource.Id.viewImageView);
            if (!string.IsNullOrWhiteSpace(meal.ImageName))
            {
                ImageService.Instance
                .LoadFile(System.IO.Path.Combine(PageRegisterFragment.documentsDirectory, meal.ImageName))
                .DownSampleInDip(width: 250)
                .LoadingPlaceholder("loading.png", FFImageLoading.Work.ImageSource.CompiledResource)
                .ErrorPlaceholder("error.png", FFImageLoading.Work.ImageSource.CompiledResource)
                .Into(imageView);
            }
            else
            {
                ImageService.Instance.LoadCompiledResource("noImage.png").Into(imageView);
            }

            dialog.FindViewById <LinearLayout>(Resource.Id.firstLineInViewInformation).LayoutParameters
                = new TableRow.LayoutParams(LinearLayout.LayoutParams.MatchParent, 0);
            dialog.CancelEvent += closeDialog;
            dialog.Show();
        }