public override async void PressedSendButton(UIButton button, string text, string senderId, string senderDisplayName, NSDate date)
        {
            //Clear the text and play a send sound
            InputToolbar.ContentView.TextView.Text = "";
            InputToolbar.ContentView.RightBarButtonItem.Enabled = false;
            SystemSoundPlayer.PlayMessageSentSound();

            //set message details and add to the message queue
            var message = new Message("2CC8343", "You", NSDate.Now, text);

            messages.Add(message);
            FinishReceivingMessage(true);

            //Show typing indicator to add to the natual feel of the bot
            ShowTypingIndicator = true;

            //send message to bot and await the message set
            ms = await SendMessage(text);

            //iterate through our message set, and print new messasges from the bot
            while (ms.messages.Length > messageCount)
            {
                if (ms.messages[messageCount].from == "Test1993")
                {
                    ScrollToBottom(true);

                    SystemSoundPlayer.PlayMessageReceivedSound();

                    Message messageBot;

                    if (ms.messages[messageCount].text != null)
                    {
                        messageBot = new Message(friend.Id, friend.DisplayName, NSDate.Now, ms.messages[messageCount].text);
                        messages.Add(messageBot);
                    }

                    string[] msg_images = ms.messages[messageCount].images;
                    if (msg_images.Length > 0)
                    {
                        string         image_url = msg_images[0];
                        UIImage        img       = FromUrl(image_url);
                        PhotoMediaItem item      = new PhotoMediaItem(img);
                        messageBot = new Message(friend.Id, friend.DisplayName, NSDate.Now, item);
                        messages.Add(messageBot);
                    }

                    FinishReceivingMessage(true);
                    InputToolbar.ContentView.RightBarButtonItem.Enabled = true;
                }

                messageCount++;
            }
        }
Beispiel #2
0
		async Task<Message> CreateOverflowMessageAsync (string source, User user)
		{
			WebClient client = new WebClient ();
			var catUrl = await client.DownloadStringTaskAsync (
				new Uri (string.Format ("http://{0}/api/query?limit=1&order=random", source)));
			
			var data = await client.DownloadDataTaskAsync (catUrl);

			var image = CreateAnimatedImage (data);


			var photoItem = new PhotoMediaItem (image);
			photoItem.AppliesMediaViewMaskAsOutgoing = false;
			return Message.Create (user.Id, user.DisplayName, photoItem);
		}
        async Task <Message> CreateOverflowMessageAsync(string source, User user)
        {
            WebClient client = new WebClient();
            var       catUrl = await client.DownloadStringTaskAsync(
                new Uri (string.Format("http://{0}/api/query?limit=1&order=random", source)));

            var data = await client.DownloadDataTaskAsync(catUrl);

            var image = CreateAnimatedImage(data);


            var photoItem = new PhotoMediaItem(image);

            photoItem.AppliesMediaViewMaskAsOutgoing = false;
            return(Message.Create(user.Id, user.DisplayName, photoItem));
        }
        protected void FinishedPickingImageFromMedia(object sender, UIImagePickerMediaPickedEventArgs e)
        {
            var galleryController = sender as UIImagePickerController;

            bool isImage = false;

            switch (e.Info[UIImagePickerController.MediaType].ToString())
            {
            case "public.image":
                isImage = true;
                break;

            case "public.video":
                break;
            }

            if (isImage)
            {
                var image = e.Info[UIImagePickerController.OriginalImage] as UIImage;
                if (image != null)
                {
                    string imageName = null;
                    string extension = null;

                    var refUrl = e.Info[UIImagePickerController.ReferenceUrl] as NSUrl;
                    if (refUrl != null)
                    {
                        var assetsLibrary = new ALAssetsLibrary();
                        assetsLibrary.AssetForUrl(refUrl,
                                                  async resultBlock =>
                        {
                            var imageRepresentation = resultBlock.DefaultRepresentation;
                            imageName = imageRepresentation.Filename;
                            imageName = imageName.ToLower();
                            extension = imageName.Split('.')[1];

                            var imageData = image.AsJPEG(0.3f);

                            var photoMediaItem = new PhotoMediaItem(image);


                            if (!Reachability.IsNetworkAvailable())
                            {
                                new UIAlertView("Alert", "Please check your internet connection!", null, "Ok", null).Show();
                                return;
                            }

                            SystemSoundPlayer.PlayMessageSentSound();

                            if (client == null)
                            {
                                CreateMqttConnection();
                            }

                            client.Publish(TOPIC_PUBLISH, imageData.ToArray(), MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE, false);

                            var message1 = new Message(SenderId, SenderDisplayName, NSDate.Now, photoMediaItem);
                            if (message1 != null)
                            {
                                messages.Add(message1);

                                var conn = new SQLiteConnection(ChatterDatabase.DatabasePath());
                                var s    = conn.Insert(new ChatUserModel()
                                {
                                    Id          = SenderId,
                                    DisplayName = SenderDisplayName,
                                    ChatDate    = DateTime.Now,
                                    Text        = imageName
                                });
                            }

                            FinishSendingMessage(true);

                            await Task.Delay(500);


                            var message2 = new Message(friend.Id, friend.DisplayName, NSDate.Now, "Hello, Ramakant!!! your State: Maharashtra, Town: Sangali, Fruit: Mango, Current Rate: 150/Kg, Logistics: Rajeev Transport 400 per trip");
                            if (message2 != null)
                            {
                                messages.Add(message2);

                                var conn = new SQLiteConnection(ChatterDatabase.DatabasePath());
                                var s    = conn.Insert(new ChatUserModel()
                                {
                                    Id          = friend.Id,
                                    DisplayName = friend.DisplayName,
                                    ChatDate    = DateTime.Now,
                                    Text        = "Hello, Ramakant!!! your State: Maharashtra, Town: Sangali, Fruit: Mango, Current Rate: 150/Kg, Logistics: Rajeev Transport 400 per trip"
                                });
                            }

                            FinishSendingMessage(true);

                            await Task.Delay(500);
                        },
                                                  failureBlock =>
                        {
                        });
                    }
                    else
                    {
                    }
                }
            }

            galleryController.DismissViewController(true, null);
        }