protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.speed_game);

            // get progress bar
            ProgressBar pb = FindViewById <ProgressBar>(Resource.Id.progress_loader);

            // get listview
            ListView lv = FindViewById <ListView>(Resource.Id.listView_Pictures);

            // get current name textview
            TextView tv = FindViewById <TextView>(Resource.Id.textView_currentName);

            // get model
            Core.ViewModels.MainViewModel Model = (Core.ViewModels.MainViewModel)ViewModel;

            // load profiles in background
            Task.Run(async() =>
            {
                try
                {
                    // get profiles
                    Profiles           = await Model.GetProfiles();
                    CurrentProfiles    = Model.PickProfiles(Profiles, NUM_PROFILES_PER_GUESS);
                    CurrentProfileName = CurrentProfiles[new Random().Next(0, NUM_PROFILES_PER_GUESS - 1)].FullName;

                    // update listview with profile items
                    RunOnUiThread(new Action(() =>
                    {
                        lv.Adapter    = new Core.Adapters.NameGameAdapter(this, CurrentProfiles);
                        tv.Text       = CurrentProfileName;
                        pb.Visibility = ViewStates.Gone;
                        pb.RefreshDrawableState();
                        tv.RefreshDrawableState();
                    }));
                }
                catch (Exception)
                {
                    // display exception message that was thrown from GetProfiles method
                    RunOnUiThread(new Action(() =>
                    {
                        // get error box
                        TextView error = FindViewById <TextView>(Resource.Id.tv_error);
                        error.Text     = "Oh no! There was a problem loading the profiles.";

                        pb.Visibility    = ViewStates.Gone;
                        lv.Visibility    = ViewStates.Gone;
                        error.Visibility = ViewStates.Visible;
                        pb.RefreshDrawableState();
                        lv.RefreshDrawableState();
                        error.RefreshDrawableState();
                    }));
                }
            });
        }
예제 #2
0
        public void OnClick(View v)
        {
            // get activity
            MvxActivity      Activity = GetActivity(v);
            OriginalModeView view     = (OriginalModeView)Activity;

            // get model
            Core.ViewModels.MainViewModel Model = (Core.ViewModels.MainViewModel)view.ViewModel;

            // get current name textview
            TextView tv_currentName = Activity.FindViewById <TextView>(Resource.Id.textView_currentName);

            if (tv_currentName.Text.Equals(Profile.FullName))
            {
                MainView.CorrectGuesses++;
                TextView tv = Activity.FindViewById <TextView>(Resource.Id.tv_correct);
                tv.Text = "Correct: " + MainView.CorrectGuesses;
                tv.RefreshDrawableState();

                view.CurrentProfiles    = Model.PickProfiles(view.Profiles, view.CurrentProfiles.Count);
                view.CurrentProfileName = view.CurrentProfiles[new Random().Next(0, view.CurrentProfiles.Count - 1)].FullName;

                // update listview with profile items
                // get listview
                ListView lv = Activity.FindViewById <ListView>(Resource.Id.listView_Pictures);

                // get current name textview
                lv.Adapter          = new Core.Adapters.NameGameAdapter(view, view.CurrentProfiles);
                tv_currentName.Text = view.CurrentProfileName;
                tv_currentName.RefreshDrawableState();
            }
            else
            {
                MainView.IncorrectGuesses++;
                TextView tv = Activity.FindViewById <TextView>(Resource.Id.tv_incorrect);
                tv.Text = "Incorrect: " + MainView.IncorrectGuesses;
                tv.RefreshDrawableState();

                if (MainView.IncorrectGuesses >= 3)
                {
                    tv_currentName.Text = "Oh no, you're out of guesses!";
                    tv_currentName.RefreshDrawableState();

                    // get listview
                    ListView lv = Activity.FindViewById <ListView>(Resource.Id.listView_Pictures);
                    lv.Visibility = ViewStates.Gone;
                    lv.RefreshDrawableState();

                    // create back button
                    LinearLayout lo   = Activity.FindViewById <LinearLayout>(Resource.Id.llayout_images);
                    Button       back = lo.FindViewById <Button>(Resource.Id.btn_back);
                    back.Click += delegate
                    {
                        // open starting screen
                        view.StartActivityForResult(new Intent(back.Context, typeof(MainView)), 0);
                        view.Finish();
                    };
                    back.Visibility = ViewStates.Visible;
                    back.RefreshDrawableState();

                    return;
                }

                ImageView iv = (ImageView)v;
                iv.SetColorFilter(Android.Graphics.Color.DarkGray, Android.Graphics.PorterDuff.Mode.Multiply);
                iv.RefreshDrawableState();
                iv.SetOnClickListener(null);
            }
        }