/* * Method Name: SaveExistingEvent * Purpose: To save the voice recording to an existing event */ public bool SaveExistingEvent(SpinnerComponent spinner, bool ticked) { Database.Database db = new Database.Database(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "ShareMyDay.db3"); var storyEvent = db.FindEventByValue(spinner.GetSelected()); if (storyEvent.InStory) { return(false); } else { storyEvent.Finished = ticked; List <Database.Models.VoiceRecording> recordings = new List <Database.Models.VoiceRecording>(); foreach (var i in _audioPaths) { recordings.Add(new Database.Models.VoiceRecording { EventId = storyEvent.Id, Path = i }); } return(db.InsertEvent(false, storyEvent, null, null, recordings) != 0); } }
/* * Method Name: OnCreate * Purpose: To set up the add/update nfc card layout */ protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.AddUpdateNfcCardView); SpinnerComponent spinner = new SpinnerComponent(this, Resource.Id.nfcCardTypeDropDown, this); spinner.SetupNFcDropDown(); _nfc = new NFC.NFC(this); Typeface buttonFont = Typeface.CreateFromAsset(Assets, "Kano.otf"); Button submitButton = FindViewById <Button>(Resource.Id.submitButton); submitButton.SetTypeface(buttonFont, TypefaceStyle.Bold); submitButton.SetBackgroundResource(Resource.Drawable.ButtonGenerator); submitButton.SetTextColor(Color.White); submitButton.SetTextSize(ComplexUnitType.Dip, 15); EditText inputBox = FindViewById <EditText>(Resource.Id.messageInputBox); Button closeButton = FindViewById <Button>(Resource.Id.cancelButton); closeButton.SetTypeface(buttonFont, TypefaceStyle.Bold); closeButton.SetBackgroundResource(Resource.Drawable.ButtonGenerator); closeButton.SetTextColor(Color.White); closeButton.SetTextSize(ComplexUnitType.Dip, 15); closeButton.Click += delegate { Intent mainMenuIntent = new Intent(this, typeof(TeacherMainMenuActivity)); StartActivity(mainMenuIntent); }; submitButton.Click += delegate { if (inputBox.Text.Length >= 25) { AlertBoxComponent tooLongAlert = new AlertBoxComponent(this); tooLongAlert.Setup("Value Too Long", "The value you have entered is too long to be put on the card. Please shorten your input."); tooLongAlert.Show(); } else { _nfc.WriteDetection(spinner.GetSelected(), inputBox.Text, this, this); closeButton.Text = "Close"; } }; }
/* * Method name: SaveExistingEvent * Purpose: To save a picture to an existing event */ public bool SaveExistingEvent(SpinnerComponent spinner, bool ticked) { Database.Database db = new Database.Database(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), "ShareMyDay.db3"); var storyEvent = db.FindEventByValue(spinner.GetSelected()); if (storyEvent.InStory) { return(false); } else { storyEvent.Finished = ticked; var picture = new Picture { EventId = storyEvent.Id, Path = GetImageUrl(), }; return(db.InsertEvent(false, storyEvent, null, picture, null) != 0); } }
/* * Method name: OnCreate * Purpose: Used to add functionality to the camera page */ protected override void OnCreate(Bundle savedInstanceState) { //To allow the use of picture URL, found from https://stackoverflow.com/questions/39242026/fileuriexposedexception-in-android-n-with-camera/42632654 StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.SetVmPolicy(builder.Build()); base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.PictureViewer); Typeface buttonFont = Typeface.CreateFromAsset(Assets, "Kano.otf"); _previousActivity = Intent.GetStringExtra("PreviousActivity"); SpinnerComponent spinner = new SpinnerComponent(this, Resource.Id.eventSelector, this); spinner.Setup(); CheckBox eventComplete = FindViewById <CheckBox>(Resource.Id.eventComplete); bool ticked = false; eventComplete.Click += delegate { if (eventComplete.Checked) { ticked = true; } else { ticked = false; } }; _imageViewer = _camera.GetImageViewer(Resource.Id.imageView, this); _camera.Start(_imageViewer, this, _previousActivity); CancelButtonComponent cancelButton = new CancelButtonComponent(this); cancelButton.Get().SetTypeface(buttonFont, TypefaceStyle.Bold); cancelButton.Get().Click += (o, e) => { cancelButton.Functionality(_previousActivity, this); }; Button submitButton = FindViewById <Button>(Resource.Id.submitButton); submitButton.SetTypeface(buttonFont, TypefaceStyle.Bold); bool anotherPicture = false; submitButton.Click += (o, e) => { if (anotherPicture == false) { bool uploadedSuccessful; if (spinner.GetSelected().Equals("New Event")) { uploadedSuccessful = _camera.SaveNewEvent(ticked); } else { uploadedSuccessful = _camera.SaveExistingEvent(spinner, ticked); } if (uploadedSuccessful) { spinner.Disable(); eventComplete.Enabled = false; submitButton.Text = "Take Another Picture"; cancelButton.Get().Text = "Close"; AlertBoxComponent voiceRecording = new AlertBoxComponent(this); voiceRecording.RepeateFunctionSetup <VoiceRecordingActivity>("Take Voice Recording", "Do you want to take a voice recording?", this, this, _previousActivity); voiceRecording.Show(); anotherPicture = true; } else { AlertBoxComponent errorUplaodingAlertBox = new AlertBoxComponent(this); errorUplaodingAlertBox.Setup("Cannot Add To Event", "This event has already been made into a story and cannot be updated. Select a different event or make a new event."); errorUplaodingAlertBox.Show(); } } else { Intent repeatedActivity = new Intent(this, typeof(CameraActivity)); repeatedActivity.PutExtra("PreviousActivity", _previousActivity); StartActivity(repeatedActivity); } }; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.VoiceRecView); Typeface buttonFont = Typeface.CreateFromAsset(Assets, "Kano.otf"); string previousActivity = Intent.GetStringExtra("PreviousActivity"); SpinnerComponent spinner = new SpinnerComponent(this, Resource.Id.eventSelector, this); spinner.Setup(); Button startRecordingButton = FindViewById <Button> (Resource.Id.startRecordingButton); startRecordingButton.SetTypeface(buttonFont, TypefaceStyle.Bold); startRecordingButton.SetBackgroundColor(Color.ParseColor("#213f5e")); startRecordingButton.SetTextColor(Color.White); startRecordingButton.SetTextSize(ComplexUnitType.Dip, 15); Button playRecordingButton = FindViewById <Button> (Resource.Id.playButton); playRecordingButton.SetTypeface(buttonFont, TypefaceStyle.Bold); playRecordingButton.SetBackgroundResource(Resource.Drawable.ButtonGenerator); playRecordingButton.SetTextColor(Color.White); playRecordingButton.SetTextSize(ComplexUnitType.Dip, 15); Button submitButton = FindViewById <Button>(Resource.Id.submitButton); submitButton.SetTypeface(buttonFont, TypefaceStyle.Bold); submitButton.SetBackgroundResource(Resource.Drawable.ButtonGenerator); submitButton.SetTextColor(Color.White); submitButton.SetTextSize(ComplexUnitType.Dip, 15); playRecordingButton.Enabled = false; playRecordingButton.SetBackgroundResource(Resource.Drawable.ButtonDimmedGenerator); playRecordingButton.SetTextColor(Color.ParseColor("#969a90")); VoiceRecording.VoiceRecording voiceRecorder = new VoiceRecording.VoiceRecording(); CancelButtonComponent cancelButton = new CancelButtonComponent(this); cancelButton.Get().SetTypeface(buttonFont, TypefaceStyle.Bold); cancelButton.Get().SetBackgroundResource(Resource.Drawable.ButtonGenerator); cancelButton.Get().SetTextColor(Color.White); cancelButton.Get().SetTextSize(ComplexUnitType.Dip, 15); cancelButton.Get().Click += (o, e) => { cancelButton.Functionality(previousActivity, this); }; startRecordingButton.Click += delegate { startRecordingButton.SetTextColor(Color.Black); if (startRecordingButton.Text.Equals("Redo voice recording")) { voiceRecorder.Begin(startRecordingButton, submitButton, playRecordingButton, true); } else { voiceRecorder.Begin(startRecordingButton, submitButton, playRecordingButton, false); } }; playRecordingButton.Click += delegate { voiceRecorder.Play(); startRecordingButton.Text = "Redo voice recording"; }; CheckBox eventComplete = FindViewById <CheckBox>(Resource.Id.eventComplete); bool ticked = false; eventComplete.Click += delegate { if (eventComplete.Checked) { ticked = true; } else { ticked = false; } }; submitButton.Enabled = false; submitButton.SetBackgroundResource(Resource.Drawable.ButtonDimmedGenerator); submitButton.SetTextColor(Color.ParseColor("#969a90")); bool anotherRecording = false; submitButton.Click += (o, e) => { if (anotherRecording == false) { //submit to database stuff goes here bool uploadedSuccessful; if (spinner.GetSelected().Equals("New Event")) { uploadedSuccessful = voiceRecorder.SaveNewEvent(ticked); } else { uploadedSuccessful = voiceRecorder.SaveExistingEvent(spinner, ticked); } if (uploadedSuccessful) { spinner.Disable(); eventComplete.Enabled = false; submitButton.Text = "Take Another Voice Recording"; cancelButton.Get().Text = "Close"; startRecordingButton.Enabled = false; startRecordingButton.SetBackgroundColor(Color.ParseColor("#142635")); startRecordingButton.SetTextColor(Color.ParseColor("#969a90")); playRecordingButton.Enabled = false; playRecordingButton.SetBackgroundResource(Resource.Drawable.ButtonDimmedGenerator); playRecordingButton.SetTextColor(Color.ParseColor("#969a90")); AlertBoxComponent voiceRecording = new AlertBoxComponent(this); voiceRecording.RepeateFunctionSetup <CameraActivity>("Take Picture", "Do you want to take a picture?", this, this, previousActivity); voiceRecording.Show(); anotherRecording = true; } else { AlertBoxComponent errorUplaodingAlertBox = new AlertBoxComponent(this); errorUplaodingAlertBox.Setup("Cannot Add To Event", "This event has already been made into a story and cannot be updated. Select a different event or make a new event."); errorUplaodingAlertBox.Show(); } } else { Intent repeatedActivity = new Intent(this, typeof(VoiceRecordingActivity)); repeatedActivity.PutExtra("PreviousActivity", previousActivity); StartActivity(repeatedActivity); } }; }