async Task OnContactAdded()
        {
            var contactsPage = new ContactsPage();

            contactsPage.NewConversationRequest += async(selectedContacts) =>
            {
                if (App.ConversationManager.FindConversation(selectedContacts) != null)
                {
                    await ConversationsPage.PushConversation(
                        App.ConversationManager.StartConversation(selectedContacts),
                        this.masterDetailPage.Parent as MasterDetailPage);

                    return;
                }

                var editPageContext = new EditPageViewModel
                {
                    DefaultText = "Enter Topic Name..."
                };
                editPageContext.EditFinished += async(sender, e) =>
                {
                    var topicName = string.IsNullOrEmpty(e) ? "New Topic" : e;
                    await this.navigation.PopModalAsync(true);

                    await ConversationsPage.PushConversation(
                        App.ConversationManager.StartConversation(selectedContacts),
                        this.masterDetailPage.Parent as MasterDetailPage,
                        topicName);
                };

                await this.navigation.PushModalAsync(new EditPage
                {
                    BindingContext = editPageContext
                }, true);
            };

            await this.navigation.PushModalAsync(new NavigationPage(contactsPage)
            {
                BarBackgroundColor = (Color)Application.Current.Resources["primaryBlue"],
                BarTextColor       = Color.White
            });
        }
Exemple #2
0
        async void OnItemAdded(object sender, EventArgs e)
        {
            var editPageContext = new EditPageViewModel
            {
                DefaultText = "Enter Topic Name..."
            };

            editPageContext.EditFinished += async(s, ev) =>
            {
                var topicName = string.IsNullOrEmpty(ev) ? "New Topic" : ev;
                await Navigation.PopModalAsync(true);

                var bindingContex = BindingContext as TopicsPageViewModel;
                var conversation  = App.ConversationManager.StartConversation(bindingContex.Participants);
                await StartChat(conversation.StartTopic(Guid.NewGuid().ToString(), topicName));
            };

            await Navigation.PushModalAsync(new EditPage
            {
                BindingContext = editPageContext
            }, true);
        }