Example #1
0
        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();
        }
Example #2
0
        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);
        }