public void DeleteTone(AlarmTone alarmTone) { Realm.Write(() => { GetSettings().AllAlarmTones.Remove(alarmTone); }); }
/// <summary> /// Handles setting the current tone value /// </summary> /// <param name="value">Value.</param> void SetSelectedTone(AlarmTone value) { var isSelectedNull = value.Equals(default(AlarmTone)) || value == null; if (isSelectedNull) { _selectedTone = null; return; } //if the user selected the 'choose custom tone' option, display file explorer var wasSelectCustomToneSelected = value.Equals(Defaults.Tones[0]); if (wasSelectCustomToneSelected) { _fileLocator.OpenFileLocator(); _fileLocator.FileChosen += ToneFileChosen; return; } //_selectedTone = value; PlayTone(value); AddConfirmToolbarItem(); _selectedTone = value; RaisePropertyChanged("SelectedTone"); }
public AlarmToneNamingPopupPage(AlarmTone tone) { InitializeComponent(); _toneToEdit = tone; ToneNameEntry.Text = tone.Name; _isEditMode = true; }
/// <summary> /// Saves the tone to settings when the tone has been selected /// </summary> /// <param name="alarmTone">The selected alarm tone</param> void OnToneSelected(AlarmTone alarmTone) { _alarmStorage.Realm.Write(() => { _alarmStorage.GetSettings().AlarmTone = alarmTone; }); }
public void AddTone(AlarmTone alarmTone) { Realm.Write(() => { GetSettings().AllAlarmTones.Add(alarmTone); }); }
/// <summary> /// Constructor for the struct /// </summary> /// <param name="Display">display string</param> /// <param name="status">status from enum</param> /// <param name="time">DateTime</param> public Alarm(string Display, AlarmStatus status, DateTime time, AlarmTone alarmTone, uint snoozeLength) : this() { DateTime = time; DisplayString = Display; AlarmStatus = status; SnoozeLength = snoozeLength; AlarmTone = alarmTone; }
/// <summary> /// Deletes the given alarm tone /// </summary> /// <param name="alarmTone">Alarm tone to delete</param> void DeleteAlarmTone(AlarmTone alarmTone) { AllAlarmTones.Remove(alarmTone); _alarmStorage.Realm.Write(() => { _alarmStorage.Realm.Remove(alarmTone); }); _soundService.StopAudio(); }
private void SetMediaPlayer() { if (IsAlarmOn) { AlarmTone alarmTone = tonesRepo.Tones.FirstOrDefault(a => a.Name == toneName); if (alarmTone == null) { alarmTone = tonesRepo.Tones.First(); } _soundService?.PlayAudio(alarmTone, true, alarmVolume); } }
public void PlayAudio(AlarmTone alarmTone, bool isLooping, int volume) { if (_audioPlayer != null) { _audioPlayer.FinishedPlaying -= Player_FinishedPlaying; _audioPlayer.Stop(); } string localUrl = alarmTone.Path; _audioPlayer = AVAudioPlayer.FromUrl(NSUrl.FromFilename(localUrl)); _audioPlayer.FinishedPlaying += Player_FinishedPlaying; _audioPlayer.Play(); }
public override void Init(object initData) { base.Init(initData); Settings = _alarmStorage.GetSettings(); AllAlarmTones = new ObservableCollection <AlarmTone>(_alarmStorage.GetAllTones()); // if we are setting an individual alarm's tone if (initData is Alarm newAlarm) { _isIndividualAlarmTone = true; _selectedTone = _alarmStorage.GetTone(newAlarm.Tone); RaisePropertyChanged("SelectedTone"); } }
/// <summary> /// Action to be done when a newly added tone has its name set /// </summary> /// <param name="toneName">The name to be given to the alarm tone</param> void OnNewToneNameSet(string toneName) { var newTone = new AlarmTone { Name = toneName, Path = _newToneUri.LocalPath, IsCustomTone = true }; AllAlarmTones.Add(newTone); _alarmStorage.AddTone(newTone); _namingPopupPage.ToneNameSet -= OnNewToneNameSet; _fileLocator.FileChosen -= ToneFileChosen; SetSelectedTone(newTone); FileNeedsNamed = false; }
void ToneFileChosen(string path) { var filename = Path.GetFileNameWithoutExtension(path); var newTone = new AlarmTone { Name = filename, Path = path, IsCustomTone = true }; App.AlarmToneRepo.SaveTone(newTone); AllAlarmTones.Add(new SettingTone(newTone.Name, false)); _fileLocator.FileChosen -= ToneFileChosen; }
public void PlayAudio(AlarmTone alarmTone, bool isLooping) { StopAudio(); var isADefaultTone = Defaults.Tones.FirstOrDefault(x => x.Path == alarmTone.Path) != default(AlarmTone); if (isADefaultTone) { _assetFileDescriptor = Forms.Context.Assets.OpenFd(alarmTone.Path); _mediaPlayer.SetDataSource(_assetFileDescriptor.FileDescriptor, _assetFileDescriptor.StartOffset, _assetFileDescriptor.Length); } else { string alarmTonePath; string[] split = alarmTone.Path.Split(':'); alarmTonePath = split[1]; _mediaPlayer.SetDataSource(alarmTonePath); } _mediaPlayer.Looping = isLooping; _mediaPlayer.Prepare(); _mediaPlayer.Start(); }
public void PlayAudio(AlarmTone alarmTone, bool isLooping, int volume) { StopAudio(); if (alarmTone.IsCustomTone) { FileInputStream fis = new FileInputStream(alarmTone.Path); FileDescriptor fd = fis.FD; _mediaPlayer.SetDataSource(fd); } else { _assetFileDescriptor = Application.Context.Assets.OpenFd(alarmTone.Path); _mediaPlayer.SetDataSource(_assetFileDescriptor.FileDescriptor, _assetFileDescriptor.StartOffset, _assetFileDescriptor.Length); } if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop) { _mediaPlayer.SetAudioAttributes(new AudioAttributes.Builder() .SetUsage(AudioUsageKind.Alarm) .SetContentType(AudioContentType.Sonification) .Build()); } else { _mediaPlayer.SetAudioStreamType(Stream.Alarm); } var maxVolume = 10; float log1 = (float)(Math.Log(maxVolume - volume) / Math.Log(maxVolume)); _mediaPlayer.SetVolume(1 - log1, 1 - log1); _mediaPlayer.Looping = isLooping; _mediaPlayer.Prepare(); _mediaPlayer.Start(); }
public int DeleteTone(AlarmTone alarmTone) { return(ItemDatabase.DeleteObject <AlarmTone>(alarmTone.Id)); }
async void EditAlarmTone(AlarmTone alarmTone) { _namingPopupPage = new AlarmToneNamingPopupPage(alarmTone); await PopupNavigation.Instance.PushAsync(_namingPopupPage); }
void PlayTone(AlarmTone tone) { _soundService.PlayAudio(tone); }
public void PlayAudio(AlarmTone alarmTone, int volume) { PlayAudio(alarmTone, false, volume); }
public int SaveTone(AlarmTone alarmTone) { return(ItemDatabase.SaveObject(alarmTone)); }
public void PlayAudio(AlarmTone alarmTone) { PlayAudio(alarmTone, false); }