private void SetBinding() { var bindingSet = this.CreateBindingSet <SettingsView, SettingsViewModel>(); bindingSet.Bind(HoursList) .For(v => v.ItemsSource) .To(vm => vm.HoursList); bindingSet.Bind(addHour) .For(nameof(View.Click)) .To(vm => vm.AddHour); bindingSet.Bind(soundLabel) .For(v => v.Text) .To(vm => vm.RingUri) .WithConversion(new InlineValueConverter <string, string>((arg) => { var uri = Android.Net.Uri.Parse(arg); Ringtone ringtone = RingtoneManager.GetRingtone(this, uri); return(RingtoneManager.IsDefault(uri) ? "Default" : ringtone.GetTitle(this)); })); bindingSet.Bind(this.snooze) .For(v => v.Text) .To(vm => vm.SnoozeMinutes) .WithConversion(new InlineValueConverter <int, string>(arg => Humanizer.TimeSpanHumanizeExtensions.Humanize(TimeSpan.FromMinutes(arg), maxUnit: Humanizer.Localisation.TimeUnit.Minute, minUnit: Humanizer.Localisation.TimeUnit.Minute))); bindingSet.Bind(this.window) .For(v => v.Text) .To(vm => vm.WindowHours) .WithConversion(new InlineValueConverter <int, string>(arg => $"+/- {Humanizer.TimeSpanHumanizeExtensions.Humanize(TimeSpan.FromHours(arg), maxUnit: Humanizer.Localisation.TimeUnit.Hour, minUnit: Humanizer.Localisation.TimeUnit.Hour)}")); bindingSet.Apply(); }
string ConvertSoundUriToTitle(string soundUri) { string title = null; if (soundUri.IsNullOrEmpty()) { title = GetString(Resource.String.sound_none); } else if (RingtoneManager.IsDefault(Uri.Parse(soundUri))) { title = GetString(Resource.String.sound_default); } else { try { // Query the ContentProvider for information about the Uri. using (var cursor = _context.ContentResolver.Query( Uri.Parse(soundUri), new String[] { MediaStore.MediaColumns.Title }, null, null, null)) { // We want the sound file's title metadata. var titleColumn = cursor.GetColumnIndexOrThrow(MediaStore.MediaColumns.Title); if (cursor != null && cursor.MoveToFirst()) { title = cursor.GetString(titleColumn); } } } catch (Java.Lang.Exception e) { // We couldn't query for a title, but it wasn't for a reason we know about. title = GetString(Resource.String.sound_unknown); Console.WriteLine("ConvertSoundUriToTitle(): Couldn't get title: " + e); } } return(title); }