protected override void OnCreate(Bundle bundle) { base.OnCreate (bundle); gmb = new Gmusicbrowser("macdesktop.orospakr.ca", 8081); // Set our view from the "main" layout resource SetContentView (Resource.Layout.Main); playButton = FindViewById<ImageButton> (Resource.Id.PlayButton); titleTextView = FindViewById <TextView> (Resource.Id.TitleTextView); artistTextView = FindViewById <TextView> (Resource.Id.ArtistTextView); ratingBar = FindViewById <RatingBar> (Resource.Id.RatingBar); nextButton = FindViewById <ImageButton> (Resource.Id.NextButton); prevButton = FindViewById <ImageButton> (Resource.Id.PrevButton); volumeSeekBar = FindViewById <SeekBar> (Resource.Id.VolumeSeekBar); songSeekBar = FindViewById <SeekBar> (Resource.Id.SongSeekbar); playButton.Click += (sender, args) => { // button.Text = string.Format ("{0} clicks!", count++); gmb.PushNewPlayerState(new Player() { Playing = currentState.Playing == 1 ? 0 : 1 }).ContinueWith((playerResult) => { if(playerResult.IsFaulted) { } else { HandleUpdatedStateFromNetwork(playerResult.Result); } }); }; ratingBar.RatingBarChange += (sender, e) => { if(currentState != null && currentState.Current != null) { var newSong = new Song() { Id = currentState.Current.Id, Rating = (int)(ratingBar.Rating * 20)}; gmb.PostUpdatedSong(newSong); } }; nextButton.Click += (sender, e) => { gmb.Next().ContinueWith((playerResult) => { HandleUpdatedStateFromNetwork(playerResult.Result); }); }; prevButton.Click += (sender, e) => { gmb.Previous ().ContinueWith((playerResult) => { HandleUpdatedStateFromNetwork(playerResult.Result); }); }; volumeSeekBar.ProgressChanged += (sender, e) => { if(!preventSeekBarUpdates) { gmb.PushNewPlayerState (new Player() { Volume = volumeSeekBar.Progress / (float)100 }); } }; songSeekBar.ProgressChanged += (sender, e) => { if(!preventSeekBarUpdates) { gmb.PushNewPlayerState (new Player() { PlayPosition = songSeekBar.Progress }); } }; prog = new ProgressDialog (this); prog.SetProgressStyle(ProgressDialogStyle.Spinner); prog.SetMessage(this.GetString(Resource.String.connection_progress)); prog.Show (); }
public override void ViewDidLoad() { base.ViewDidLoad (); addBarButton = new UIBarButtonItem(UIBarButtonSystemItem.Add); addBarButton.Enabled = false; this.NavigationItem.RightBarButtonItem = addBarButton; serverListTableSource = new ServerListTableSource(this, this.ServerList, () => { addBarButton.Enabled = true; }); this.ServerList.Source = serverListTableSource; addBarButton.Clicked += (sender, e) => { var hostEdit = new EntryElement("Hostname", "Host or IP address", ""); var portEdit = new EntryElement("Port", "TCP port the HTTP server listens on", ""); var gmbSettings = new Section() { hostEdit, portEdit }; var root = new RootElement("GMB Coordinates") { gmbSettings }; var settingsDialogVC = new DialogViewController(root); var backButton = new UIBarButtonItem(UIBarButtonSystemItem.Add, (s, args) => { Gmusicbrowser newGmb; try { newGmb = new Gmusicbrowser(hostEdit.Value, UInt16.Parse (portEdit.Value)); } catch (Exception formatEx) { Debug.WriteLine(formatEx.Message); var alert = new UIAlertView("Bogus Input", "Invalid host or port", null, "OK"); alert.Message = "Invalid host or port."; alert.AlertViewStyle = UIAlertViewStyle.Default; alert.Show (); return; } this.NavigationController.PopViewControllerAnimated(true); serverListTableSource.InsertNewServer(newGmb); }); settingsDialogVC.NavigationItem.RightBarButtonItem = backButton; this.NavigationController.PushViewController(settingsDialogVC, true); }; // Perform any additional setup after loading the view, typically from a nib. }
public void SetGmusicbrowser(Gmusicbrowser gmb) { // this.detailDescriptionLabel.Text = gmb.Hostname; if (this.gmb != gmb) { this.gmb = gmb; // Update the view ConfigureView (); UpdateFromServer (); } if (this.popoverController != null) this.popoverController.Dismiss (true); }
public void InsertNewServer(Gmusicbrowser newServer) { if (currentServers == null) { return; } var newPos = currentServers.Count; currentServers.Add (newServer); var path = NSIndexPath.FromRowSection(newPos, 0); this.table.InsertRows(new NSIndexPath[] { path }, UITableViewRowAnimation.Fade); this.serverList.WriteToStorage(this.currentServers); // we'll just let that go off async, best-effort basis }