public InitializePage(IDialerService dialerService)
        {
            InitializeComponent();

            var model = new LoaderViewModel(dialerService);

            model.Navigation = Navigation;

            BindingContext = model;
        }
Exemple #2
0
        public ContactList(IDialerService dialerService)
        {
            InitializeComponent();
            var model = new ContactListViewModel(dialerService);

            model.Navigation = Navigation;

            model.SwitchToDialPage = () =>
            {
                CurrentPage = Children[1];
            };

            BindingContext = model;
        }
        // Constructor
        public LoaderViewModel(IDialerService dialerService)
        {
            this.dialerService = dialerService;

            Proceed = new Command <string>(async(key) =>
            {
                var page = new ContactList(dialerService);
                contacts.ForEach(c => ((ContactListViewModel)page.BindingContext).Contacts.Add(c));

                await Navigation.PushAsync(page);
                // Add the key to the input string.
            });

            Task.Run(async() => await LoadDataAsync());
        }
        public ContactListViewModel(IDialerService dialerService)
        {
            AddContact = new Command <string>(async(key) =>
            {
                var page = new ContactDetail();
                ((ContactDetailViewModel)page.BindingContext).Contact  = new Contact();
                ((ContactDetailViewModel)page.BindingContext).Contacts = Contacts;
                await Navigation.PushAsync(page);
            });

            EditContact = new Command <Contact>(async(c) =>
            {
                var page = new ContactDetail();
                ((ContactDetailViewModel)page.BindingContext).Contact  = c;
                ((ContactDetailViewModel)page.BindingContext).Contacts = Contacts;

                ((ContactDetailViewModel)page.BindingContext).FirstName     = c?.FirstName;
                ((ContactDetailViewModel)page.BindingContext).LastName      = c?.LastName;
                ((ContactDetailViewModel)page.BindingContext).ContactNumber = c?.ContactNumber;

                await Navigation.PushAsync(page);
            });

            DeleteContact = new Command <Contact>((c) =>
            {
                Contacts.Remove(c);
            });

            FavoriteContact = new Command <Contact>((c) =>
            {
                var favoriteCount = Contacts.Count(i => i.IsFavorite);

                if (favoriteCount < 10 || c.IsFavorite)
                {
                    c.IsFavorite = !c.IsFavorite;
                }
            });

            DialButtonPressed = new Command <string>((c) =>
            {
                if (string.IsNullOrWhiteSpace(c) && DialpadDisplay.Length > 0)
                {
                    DialpadDisplay = DialpadDisplay.Substring(0, (DialpadDisplay.Length - 1));
                    return;
                }

                DialpadDisplay += c;
            });

            DialContact = new Command <Contact>((c) =>
            {
                //DialpadDisplay = c.ContactNumber;
                //SwitchToDialPage();
                dialerService.DialPhoneNumber(c.ContactNumber);
                //Device.OpenUri(new Uri($"tel://{c.ContactNumber}"));
            });

            CallContact = new Command(() =>
            {
                dialerService.DialPhoneNumber(DialpadDisplay);
                //Device.OpenUri(new Uri($"tel://{DialpadDisplay}"));
            });

            DialpadDisplay              = "";
            SearchText                  = "";
            Contacts                    = new ObservableCollection <Contact>();
            Contacts.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(CollectionChangedMethod);
        }
 public App(IDialerService dialerService)
 {
     InitializeComponent();
     MainPage = new NavigationPage(new InitializePage(dialerService));
 }