예제 #1
0
 public override bool OnOptionsItemSelected(IMenuItem item)
 {
     if (item.ItemId == Resource.Id.reset)
     {
         steps = 0;
         calories = 0;
         speed = 0.0f;
         distance = 0.0f;
         tmp = null;
         chrono.Base = SystemClock.ElapsedRealtime();
         refreshTextViews();
     }
     else
     {
         if (!run)
         {
             sensorsListenerRegister();
             if (tmp == null)
                 chrono.Base = SystemClock.ElapsedRealtime();
             else
                 chrono.Base += SystemClock.ElapsedRealtime() - tmp.Base;
             chrono.Start();
             run = true;
         }
         else
         {
             sensorManager.UnregisterListener(this);
             run = false;
             chrono.Stop();
             tmp = new Chronometer(this);
         }
     }
     return base.OnOptionsItemSelected(item);
 }
예제 #2
0
 public void OnChronometerTick(Chronometer chronometer)
 {
     TimeSpan tim = TimeSpan.FromMilliseconds(SystemClock.ElapsedRealtime() - chrono.Base);
     timeTextView.Text = chrono.Text;
     if (tim.Ticks != 0)
         speedTextView.Text = (distance / 100000 / tim.TotalHours).ToString("0.00");
 }
예제 #3
0
        /// <summary>
        /// Initial function call when activity loads
        /// </summary>
        /// <param name="bundle"></param>
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            IsOver = false; // game not over
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Game);

            // Grab UI Componets
            _mineTable = FindViewById<TableLayout>(Resource.Id.mineTableLayout);
            MinesRemainingTextView = FindViewById<TextView>(Resource.Id.minesRemaining);
            Timer = FindViewById<Chronometer>(Resource.Id.chronometer);
            //var height = int.Parse((FindViewById<EditText>(Resource.Id.editTextHeight)).Text);
            //var width = int.Parse((FindViewById<EditText>(Resource.Id.editTextWidth)).Text);
            //var numMines = int.Parse((FindViewById<EditText>(Resource.Id.editTextMines)).Text);

            var numMines = int.Parse(Intent.GetStringExtra("mines") ?? "5");
            var height = int.Parse(Intent.GetStringExtra("height") ?? "11");
            var width = int.Parse(Intent.GetStringExtra("width") ?? "6");

            NumFlags = numMines;

            // Create new engine with current game settings
            _gameEngine = new Engine(height, width, numMines);
            SetMinesText();
            PopulateTable();
            _run = true; // Set runner thread to loop
            _runnerThread = new Thread(new ThreadStart(Runner));
            _runnerThread.Start(); // start runner
        }
예제 #4
0
 public void OnChronometerTick(Chronometer chronometer)
 {
     Tick.Invoke(chronometer, System.EventArgs.Empty);
 }
예제 #5
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            powerManager = (PowerManager)GetSystemService(Context.PowerService);
            wakeLock = powerManager.NewWakeLock(WakeLockFlags.Partial, "MyWakeLock");
            wakeLock.Acquire();

            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.Pedometer);

            chrono = FindViewById<Chronometer>(Resource.Id.chronometer1);
            sensorManager = (SensorManager)GetSystemService(Context.SensorService);
            stepsTextView = FindViewById<TextView>(Resource.Id.pedometer);
            caloriesTextView = FindViewById<TextView>(Resource.Id.calories);
            speedTextView = FindViewById<TextView>(Resource.Id.speed);
            distanceTextView = FindViewById<TextView>(Resource.Id.distance);
            timeTextView = FindViewById<TextView>(Resource.Id.time);

            if (savedInstanceState != null)
            {
                steps = savedInstanceState.GetInt("steps", 0);
                calories = savedInstanceState.GetFloat("calories", 0.0f);
                speed = savedInstanceState.GetFloat("speed", 0.0f);
                distance = savedInstanceState.GetFloat("distance", 0.0f);
                chrono.Base = savedInstanceState.GetLong("time", SystemClock.ElapsedRealtime());
                run = savedInstanceState.GetBoolean("run", false);
            }

            chrono.Format = "00:0%s";
            chrono.OnChronometerTickListener = this;

            int h = 480;
            mYOffset = h * 0.5f;
            mScale[0] = -(h * 0.5f * (1.0f / (SensorManager.StandardGravity * 2)));
            mScale[1] = -(h * 0.5f * (1.0f / (SensorManager.MagneticFieldEarthMax)));

            if (run)
            {
                refreshTextViews();
                sensorsListenerRegister();
                chrono.Start();
            }
        }
예제 #6
0
 public void OnChronometerTick(Chronometer chronometer)
 {
     Tick.Invoke(chronometer, System.EventArgs.Empty);
 }