package uk.co.traintrackapp.traintrack.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.melnykov.fab.FloatingActionButton;
import uk.co.traintrackapp.traintrack.MapActivity;
import uk.co.traintrackapp.traintrack.R;
import uk.co.traintrackapp.traintrack.StationActivity;
import uk.co.traintrackapp.traintrack.TrainTrack;
import uk.co.traintrackapp.traintrack.model.Station;
import uk.co.traintrackapp.traintrack.model.User;
import uk.co.traintrackapp.traintrack.utils.Utils;
public class StationDetailsFragment extends Fragment {
private static final String PAGE_TITLE = "Details";
public static Fragment newInstance() {
Bundle args = new Bundle();
args.putString(Utils.ARGS_PAGE_TITLE, PAGE_TITLE);
StationDetailsFragment fragment = new StationDetailsFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_station_details, container, false);
StationActivity activity = ((StationActivity) getActivity());
final Station station = activity.getStation();
final TrainTrack app = (TrainTrack) getActivity().getApplication();
final User user = app.getUser();
TextView title = (TextView) v.findViewById(R.id.name);
title.setText(station.getName());
final FloatingActionButton fab = (FloatingActionButton) v.findViewById(R.id.fab);
if (app.getUser().getFavouriteStations().contains(station)) {
fab.setBackgroundResource(android.R.drawable.btn_star_big_on);
} else {
fab.setBackgroundResource(android.R.drawable.btn_star_big_off);
}
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (user.getFavouriteStations().contains(station)) {
fab.setBackgroundResource(android.R.drawable.btn_star_big_off);
user.getFavouriteStations().remove(station);
} else {
fab.setBackgroundResource(android.R.drawable.btn_star_big_on);
user.getFavouriteStations().add(station);
}
app.setUser(user);
user.save(getActivity());
}
});
ImageView nationalRailIcon = (ImageView) v.findViewById(R.id.national_rail_icon);
if (station.isNationalRail()) {
nationalRailIcon.setVisibility(View.VISIBLE);
} else {
nationalRailIcon.setVisibility(View.GONE);
}
ImageView undergroundIcon = (ImageView) v.findViewById(R.id.underground_icon);
if (station.isUnderground()) {
undergroundIcon.setVisibility(View.VISIBLE);
} else {
undergroundIcon.setVisibility(View.GONE);
}
TextView address = (TextView) v.findViewById(R.id.address);
address.setText(station.getAddress());
TextView phone = (TextView) v.findViewById(R.id.phone);
phone.setText(station.getPhone());
TextView twitter = (TextView) v.findViewById(R.id.twitter);
twitter.setText(station.getTwitter());
Button map = (Button) v.findViewById(R.id.map);
map.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent().setClass(v.getContext(),
MapActivity.class);
intent.putExtra("station_uuid", station.getUuid());
v.getContext().startActivity(intent);
}
});
final Button homeStation = (Button) v.findViewById(R.id.home_station);
if (user.getHomeStation().equals(station)) {
homeStation.setText("Home Station (IS)");
}
homeStation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (user.getHomeStation().equals(station)) {
homeStation.setText("Home Station (IS)");
user.setHomeStation(new Station());
} else {
homeStation.setText(getString(R.string.home_station));
user.setHomeStation(station);
}
app.setUser(user);
user.save(getActivity());
}
});
final Button workStation = (Button) v.findViewById(R.id.work_station);
if (user.getWorkStation().equals(station)) {
workStation.setText("Work Station (IS)");
}
workStation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (user.getWorkStation().equals(station)) {
workStation.setText("Work Station (IS)");
user.setWorkStation(new Station());
} else {
workStation.setText(getString(R.string.work_station));
user.setWorkStation(station);
}
app.setUser(user);
user.save(getActivity());
}
});
return v;
}
}