/*******************************************************************************
* Copyright (c) 2011 Michel DAVID mimah35-at-gmail.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
******************************************************************************/
package fr.gotorennes;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.location.Location;
import android.os.Bundle;
import android.text.Html;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import fr.gotorennes.domain.BikeStation;
import fr.gotorennes.util.LocationUtils;
import fr.gotorennes.view.TitleBar;
public class BikeStationActivity extends AbstractActivity {
private BikeStation bikeStation;
@Override
protected String getTrackingName() {
return "stationVeloStar";
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bikestation);
}
@Override
protected void init(Intent intent) {
bikeStation = intent.getParcelableExtra("bikeStation");
latitude = bikeStation.latitude;
longitude = bikeStation.longitude;
TitleBar titleBar = (TitleBar) findViewById(TitleBar.ID);
titleBar.setIcon(R.drawable.bike);
titleBar.setTitle(bikeStation.name);
TextView address = (TextView) findViewById(R.id.address);
address.setText(bikeStation.address);
TextView availableBikes = (TextView) findViewById(R.id.availableBikes);
availableBikes.setText(String.valueOf(bikeStation.bikesAvailable));
availableBikes.setTextColor(bikeStation.getBikeColor());
TextView availableSlots = (TextView) findViewById(R.id.availableSlots);
availableSlots.setText(String.valueOf(bikeStation.slotsAvailable));
availableSlots.setTextColor(bikeStation.getSlotColor());
ImageView carteCredit = (ImageView) findViewById(R.id.carteCredit);
carteCredit.setVisibility(bikeStation.carteCredit ? View.VISIBLE : View.GONE);
CheckBox favoris = (CheckBox) findViewById(R.id.favoris);
SharedPreferences prefs = getSharedPreferences("fr.gotorennes.Application", 0);
favoris.setChecked(prefs.contains("bike-" + bikeStation.id));
TextView distance = (TextView) findViewById(R.id.distance);
final Location location = LocationUtils.getLocation(this);
if(location != null) {
distance.setText(Html.fromHtml("<u>"
+ AbstractMapActivity.getFormattedDistance(location.getLatitude(), location.getLongitude(), bikeStation.latitude, bikeStation.longitude) + "</u>"));
distance.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), ItineraireMapActivity.class);
intent.putExtra("latitude", location.getLatitude());
intent.putExtra("longitude", location.getLongitude());
intent.putExtra("latitudeDest", bikeStation.latitude);
intent.putExtra("longitudeDest", bikeStation.longitude);
intent.putExtra("iconDest", getMapIcon());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
});
}
else {
distance.setText("--");
distance.setOnClickListener(null);
distance.setClickable(false);
}
}
@Override
protected int getMapIcon() {
return R.drawable.bike;
}
public void showInfoCarteCredit(View view) {
Toast.makeText(this, getString(R.string.paiementCB), Toast.LENGTH_SHORT).show();
}
public void updateFavoris(View view) {
CheckBox checkbox = (CheckBox) view;
SharedPreferences prefs = getSharedPreferences("fr.gotorennes.Application", 0);
Editor editor = prefs.edit();
if (checkbox.isChecked()) {
editor.putString("bike-" + bikeStation.id, bikeStation.name);
Toast.makeText(getApplicationContext(), getString(R.string.veloAjoutFavoris), Toast.LENGTH_SHORT).show();
} else {
editor.remove("bike-" + bikeStation.id);
Toast.makeText(getApplicationContext(), getString(R.string.veloSupprimeFavoris), Toast.LENGTH_SHORT).show();
}
editor.commit();
}
}