Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
2.9 kB
2
Indexable
Never
using Android.App;
using Android.Content;
using Android.Gms.Tasks;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Firebase.Firestore;
namespace RunAndEarn
{
    [Activity(Label = "LeaderboardActivity")]
    public class LeaderboardActivity : Activity, Android.Views.View.IOnClickListener, IOnCompleteListener
    {
        private Button btnBack;
        private ListView lvLeaderboard;
        private FbData fbData;
        private ScoreAdapter scoreAdapter;
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_leaderboard);
            InitObjects();
            Initviews();
        }
        /// <summary>
        /// הפעולה בונה את כל האובייקטים שבמשחק
        /// </summary>
        private void InitObjects()
        {
            fbData = new FbData();
            scoreAdapter = new ScoreAdapter(this);
        }
        /// <summary>
        /// הפעולה מוסיפה את כל הוויוז למסך
        /// </summary>
        private void Initviews()
        {
            btnBack = FindViewById<Button>(Resource.Id.btnBack);
            lvLeaderboard = FindViewById<ListView>(Resource.Id.lvLeaderboard);
            btnBack.SetOnClickListener(this);
            lvLeaderboard.Adapter = scoreAdapter;
        }
        /// <summary>
        /// הפעולה עוצרת את המשחק שנלחץ הכפתור של העצירה
        /// </summary>
        public void OnClick(View v)
        {
            if(v== btnBack)
            {
                Intent intent = new Intent(this, typeof(MainActivity));
                StartActivity(intent);
                Finish();
            }
        }
        /// <summary>
        /// הפעולה מעדכנת את טבלת השיאים לפי רשימת השיאים
        /// </summary>
        public void OnComplete(Task task)
        {
            if (task.IsSuccessful)
            {
                int scoreVal;
                string username;
                DocumentSnapshot ds = (DocumentSnapshot)task.Result;
                JavaList scores = (JavaList)ds.Get(General.FB_DOCUMENT_NAME);
                scoreAdapter.ClearList();
                for (int i = 0; i <scores.Count; i++)
                {
                    JavaDictionary score = (JavaDictionary)scores[i];
                    scoreVal = int.Parse(score["score"].ToString());
                    username = (score["username"].ToString());
                    scoreAdapter.Add(new Score(scoreVal, username));   
                }
                scoreAdapter.SetLeaderboard();
            }
        }
    }
}