AltitudeBand.MainActivity.OnBarometerChanged C# (CSharp) Method

OnBarometerChanged() private method

private OnBarometerChanged ( object sender, BandSensorReadingEventArgs e ) : void
sender object
e BandSensorReadingEventArgs
return void
		private void OnBarometerChanged(object sender, BandSensorReadingEventArgs<BandBarometerReading> e)
		{
			var pReading = e.SensorReading.AirPressure;
			var tReading = e.SensorReading.Temperature;
			if (count < filter.Length) {
				this.RunOnUiThread (() => {
				height.Text = "zeroing...";
				});
				filter [count] = pReading;
				count++;
				if (filter.Length == count) {
					pReading = 0;
					for (int x = 0; x < filter.Length; x++)
						pReading += filter [x];
					pReading /= filter.Length;
					zeroAGL = (1 - Math.Pow (pReading / 1013.25, 0.190284)) * 145366.45;
					zeroed = true;
					Model.Instance.Client.NotificationManager.VibrateAsync(VibrationType.NotificationOneTone);
				}
				if (tileFound) {
					PageData pageContent = new PageData {
						PageId = pageId,
						PageLayoutIndex = 0,
						Data = {
							new TextBlockData {
								ElementId = 1,
								Text = "Pull Alt:"
							},
							new TextBlockData {
								ElementId = 2,
								Text = "Zeroing..."
							},
							new ImageData {
								ElementId = 10,
								ImageIndex = 1
							},
							new TextBlockData {
								ElementId = 5,
								Text = altitudeAGL.ToString()
							}
						}
					};
					Model.Instance.Client.TileManager.SetTilePageDataAsync (tileId, pageContent);
				}
			} else {
				altitudeAGL = (int)(((1 - Math.Pow (pReading / 1013.25, 0.190284)) * 145366.45) - zeroAGL);
				if (zeroed) 
				{
					if (altitudeAGL <= pullAltitude + 100 && altitudeAGL >= pullAltitude - 100) {
						if (!fired) {
							//vibrate
							Model.Instance.Client.NotificationManager.VibrateAsync(VibrationType.NotificationAlarm);
							fired = true;
						}
					} else {
						fired = false;
					}
				}
				this.RunOnUiThread (() => {
					pressure.Text = string.Format ("{0,6:0} hPa", pReading);
					height.Text = string.Format ("{0,6:0} ft", altitudeAGL);
				});

				if (tileFound) {
					PageData pageContent = new PageData ();
					BuildPageData (pageContent);
					Model.Instance.Client.TileManager.SetTilePageDataAsync (tileId, pageContent);
				}
			}
		}