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++; } }
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); }