/*******************************************************************************
* Copyright 2013 PAR Works, Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package com.parworks.mars.view.nearby;
import java.util.List;
import android.util.Log;
import com.google.android.gms.maps.model.LatLng;
import com.parworks.androidlibrary.ar.ARErrorListener;
import com.parworks.androidlibrary.ar.ARListener;
import com.parworks.androidlibrary.ar.ARSite;
import com.parworks.androidlibrary.ar.ARSites;
import com.parworks.androidlibrary.response.SiteInfo;
import com.parworks.mars.utils.User;
public class NearbySitesInfoFinder {
public static final String TAG = NearbySitesInfoFinder.class.getName();
public interface NearbySitesInfoFinderListener {
public void gotSite(SiteInfo site);
}
private final NearbySitesInfoFinderListener mListener;
public NearbySitesInfoFinder(NearbySitesInfoFinderListener listener) {
mListener = listener;
}
public void getNearbySiteInfo(LatLng location, int max, double radius) {
Log.d(NearbyFragment.TAG_LOAD_MARKERS,"getNearbySiteInfo : calling nearby endpoint");
ARSites sites = User.getARSites();
sites.nearInfo(location.latitude,location.longitude,max,radius,new ARListener<List<SiteInfo>>() {
@Override
public void handleResponse(List<SiteInfo> sites) {
for(SiteInfo info : sites) {
mListener.gotSite(info);
}
}
}, new ARErrorListener() {
@Override
public void handleError(Exception error) {
// TODO Auto-generated method stub
}
});
// sites.near(location.latitude, location.longitude, max, radius, new ARListener<List<ARSite>>() {
//
// @Override
// public void handleResponse(List<ARSite> sites) {
// Log.d(NearbyFragment.TAG_LOAD_MARKERS,"handleResponse: got list of sites");
// for(ARSite site : sites) {
// Log.d(NearbyFragment.TAG_LOAD_MARKERS,"calling get site info on site" + site.getSiteId());
// getSiteInfo(site);
// }
//
// }
// }, new ARErrorListener() {
//
// @Override
// public void handleError(Exception error) {
// Log.e(TAG,error.getMessage());
//
// }
// });
}
private void getSiteInfo(ARSite site) {
Log.d(NearbyFragment.TAG_LOAD_MARKERS,"getNearbySiteInfo");
site.getSiteInfo(new ARListener<SiteInfo>() {
@Override
public void handleResponse(SiteInfo info) {
mListener.gotSite(info);
}
}, new ARErrorListener() {
@Override
public void handleError(Exception error) {
Log.e(TAG,error.getMessage());
}
});
}
}