package com.bdc.ociney.fragment;
import android.app.ActionBar;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Toast;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.bdc.ociney.R;
import com.bdc.ociney.adapter.ObjectAdapter;
import com.bdc.ociney.fragment.core.BetterFragment;
import com.bdc.ociney.modele.Movie.Movie;
import com.bdc.ociney.modele.Theater.Theater;
import com.bdc.ociney.task.LoadShowTimesTask;
import com.bdc.ociney.utils.LocationUtils;
import com.bdc.ociney.view.CellTheater;
import java.util.ArrayList;
import java.util.List;
public class MovieTheatersFragment extends BetterFragment implements AdapterView.OnItemClickListener, LocationUtils.LocationUtilsCallBack, LoadShowTimesTask.LoadShowTimesTaskCallBack {
public static final String MOVIE = "movie";
List<Theater> theaters = new ArrayList<Theater>();
Movie movie;
ObjectAdapter<Theater> adapter;
AdapterView list;
LocationManager locationManager = null;
public static MovieTheatersFragment newInstance(Movie movie) {
Gson gSon = new Gson();
return newInstance(gSon.toJson(movie));
}
public static MovieTheatersFragment newInstance(String movieJson) {
MovieTheatersFragment fragment = new MovieTheatersFragment();
Bundle args = new Bundle();
Gson gSon = new Gson();
args.putString(MOVIE, movieJson);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_movie_theaters,
container, false);
setFragmentView(view);
Bundle bundle = getArguments();
if (bundle != null) {
if (bundle.containsKey(MOVIE)) {
Gson gSon = new Gson();
movie = gSon.fromJson(bundle.getString(MOVIE), new TypeToken<Movie>() {
}.getType());
}
}
getActivity().getActionBar().setDisplayShowTitleEnabled(true);
getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
charger();
remplir();
ajouterListeners();
chercherLocation();
return view;
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onPause() {
super.onPause();
}
@Override
protected void charger() {
list = (AdapterView) View.inflate(getActivity(), R.layout.list, null);
((ViewGroup) fragmentView).addView(list);
}
@Override
protected void remplir() {
adapter = new ObjectAdapter<Theater>(getActivity(), theaters, R.layout.cell_theater, CellTheater.class);
list.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
@Override
protected void ajouterListeners() {
list.setOnItemClickListener(this);
}
private void chercherLocation() {
new LocationUtils(getActivity(), this).chercherLocation();
}
public void onClick(View v) {
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Theater theater = (Theater) adapter.getItem(i);
/*
TheaterFragment.theater = theater;
getActivity().startActivity(new Intent(getActivity(), TheaterActivity.class));
*/
getActivity().overridePendingTransition(0, 0);
}
@Override
public void onLoadShowTimesTaskCallBack(List<Theater> result) {
try {
theaters.clear();
theaters.addAll(result);
adapter.notifyDataSetChanged();
} catch (Exception e) {
}
}
//---------------------------LOCATION LISTENER---------------------
@Override
public void onLocationFound(String lng, String lat) {
new LoadShowTimesTask(this).execute(movie, lat, lng);
}
@Override
public void onGPSNotFound() {
Toast.makeText(getActivity(), R.string.erreur_gps, Toast.LENGTH_SHORT).show();
}
}