public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);

            ConfigureTitleMenu();

            if (Reachability.IsNetworkAvailable())
            {
                InvokeInBackground(() =>
                {
                    if (!isNavigatedForward)
                    {
                        CreateMqttConnection();
                    }
                });
            }
        }
예제 #2
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            // Perform any additional setup after loading the view, typically from a nib.
            View.BackgroundColor = UIColor.White;
            Title                        = "Movie Searching App ";
            TableView.Source             = new TableSource(this);
            TableView.RowHeight          = UITableView.AutomaticDimension;
            TableView.EstimatedRowHeight = 400f;
            TableView.SeparatorStyle     = 0;

            searchBar             = new UISearchBar();
            searchBar.Placeholder = "Enter Movie Title";
            searchBar.SizeToFit();
            searchBar.AutocorrectionType     = UITextAutocorrectionType.No;
            searchBar.AutocapitalizationType = UITextAutocapitalizationType.None;
            searchBar.SearchButtonClicked   += (sender, e) =>
            {
                // check whetehr seach has string or not
                if (!string.IsNullOrEmpty(searchBar.Text))
                {
                    // first check network
                    if (Reachability.IsNetworkAvailable())
                    {
                        Search();
                    }
                    else
                    {
                        new UIAlertView("", "No network connection is available. Please check your netowrk.", null, "OK").Show();
                    }
                }
                else
                {
                    new UIAlertView("", "Please enter searching string", null, "OK").Show();
                }
            };

            TableView.TableHeaderView = searchBar;
        }
        public override async void PressedSendButton(UIButton button, string text, string senderId, string senderDisplayName, NSDate date)
        {
            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, Encoding.UTF8.GetBytes(text), MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE, false);

            var message = new Message(SenderId, SenderDisplayName, NSDate.Now, text);

            if (message != null)
            {
                messages.Add(message);

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

            FinishSendingMessage(true);

            await Task.Delay(500);
        }
        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);
        }
예제 #5
0
        private void FetchLyrics()
        {
            stateMachine.StartLoading();

            if (Reachability.IsNetworkAvailable())
            {
                script = new NSAppleScript(File.ReadAllText("Scripts/GetCurrentSong.txt"));
                result = script.ExecuteAndReturnError(out errors);

                //The NumberofItems property is being used to handle different use cases. Check GetCurrentSong.txt in Scripts folder to know more
                if (result.NumberOfItems == 3)
                {
                    artist = result.DescriptorAtIndex(1).StringValue;
                    track  = result.DescriptorAtIndex(2).StringValue;
                    app    = result.DescriptorAtIndex(3).StringValue;

                    var lyrics = lyricsHelper.GetLyrics(track, artist, (response, artist_name, share_url) =>
                    {
                        tracklyrics = JsonConvert.DeserializeObject <TrackLyrics.RootObject>(response);

                        if (tracklyrics.message.body.lyrics.instrumental == 0)
                        {
                            track_share_url = share_url;
                            stateMachine.ShowContent();
                        }
                        else
                        {
                            stateMachine.ShowEmpty();
                        }
                    });
                }
                else if (result.NumberOfItems == 0)
                {
                    switch (result.StringValue)
                    {
                    //Transitioning to error state of state machine and calling the corresponding delegate method
                    //These delegates method are being used so that one view can be reused for various error cases.
                    case "1":
                        stateMachine.ShowError();
                        NothingPlayingFound?.Invoke(this, null);
                        break;

                    case "2":
                        stateMachine.ShowError();
                        NoMusicAppRunningFound?.Invoke(this, null);
                        break;

                    case "3":
                        stateMachine.ShowError();
                        MultiPlayingFound?.Invoke(this, null);
                        break;
                    }
                }
                else
                {
                    stateMachine.ShowError();
                    LyricsNotFoundOccurred?.Invoke(this, null);
                }
            }

            else
            {
                stateMachine.ShowError();
                NetworkErrorOccurred?.Invoke(this, null);
            }
        }
 /// <summary>
 /// Determines whether the device is connected or not.
 /// </summary>
 /// <returns><c>true</c>, if device connected was ised, <c>false</c> otherwise.</returns>
 internal static bool IsDeviceConnected()
 {
     return(Reachability.IsNetworkAvailable());
 }