Ejemplo n.º 1
0
        void ShowTracksInListView()
        {
            lvm = ListViewMode.kTrackList;
            ReturnPlaylists.Visibility   = Visibility.Visible;
            LabelPlayPlayList.Visibility = Visibility.Visible;
            RecalculateListView();


            //var gridView = new GridView();
            //listView.View = gridView;
            for (int i = 0; i < listTracksFromPL.Count; i++)
            {
                Label l = new Label();
                l.Foreground = foregroundLabelBrush;
                l.Content    = listTracksFromPL[i].Track.Name;
                l.FontFamily = new FontFamily("Segoe UI Light");

                //gridView.Columns

                PlayList.SpotPlayListLabel openLabel = new PlayList.SpotPlayListLabel();
                openLabel.Content = "Play";

                openLabel.MouseUp       += OpenLabelClicked;
                openLabel.playlistId     = 0;
                openLabel.spotifyTrackId = listTracksFromPL[i].Track.Uri;

                listView.Items.Add(new PlayList.SpotListViewItem {
                    Name = l, Open = openLabel, playListId = i
                });
            }

            foregroundLabelBrush = new SolidColorBrush(foregroundColor);
        }
Ejemplo n.º 2
0
        void ShowPlayListsInView()
        {
            lvm = ListViewMode.kPlayList;
            ReturnPlaylists.Visibility   = Visibility.Collapsed;
            LabelPlayPlayList.Visibility = Visibility.Collapsed;
            RecalculateListView();


            //var gridView = new GridView();
            //listView.View = gridView;
            for (int i = 0; i < playListNames.Count; i++)
            {
                Label l = new Label();
                l.Foreground = new SolidColorBrush(foregroundColor);
                l.Content    = playListNames[i];
                l.FontFamily = new FontFamily("Segoe UI Light");

                //gridView.Columns

                PlayList.SpotPlayListLabel openLabel = new PlayList.SpotPlayListLabel();
                openLabel.Content = "Open";

                openLabel.MouseUp   += OpenLabelClicked;
                openLabel.playlistId = i;

                listView.Items.Add(new PlayList.SpotListViewItem {
                    Name = l, Open = openLabel, playListId = i
                });
            }

            //foregroundLabelBrush = ((Label)((PlayList.SpotListViewItem)listView.Items[0]).Name).Foreground;
        }
Ejemplo n.º 3
0
        private void MyToolWindow_Loaded(object sender, RoutedEventArgs e)
        {
            lvm = ListViewMode.kPlayList;
            UpdateUIColors();

            if (!Command1Package.isAuthenticated())
            {
                Command1Package.AuthenticateSpotifyWeb();
            }


            if (Command1Package.spotWeb != null)
            {
                RetreivePlayListsFromWeb();
                ShowPlayListsInView();
            }
            else
            {
                MessageBox.Show("Sorry, authentication failed, its needed for this feature.");
            }



            listView.Height = this.ActualHeight;// - WindowTitle.ActualHeight;
        }
Ejemplo n.º 4
0
 public ProductAdapter(Context context, int resource, List <Product> productList, ListViewMode mode)
 {
     this.context     = context;
     this.resource    = resource;
     this.productList = productList;
     this.mode        = mode;
     this.inflater    = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService);
 }
        /// <summary>
        /// Retrieves the list of recent checkins.
        /// </summary>
        private async Task GetRecentCheckinsAsync()
        {
            _currentListViewMode = ListViewMode.MyCheckins;
            bool accessDenied = false;

            if (_checkinsCache == null)
            {
                Title.Text = "Getting Checkins...";
                var resourceUri = String.Format("https://api.foursquare.com/v2/users/self/checkins?limit={0}&v={1}",
                                                Settings.QueryLimit,
                                                Constants.ApiVerifiedDate);

                try
                {
                    HttpResponseMessage response = await _httpClient.GetAsync(new Uri(resourceUri));

                    switch (response.StatusCode)
                    {
                    case HttpStatusCode.Ok:
                        var responseBodyAsText = await response.Content.ReadAsStringAsync();

                        var responseBodyAsJson = JsonObject.Parse(responseBodyAsText);
                        _checkinsCache = Checkin.ListFromJson(responseBodyAsJson["response"].GetObject());
                        break;

                    case HttpStatusCode.Unauthorized:     // token was revoked
                        Logger.Trace(TraceLevel.Error, "User disconnected this app from the Foursquare Settings page: " + response.StatusCode.ToString());
                        accessDenied = true;
                        break;

                    default:
                        Logger.Trace(TraceLevel.Error, "Failed to get checkins from Foursquare: " + response.StatusCode.ToString());
                        break;
                    }
                }
                catch (UnauthorizedAccessException)
                {
                    accessDenied = true;
                }
            }

            if (accessDenied)
            {
                Logger.Trace(TraceLevel.Info, "Access denied, deleting state.");
                await DeleteStateAsync();
            }

            if (_checkinsCache != null)
            {
                Title.Text = _checkinsCache.Count + " Latest Checkins";
                ItemsListView.ItemsSource = _checkinsCache;
            }
            else
            {
                Title.Text = "Checkins Unavailable";
            }
        }
Ejemplo n.º 6
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Forms.Forms.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.ProductList);

            mMode     = ListViewMode.Display;
            mListView = (ListView)FindViewById(Resource.Id.list_product);

            updateUI();
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SpotifyRemotePlayListWindowControl"/> class.
        /// </summary>
        public SpotifyRemotePlayListWindowControl()
        {
            this.InitializeComponent();

            playListNames    = new List <string>(kMAX_PLAYLISTS);
            playListUser     = new List <string>(kMAX_PLAYLISTS);
            playListId       = new List <string>(kMAX_PLAYLISTS);
            playListUri      = new List <string>(kMAX_PLAYLISTS);
            listTracksFromPL = new List <PlaylistTrack>(kMAX_TRACKS);

            Microsoft.VisualStudio.PlatformUI.VSColorTheme.ThemeChanged += VSColorTheme_ThemeChanged;
            lvm = ListViewMode.kPlayList;
        }
Ejemplo n.º 8
0
        public override Boolean OnOptionsItemSelected(IMenuItem item)
        {
            switch (item.ItemId)
            {
            case Resource.Id.action_addproduct:
                Log.Debug(TAG, "Add a new product");
                var intent = new Intent(this, typeof(ProductDetailActivity));
                intent.PutExtra(GameStoreConstants.ParamAction, GameStoreConstants.ParamActionAdd);
                this.StartActivity(intent);
                return(true);

            case Resource.Id.action_editproduct:
                Log.Debug(TAG, "Switch to Edit mode");
                mMode = ListViewMode.Edit;
                updateUI();
                return(true);

            case Resource.Id.action_delete:
                Log.Debug(TAG, "Delete selected products");
                if (DeleteSelectedItems() == false)
                {
                    Toast.MakeText(this, "Select at least one item to delete", ToastLength.Long).Show();
                    return(false);
                }
                mMode = ListViewMode.Display;
                updateUI();
                return(true);

            case Resource.Id.action_cancel:
                Log.Debug(TAG, "Cancel edit");
                mMode = ListViewMode.Display;
                updateUI();
                return(true);

            default:
                return(base.OnOptionsItemSelected(item));
            }
        }
        private void GetGeofences_Click(object sender, RoutedEventArgs e)
        {
            ClearStatus();
            ClearItemsListView();
            AddGeofencesButton.Visibility    = Visibility.Collapsed;
            AddGeofenceHereButton.Visibility = Visibility.Visible;
            DeleteGeofencesButton.Visibility = Visibility.Collapsed;
            CheckinButton.Visibility         = Visibility.Collapsed;
            GeofencesMapLayer.Children.Clear();
            _currentListViewMode = ListViewMode.MyGeofences;

            try
            {
                var manager       = GeofenceMonitor.Current;
                var geofences     = manager.Geofences;
                var geofenceCount = geofences.Count;

                if (geofenceCount > 0)
                {
                    int index = 0;
                    List <GeofenceItem> displayGeofences = new List <GeofenceItem>();
                    var count = displayGeofences.Count;
                    foreach (var geofence in geofences)
                    {
                        Venue venue = null;
                        if (_geofenceIdsToVenues.TryGetValue(geofence.Id, out venue))
                        {
                            // Foursquare venue (added from Foursquare places)
                            displayGeofences.Add(new GeofenceItem(geofence, venue, geofences));
                        }
                        else
                        {
                            // Custom geofence (added by "Geofence Here")
                            displayGeofences.Add(new GeofenceItem(geofence, geofences));
                        }

                        // Update map
                        var geocircle          = geofence.Geoshape as Geocircle;
                        var geofenceMapControl = new GeofenceMapControl(Map)
                        {
                            ListViewIndex  = index,
                            RadiusInMeters = geocircle.Radius
                        };

                        geofenceMapControl.Tapped += GeofenceMapControl_Tapped;
                        Bing.Maps.MapLayer.SetPosition(geofenceMapControl, new Bing.Maps.Location(geocircle.Center.Latitude, geocircle.Center.Longitude));
                        GeofencesMapLayer.Children.Add(geofenceMapControl);

                        index++;
                    }
                    ItemsListView.ItemsSource = displayGeofences;
                    ScrollListViewToCurrentSelection();

                    DeleteGeofencesButton.Visibility = Visibility.Visible;
                }
                Title.Text = geofenceCount + " Geofences";
            }
            catch (Exception ex)
            {
                Logger.Trace(TraceLevel.Error, "Error getting geofences: " + Logger.FormatException(ex));
                ShowStatus("Could not get geofences: " + ex.Message);
            }
        }
        // Note: these should not catch exceptions, let them propagate up to the UI handlers

        /// <summary>
        /// Retrieves the list of venues based on the current location.
        /// </summary>
        private async Task GetNearbyVenuesAsync()
        {
            _currentListViewMode = ListViewMode.Places;
            var  position     = _geoposition.Coordinate.Point.Position;
            bool accessDenied = false;

            // If selected index is valid (i.e. the user clicked on an exiting item), don't re-query and just use the cache.
            if ((_venuesCache != null) && (_currentSelectedIndex == -1))
            {
                // Re-query if we moved far enough
                if (GetDistanceInMetersBetweenPositions(position, _venuesCachePosition) >= Constants.VenuesQueryDistanceThresholdMeters)
                {
                    _venuesCache = null;
                }
            }

            if (_venuesCache == null)
            {
                Title.Text = "Finding Places from Foursquare ...";

                var resourceUri = String.Format("https://api.foursquare.com/v2/venues/explore?ll={0},{1}&limit={2}&v={3}",
                                                Uri.EscapeDataString(position.Latitude.ToString()),
                                                Uri.EscapeDataString(position.Longitude.ToString()),
                                                Settings.QueryLimit,
                                                Constants.ApiVerifiedDate);

                try
                {
                    HttpResponseMessage response = await _httpClient.GetAsync(new Uri(resourceUri));

                    switch (response.StatusCode)
                    {
                    case HttpStatusCode.Ok:
                        var responseBodyAsText = await response.Content.ReadAsStringAsync();

                        var responseBodyAsJson = JsonObject.Parse(responseBodyAsText);

                        _venuesCache         = Venue.ListFromJson(responseBodyAsJson["response"].GetObject()) as List <Venue>;
                        _venuesCachePosition = position;
                        break;

                    case HttpStatusCode.Unauthorized:     // token was revoked
                        Logger.Trace(TraceLevel.Error, "User disconnected this app from the Foursquare Settings page: " + response.StatusCode.ToString());
                        accessDenied = true;
                        break;

                    default:
                        Logger.Trace(TraceLevel.Error, "Failed to query venues from Foursquare: " + response.StatusCode.ToString());
                        break;
                    }
                }
                catch (UnauthorizedAccessException)
                {
                    accessDenied = true;
                }
            }

            if (accessDenied)
            {
                Logger.Trace(TraceLevel.Info, "Access denied, deleting state.");
                await DeleteStateAsync();
            }

            if (_venuesCache != null)
            {
                Title.Text = _venuesCache.Count + " Recommended Places";
                ItemsListView.ItemsSource = _venuesCache;
                ScrollListViewToCurrentSelection();

                // Update map
                int index = 0;
                VenuesMapLayer.Children.Clear();
                foreach (var v in _venuesCache)
                {
                    var pushpin = new Bing.Maps.Pushpin();
                    pushpin.Text    = index.ToString();
                    pushpin.Tapped += VenuePushpin_Tapped;
                    Bing.Maps.MapLayer.SetPosition(pushpin, new Bing.Maps.Location(v.Latitude, v.Longitude));
                    VenuesMapLayer.Children.Add(pushpin);
                    index++;
                }
            }
            else
            {
                Title.Text = "Places Unavailable";
            }
        }