Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
2.5 kB
1
Indexable
Never
using Android.Content;
using Android.Gms.Tasks;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Firebase.Firestore;
using System;
using System.Collections.Generic;
namespace RunAndEarn
{
    internal class ScoreAdapter : BaseAdapter<Score>
    {

        private Context context;
        private List<Score> lstScores;
        private FbData fbData;
        private Task tskGetScores;
        /// <summary>
        /// הפעולה מייצרת עצם מסוג סקור אדפטר
        /// </summary>
        /// <param name="context">המסך בו יש אתהליסט וויו</param>
        public ScoreAdapter(Context context)
        {
            this.context = context;
            lstScores= new List<Score>();
            lstScores.Add(new Score(0,"Please Wait For The Leaderboard to Set Up"));
            fbData= new FbData();
            tskGetScores = fbData.GetDocument("LeaderBoard", "Records");
            tskGetScores.AddOnCompleteListener((LeaderboardActivity)context);
        }
        public override Score this[int position] => lstScores[position];
        public override int Count => lstScores.Count;
        public override long GetItemId(int position)
        {
            return position;
        }
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            LayoutInflater li = ((LeaderboardActivity)context).LayoutInflater;
            View view = li.Inflate(Resource.Layout.layout_score, parent, false);
            TextView tvName = view.FindViewById<TextView>(Resource.Id.tvName);
            TextView tvScore = view.FindViewById<TextView>(Resource.Id.tvScore);
            Score score = lstScores[position];
            tvName.Text = score.Username;
            tvScore.Text = score.UserScore.ToString();
            return view;
        }
        /// <summary>
        /// הפעולה מעדכנת את טבלת השיאים
        /// </summary>
        public void SetLeaderboard() => NotifyDataSetChanged();
        /// <summary>
        /// הפעולה מוסיפה ציון לרשימת השיאים
        /// </summary>
        /// <param name="score">הציון שנכנס לרשימה</param>
        public void Add(Score score)=> lstScores.Add(score);
        /// <summary>
        /// הפעולה מנקה את הרשימה
        /// </summary>
        public void ClearList()=>lstScores.Clear();
    }
}