Пример #1
0
        public async Task <Bitmap> GetPhoto(string photoReference, int width)
        {
            if (NetworkAvailability.Check())
            {
                Bitmap bitmap = null;
                await Task.Run(() =>
                {
                    try
                    {
                        URL url = new URL("https://maps.googleapis.com/maps/api/place/photo?maxwidth=" + width + "&photoreference="
                                          + photoReference + "&key=" + StrGoogleApiKey);
                        var connection = (HttpURLConnection)url.OpenConnection();
                        connection.Connect();
                        var stream = connection.InputStream;
                        bitmap     = BitmapFactory.DecodeStream(stream);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                });

                return(bitmap);
            }
            return(null);
        }
Пример #2
0
        public async Task <List <GoogleResult> > GetNearByPlaces(LatLng location, int radius, string type, string keyword)
        {
            if (NetworkAvailability.Check())
            {
                try
                {
                    string json = string.Empty;
                    if (type != null)
                    {
                        json = await DownloadString("https://maps.googleapis.com/maps/api/place/nearbysearch/json?location="
                                                    + LocationService.CorrectLocationFormat(location) + "&radius=" + radius *MetresInKm + "&type=" + type + "&keyword=" + keyword + "&key=" + StrGoogleApiKey);
                    }
                    else
                    {
                        json = await DownloadString("https://maps.googleapis.com/maps/api/place/nearbysearch/json?location="
                                                    + LocationService.CorrectLocationFormat(location) + "&radius=" + radius *MetresInKm + "&keyword=" + keyword + "&key=" + StrGoogleApiKey);
                    }
                    var result = JsonConvert.DeserializeObject <GooglePlaceDetailsModel>(json);
                    var places = result.results.Where(p => p.opening_hours == null ? false : p.opening_hours.open_now).ToList();

                    return(places);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            return(null);
        }
Пример #3
0
        private void GetLocationAndLoadResults()
        {
            (Activity as MainActivity).OnGpsEnabled -= OnDistanceFilterFragmentGpsEnabled;

            if (NetworkAvailability.Check())
            {
                if ((Activity as MainActivity).GetCurrentLocation() != null)
                {
                    //(Activity as MainActivity).OnGpsEnabled -= OnDistanceFilterFragmentGpsEnabled;

                    var fragment = new ViewPagerFragment()
                    {
                        Arguments = new Bundle()
                    };

                    fragment.Arguments.PutInt(Common.Constants.BundleKeys.Radius, DefaultRadius);

                    Activity.SupportFragmentManager
                    .BeginTransaction()
                    .Replace(Resource.Id.Activity_MainActivity_FragmentContainer, fragment)
                    .AddToBackStack(null)
                    .Commit();
                }
                else
                {
                    LocationManager manager = (LocationManager)Activity.GetSystemService(Android.Content.Context.LocationService);

                    if (!manager.IsProviderEnabled(LocationManager.GpsProvider))
                    {
                        BuildAlertMessageNoGps();
                    }

                    (Activity as MainActivity).OnGpsEnabled += OnDistanceFilterFragmentGpsEnabled;
                }
            }
            else
            {
                Toast.MakeText(Activity, GetString(Resource.String.Error_NoNetwork), ToastLength.Long).Show();
            }
        }
        private void AdapterItemClicked(object sender, GoogleResult e)
        {
            if (NetworkAvailability.Check())
            {
                var fragment = new PlaceDetailsFragment()
                {
                    Arguments = new Bundle()
                };

                fragment.Arguments.PutString(Common.Constants.BundleKeys.Placeid, e.place_id);

                Activity.SupportFragmentManager
                .BeginTransaction()
                .Replace(Resource.Id.Activity_MainActivity_FragmentContainer, fragment)
                .AddToBackStack(null)
                .Commit();
            }
            else
            {
                Toast.MakeText(Activity, GetString(Resource.String.Error_NoNetwork), ToastLength.Long).Show();
            }
        }
Пример #5
0
        public async Task <GooglePlaceDetailsModel> GetPlaceById(string placeId)
        {
            if (NetworkAvailability.Check())
            {
                try
                {
                    var json = await DownloadString("https://maps.googleapis.com/maps/api/place/details/json?placeid="
                                                    + placeId + "&key=" + StrGoogleApiKey);



                    var result = JsonConvert.DeserializeObject <GooglePlaceDetailsModel>(json);
                    var place  = result;

                    return(place);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            return(null);
        }
Пример #6
0
 /// <summary>
 /// Initializes a new instance of the NetworkAvailabilityException class.
 /// </summary>
 /// <param name="currentAvailability">The current availability.</param>
 internal NetworkAvailabilityException(NetworkAvailability currentAvailability)
     : base("The current network availability (" + currentAvailability + ") is invalid for the request.")
 {
 }