public void updateHome() { try { stations.updateHome(); mapView.getController().setCenter(stations.getHome().getPoint()); mapView.getController().setZoom(16); } catch (Exception e) { //// Log.i("openBicing", "center is null.."); } }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); PreferenceManager.setDefaultValues(this, R.xml.preferences, false); mapView = (MapView) findViewById(R.id.mapview); fl = (FrameLayout) findViewById(R.id.content); mSlidingDrawer = (SlidingDrawer) findViewById(R.id.drawer); infoLayer = (InfoLayer) findViewById(R.id.info_layer); // Log.i("CityBikes","ON CREATEEEEEEEEE!!!!!"); infoLayerPopulator = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == InfoLayer.POPULATE) { infoLayer.inflateStation(stations.get(msg.arg1)); } } }; RelativeLayout.LayoutParams zoomControlsLayoutParams = new RelativeLayout.LayoutParams( android.view.ViewGroup.LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT); zoomControlsLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP); zoomControlsLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL); mapView.addView(mapView.getZoomControls(), zoomControlsLayoutParams); modeButton = (ToggleButton) findViewById(R.id.mode_button); modeButton.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { changeMode(!getBike); } }); settings = getSharedPreferences(CityBikes.PREFERENCES_NAME, 0); List<Overlay> mapOverlays = mapView.getOverlays(); stations = new StationOverlayList( this, mapOverlays, new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == hOverlay.MOTION_CIRCLE_STOP && !view_all) { // Home Circle has changed its radius try { view_near(); } catch (Exception e) { } } else if (msg.what == StationOverlay.TOUCHED && msg.arg1 != -1) { // One station has been touched stations.setCurrent(msg.arg1, getBike); infoLayer.inflateStation(stations.getCurrent()); } else if (msg.what == hOverlay.LOCATION_CHANGED) { // Location has changed mDbHelper.setCenter(hOverlay.getPoint()); try { mDbHelper.updateDistances(hOverlay.getPoint()); infoLayer.update(); if (view_all) { view_all(); } else { view_near(); } } catch (Exception e) { } ; } } }); mNDBAdapter = new NetworksDBAdapter(getApplicationContext()); mDbHelper = new StationsDBAdapter( this, mapView, new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case StationsDBAdapter.FETCH: ////// Log.i("openBicing", "Data fetched"); break; case StationsDBAdapter.UPDATE_MAP: ////// Log.i("openBicing", "Map Updated"); progressDialog.dismiss(); SharedPreferences settings = getSharedPreferences(CityBikes.PREFERENCES_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("reload_network", false); editor.commit(); StationOverlay current = stations.getCurrent(); if (current == null) { infoLayer.inflateMessage(getString(R.string.no_bikes_around)); } if (current != null) { current.setSelected(true, getBike); infoLayer.inflateStation(current); if (view_all) view_all(); else view_near(); } else { //// Log.i("openBicing", "Error getting an station.."); } mapView.invalidate(); break; case StationsDBAdapter.UPDATE_DATABASE: //// Log.i("openBicing", "Database updated"); break; case StationsDBAdapter.NETWORK_ERROR: //// Log.i("openBicing", "Network error, last update from " + // mDbHelper.getLastUpdated()); Toast toast = Toast.makeText( getApplicationContext(), getString(R.string.network_error) + mDbHelper.getLastUpdated(), Toast.LENGTH_LONG); toast.show(); break; } } }, stations); mDbHelper.setCenter(stations.getHome().getPoint()); if (savedInstanceState != null) { stations.updateHome(); stations.getHome().setRadius(savedInstanceState.getInt("homeRadius")); this.view_all = savedInstanceState.getBoolean("view_all"); } else { updateHome(); } try { mDbHelper.loadStations(); if (savedInstanceState == null) { String strUpdated = mDbHelper.getLastUpdated(); SharedPreferences settings = getSharedPreferences(CityBikes.PREFERENCES_NAME, 0); Boolean dirty = settings.getBoolean("reload_network", false); if (strUpdated == null || dirty) { this.fillData(view_all); } else { Toast toast = Toast.makeText( this.getApplicationContext(), "Last Updated: " + mDbHelper.getLastUpdated(), Toast.LENGTH_LONG); toast.show(); } } } catch (Exception e) { //// Log.i("openBicing", "SHIT ... SUCKS"); } ; if (view_all) view_all(); else view_near(); hOverlay = stations.getHome(); //// Log.i("openBicing", "CREATE!"); }