Skip to content

Instantly share code, notes, and snippets.

@lukaspili
Created May 23, 2012 16:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lukaspili/2776287 to your computer and use it in GitHub Desktop.
Save lukaspili/2776287 to your computer and use it in GitHub Desktop.
package com.siu.android.tennisparis.task;
import android.os.AsyncTask;
import android.util.Log;
import com.siu.android.tennisparis.app.activity.TennisMapActivity;
import com.siu.android.tennisparis.dao.model.Tennis;
import com.siu.android.tennisparis.dao.model.TennisDao;
import com.siu.android.tennisparis.database.DatabaseHelper;
import com.siu.android.tennisparis.service.TennisService;
import com.siu.android.tennisparis.util.NetworkUtils;
import java.util.List;
/**
* @author Lukasz Piliszczuk <lukasz.pili AT gmail.com>
*/
public class TennisLoadTask extends AsyncTask<Double, Void, List<Tennis>> {
private TennisMapActivity activity;
public TennisLoadTask(TennisMapActivity activity) {
this.activity = activity;
}
@Override
protected void onPreExecute() {
activity.setSupportProgressBarIndeterminateVisibility(true);
}
@Override
protected List<Tennis> doInBackground(Double... coords) {
Log.d(getClass().getName(), "TennisLoadTask");
return DatabaseHelper.getInstance().getDaoSession().getTennisDao().loadAll();
}
@Override
protected void onPostExecute(List<Tennis> tennises) {
Log.d(getClass().getName(), "Tennises : " + tennises.size());
activity.setSupportProgressBarIndeterminateVisibility(false);
if (null != tennises && !tennises.isEmpty()) {
activity.onTennisLoadSuccess(tennises);
}
activity.onTennisLoadFinish();
}
@Override
protected void onCancelled(List<Tennis> centers) {
activity.setSupportProgressBarIndeterminateVisibility(false);
}
public void setActivity(TennisMapActivity activity) {
this.activity = activity;
}
}
package com.siu.android.tennisparis.app.activity;
import android.content.*;
import android.location.Location;
import android.os.Bundle;
import android.os.IBinder;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockMapActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.Window;
import com.google.android.apps.analytics.easytracking.EasyTracker;
import com.google.android.maps.GeoPoint;
import com.siu.android.tennisparis.Application;
import com.siu.android.tennisparis.R;
import com.siu.android.tennisparis.app.service.TennisUpdaterService;
import com.siu.android.tennisparis.dao.model.Tennis;
import com.siu.android.tennisparis.list.TennisListAdapter;
import com.siu.android.tennisparis.map.EnhancedMapView;
import com.siu.android.tennisparis.map.TennisOverlay;
import com.siu.android.tennisparis.task.CurrentLocationTask;
import com.siu.android.tennisparis.task.TennisLoadTask;
import com.siu.android.tennisparis.toast.AppToast;
import com.siu.android.tennisparis.util.LocationUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @author Lukasz Piliszczuk <lukasz.pili AT gmail.com>
*/
@SuppressWarnings("deprecation")
public class TennisMapActivity extends SherlockMapActivity {
private EnhancedMapView mapView;
private ListView listView;
private TennisListAdapter listAdapter;
private TennisLoadTask tennisLoadTask;
private TennisOverlay tennisOverlay;
private List<Tennis> tennises = new ArrayList<Tennis>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.tennis_map_activity);
setSupportProgressBarIndeterminateVisibility(false);
mapView = (EnhancedMapView) findViewById(R.id.map);
listView = (ListView) findViewById(android.R.id.list);
startTennisLoading();
}
/* Centers Location */
private void startTennisLoading() {
stopTennisLoadingIfRunning();
tennisLoadTask = new TennisLoadTask(this);
tennisLoadTask.execute();
}
private void stopTennisLoadingIfRunning() {
if (null == tennisLoadTask) {
return;
}
tennisLoadTask.cancel(true);
tennisLoadTask = null;
}
public void onTennisLoadSuccess(List<Tennis> receivedTennis) {
tennises.clear();
tennises.addAll(receivedTennis);
tennisOverlay.getOverlayItems().clear();
tennisOverlay.addTennises(tennises);
listAdapter.notifyDataSetChanged();
mapView.invalidate();
}
public void onTennisLoadFinish() {
tennisLoadTask = null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment