public override void OnActivityCreated(Bundle savedInstanceState) { base.OnActivityCreated(savedInstanceState); brickController = BrickController.Instance; remoteSettings = RemoteSettings.Instance; sensorSpinner[0] = this.View.FindViewById <Spinner> (Resource.Id.sensorSpinner1); sensorSpinner[1] = this.View.FindViewById <Spinner> (Resource.Id.sensorSpinner2); sensorSpinner[2] = this.View.FindViewById <Spinner> (Resource.Id.sensorSpinner3); sensorSpinner[3] = this.View.FindViewById <Spinner> (Resource.Id.sensorSpinner4); sensorReadButton[0] = this.View.FindViewById <Button> (Resource.Id.readButton1); sensorReadButton[1] = this.View.FindViewById <Button> (Resource.Id.readButton2); sensorReadButton[2] = this.View.FindViewById <Button> (Resource.Id.readButton3); sensorReadButton[3] = this.View.FindViewById <Button> (Resource.Id.readButton4); sensorSayButton[0] = this.View.FindViewById <Button> (Resource.Id.sayButton1); sensorSayButton[1] = this.View.FindViewById <Button> (Resource.Id.sayButton2); sensorSayButton[2] = this.View.FindViewById <Button> (Resource.Id.sayButton3); sensorSayButton[3] = this.View.FindViewById <Button> (Resource.Id.sayButton4); sensorValue[0] = this.View.FindViewById <EditText> (Resource.Id.sensorValue1); sensorValue[1] = this.View.FindViewById <EditText> (Resource.Id.sensorValue2); sensorValue[2] = this.View.FindViewById <EditText> (Resource.Id.sensorValue3); sensorValue[3] = this.View.FindViewById <EditText> (Resource.Id.sensorValue4); ArrayAdapter <string> adapter = new ArrayAdapter <string>(this.Activity, Android.Resource.Layout.SimpleSpinnerItem); string[] sensorNames = MonoBrick.NXT.Sensor.SensorDictionary.Keys.ToArray(); foreach (string s in sensorNames) { adapter.Add(s); } for (int i = 0; i < 4; i++) { sensorSpinner[i].Adapter = adapter; } sensorReadButton[0].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor1.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[0].Text = s; }); }); }; sensorReadButton[1].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor2.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[1].Text = s; }); }); }; sensorReadButton[2].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor3.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[2].Text = s; }); }); }; sensorReadButton[3].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor4.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[3].Text = s; }); }); }; sensorSayButton[0].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor1.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[0].Text = s; //this should not run in the gui thread if (remoteSettings.SensorValueToSpeech && TabActivity.Speech != null) { TabActivity.Speech.Speak(s, Android.Speech.Tts.QueueMode.Flush, null); } }); }); }; sensorSayButton[1].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor2.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[1].Text = s; //this should not run in the gui thread if (remoteSettings.SensorValueToSpeech && TabActivity.Speech != null) { TabActivity.Speech.Speak(s, Android.Speech.Tts.QueueMode.Flush, null); } }); }); }; sensorSayButton[2].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor3.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[2].Text = s; //this should not run in the gui thread if (remoteSettings.SensorValueToSpeech && TabActivity.Speech != null) { TabActivity.Speech.Speak(s, Android.Speech.Tts.QueueMode.Flush, null); } }); }); }; sensorSayButton[3].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor4.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[3].Text = s; //this should not run in the gui thread if (remoteSettings.SensorValueToSpeech && TabActivity.Speech != null) { TabActivity.Speech.Speak(s, Android.Speech.Tts.QueueMode.Flush, null); } }); }); }; sensorSpinner[0].Id = 0; sensorSpinner[0].ItemSelected += delegate(object sender, AdapterView.ItemSelectedEventArgs e) { Spinner spinner = (Spinner)sender; MonoBrick.NXT.Sensor newSensor = MonoBrick.NXT.Sensor.SensorDictionary[(string)spinner.GetItemAtPosition(e.Position)]; remoteSettings.Sensor1 = (string)spinner.GetItemAtPosition(e.Position); brickController.SpawnThread(delegate(){ brickController.NXT.Sensor1 = newSensor; }); }; sensorSpinner[1].Id = 0; sensorSpinner[1].ItemSelected += delegate(object sender, AdapterView.ItemSelectedEventArgs e) { Spinner spinner = (Spinner)sender; MonoBrick.NXT.Sensor newSensor = MonoBrick.NXT.Sensor.SensorDictionary[(string)spinner.GetItemAtPosition(e.Position)]; remoteSettings.Sensor2 = (string)spinner.GetItemAtPosition(e.Position); brickController.SpawnThread(delegate(){ brickController.NXT.Sensor2 = newSensor; }); }; sensorSpinner[2].Id = 0; sensorSpinner[2].ItemSelected += delegate(object sender, AdapterView.ItemSelectedEventArgs e) { Spinner spinner = (Spinner)sender; MonoBrick.NXT.Sensor newSensor = MonoBrick.NXT.Sensor.SensorDictionary[(string)spinner.GetItemAtPosition(e.Position)]; remoteSettings.Sensor3 = (string)spinner.GetItemAtPosition(e.Position); brickController.SpawnThread(delegate(){ brickController.NXT.Sensor3 = newSensor; }); }; sensorSpinner[3].Id = 0; sensorSpinner[3].ItemSelected += delegate(object sender, AdapterView.ItemSelectedEventArgs e) { Spinner spinner = (Spinner)sender; MonoBrick.NXT.Sensor newSensor = MonoBrick.NXT.Sensor.SensorDictionary[(string)spinner.GetItemAtPosition(e.Position)]; remoteSettings.Sensor4 = (string)spinner.GetItemAtPosition(e.Position); brickController.SpawnThread(delegate(){ brickController.NXT.Sensor4 = newSensor; }); }; }
public bool OnActionItemClicked(ActionMode mode, IMenuItem item) { switch (item.ItemId) { case Resource.Id.start: brickController.SpawnThread(delegate() { FileItem currentItemSelected = adapter.SelectedItems.First(); if (currentItemSelected.FileType == MonoBrick.FileType.Program) { brickController.NXT.StartProgram(currentItemSelected.Name, true); this.Activity.RunOnUiThread(delegate(){ TabActivity.ShowToast(this.Activity, "Program successfully started"); }); } else { brickController.NXT.PlaySoundFile(currentItemSelected.Name, false, true); this.Activity.RunOnUiThread(delegate(){ TabActivity.ShowToast(this.Activity, "Sound file started"); }); } }); break; case Resource.Id.stop: brickController.SpawnThread(delegate() { brickController.NXT.StopProgram(true); this.Activity.RunOnUiThread(delegate(){ TabActivity.ShowToast(this.Activity, "All programs stoped"); }); }); break; case Resource.Id.delete: AlertDialog.Builder dialog = new AlertDialog.Builder(this.View.Context); dialog.SetIcon(Android.Resource.Drawable.IcMenuInfoDetails); dialog.SetTitle("Delete file(s)"); string message; if (adapter.SelectedItems.Count > 1) { message = "Are you sure you want to delete " + adapter.SelectedItems.Count + " files ?"; } else { message = "Are you sure you want to delete " + adapter.SelectedItems.First().Name + " ?"; } dialog.SetMessage(message); dialog.SetPositiveButton("Yes", delegate(object sender, DialogClickEventArgs e){ ProgressDialog progress = null; this.Activity.RunOnUiThread(delegate() { progress = ProgressDialog.Show(this.View.Context, "Deleting files", "PLease Wait... "); }); System.Threading.Thread t = new System.Threading.Thread(delegate(object obj){ brickController.ExecuteOnCurrentThread(delegate() { Exception ex = null; List <FileItem> uncheckList = new List <FileItem>(); try{ int i = 0; foreach (FileItem myFileItem in adapter.SelectedItems) { if (adapter.SelectedItems.Count > 1) { progress.SetMessage("Deleteing file " + (i + 1) + " of " + adapter.SelectedItems.Count); } else { progress.SetMessage("Deleteing " + myFileItem.Name); } brickController.NXT.FileSystem.DeleteFile(myFileItem.Name); adapter.Items.Remove(myFileItem); uncheckList.Add(myFileItem); i++; } } catch (Exception excep) { ex = excep; } finally { foreach (FileItem fi in uncheckList) { adapter.SelectedItems.Remove(fi); } this.Activity.RunOnUiThread(delegate() { progress.Dismiss(); adapter.NotifyDataSetChanged(); if (mode != null) { mode.Finish(); } }); } if (ex != null) { throw ex; } }); }); t.IsBackground = true; t.Priority = System.Threading.ThreadPriority.Normal; t.Start(); }); dialog.SetNegativeButton("No", delegate(object sender, DialogClickEventArgs e){}); dialog.Show(); break; case Resource.Id.download: Console.WriteLine("Download"); break; } return(true); }
public override void OnActivityCreated (Bundle savedInstanceState) { base.OnActivityCreated (savedInstanceState); brickController = BrickController.Instance; remoteSettings = RemoteSettings.Instance; sensorSpinner[0] = this.View.FindViewById<Spinner> (Resource.Id.sensorSpinner1); sensorSpinner[1] = this.View.FindViewById<Spinner> (Resource.Id.sensorSpinner2); sensorSpinner[2] = this.View.FindViewById<Spinner> (Resource.Id.sensorSpinner3); sensorSpinner[3] = this.View.FindViewById<Spinner> (Resource.Id.sensorSpinner4); sensorReadButton[0] = this.View.FindViewById<Button> (Resource.Id.readButton1); sensorReadButton[1] = this.View.FindViewById<Button> (Resource.Id.readButton2); sensorReadButton[2] = this.View.FindViewById<Button> (Resource.Id.readButton3); sensorReadButton[3] = this.View.FindViewById<Button> (Resource.Id.readButton4); sensorSayButton[0] = this.View.FindViewById<Button> (Resource.Id.sayButton1); sensorSayButton[1] = this.View.FindViewById<Button> (Resource.Id.sayButton2); sensorSayButton[2] = this.View.FindViewById<Button> (Resource.Id.sayButton3); sensorSayButton[3] = this.View.FindViewById<Button> (Resource.Id.sayButton4); sensorValue[0] = this.View.FindViewById<EditText> (Resource.Id.sensorValue1); sensorValue[1] = this.View.FindViewById<EditText> (Resource.Id.sensorValue2); sensorValue[2] = this.View.FindViewById<EditText> (Resource.Id.sensorValue3); sensorValue[3] = this.View.FindViewById<EditText> (Resource.Id.sensorValue4); ArrayAdapter<string> adapter = new ArrayAdapter<string>(this.Activity,Android.Resource.Layout.SimpleSpinnerItem); string[] sensorNames = MonoBrick.NXT.Sensor.SensorDictionary.Keys.ToArray(); foreach(string s in sensorNames){ adapter.Add(s); } for(int i = 0; i < 4; i ++){ sensorSpinner[i].Adapter = adapter; } sensorReadButton[0].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor1.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[0].Text = s; }); }); }; sensorReadButton[1].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor2.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[1].Text = s; }); }); }; sensorReadButton[2].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor3.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[2].Text = s; }); }); }; sensorReadButton[3].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor4.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[3].Text = s; }); }); }; sensorSayButton[0].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor1.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[0].Text = s; //this should not run in the gui thread if(remoteSettings.SensorValueToSpeech && TabActivity.Speech != null){ TabActivity.Speech.Speak(s, Android.Speech.Tts.QueueMode.Flush, null); } }); }); }; sensorSayButton[1].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor2.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[1].Text = s; //this should not run in the gui thread if(remoteSettings.SensorValueToSpeech && TabActivity.Speech != null){ TabActivity.Speech.Speak(s, Android.Speech.Tts.QueueMode.Flush, null); } }); }); }; sensorSayButton[2].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor3.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[2].Text = s; //this should not run in the gui thread if(remoteSettings.SensorValueToSpeech && TabActivity.Speech != null){ TabActivity.Speech.Speak(s, Android.Speech.Tts.QueueMode.Flush, null); } }); }); }; sensorSayButton[3].Click += delegate { brickController.SpawnThread(delegate(){ string s = brickController.NXT.Sensor4.ReadAsString(); Activity.RunOnUiThread(delegate() { sensorValue[3].Text = s; //this should not run in the gui thread if(remoteSettings.SensorValueToSpeech && TabActivity.Speech != null){ TabActivity.Speech.Speak(s, Android.Speech.Tts.QueueMode.Flush, null); } }); }); }; sensorSpinner[0].Id = 0; sensorSpinner[0].ItemSelected += delegate(object sender, AdapterView.ItemSelectedEventArgs e) { Spinner spinner = (Spinner)sender; MonoBrick.NXT.Sensor newSensor = MonoBrick.NXT.Sensor.SensorDictionary[(string) spinner.GetItemAtPosition(e.Position)]; remoteSettings.Sensor1 = (string) spinner.GetItemAtPosition(e.Position); brickController.SpawnThread(delegate(){ brickController.NXT.Sensor1 = newSensor; }); }; sensorSpinner[1].Id = 0; sensorSpinner[1].ItemSelected += delegate(object sender, AdapterView.ItemSelectedEventArgs e) { Spinner spinner = (Spinner)sender; MonoBrick.NXT.Sensor newSensor = MonoBrick.NXT.Sensor.SensorDictionary[(string) spinner.GetItemAtPosition(e.Position)]; remoteSettings.Sensor2 = (string) spinner.GetItemAtPosition(e.Position); brickController.SpawnThread(delegate(){ brickController.NXT.Sensor2 = newSensor; }); }; sensorSpinner[2].Id = 0; sensorSpinner[2].ItemSelected += delegate(object sender, AdapterView.ItemSelectedEventArgs e) { Spinner spinner = (Spinner)sender; MonoBrick.NXT.Sensor newSensor = MonoBrick.NXT.Sensor.SensorDictionary[(string) spinner.GetItemAtPosition(e.Position)]; remoteSettings.Sensor3 = (string) spinner.GetItemAtPosition(e.Position); brickController.SpawnThread(delegate(){ brickController.NXT.Sensor3 = newSensor; }); }; sensorSpinner[3].Id = 0; sensorSpinner[3].ItemSelected += delegate(object sender, AdapterView.ItemSelectedEventArgs e) { Spinner spinner = (Spinner)sender; MonoBrick.NXT.Sensor newSensor = MonoBrick.NXT.Sensor.SensorDictionary[(string) spinner.GetItemAtPosition(e.Position)]; remoteSettings.Sensor4 = (string) spinner.GetItemAtPosition(e.Position); brickController.SpawnThread(delegate(){ brickController.NXT.Sensor4 = newSensor; }); }; }