package com.bdc.ociney.fragment;
import android.app.ActivityOptions;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
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.ImageView;
import android.widget.TextView;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.bdc.ociney.R;
import com.bdc.ociney.activity.TheaterDetailMovie;
import com.bdc.ociney.modele.Movie.Movie;
import com.bdc.ociney.modele.Theater.Horaires;
import com.bdc.ociney.modele.Theater.Theater;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
public class TheaterMovieFragment extends Fragment implements View.OnClickListener {
public static final String THEATER = "theater";
public static final String MOVIE = "movie";
View view;
ImageView poster;
TextView titre;
ViewGroup horaires;
View layoutImage;
Movie movie;
Theater theater;
public static TheaterMovieFragment newInstance(Movie movie, Theater theater) {
Gson gson = new Gson();
return newInstance(gson.toJson(movie), gson.toJson(theater));
}
public static TheaterMovieFragment newInstance(String movieJson, String theaterJson) {
TheaterMovieFragment fragment = new TheaterMovieFragment();
Bundle args = new Bundle();
args.putString(MOVIE, movieJson);
args.putString(THEATER, theaterJson);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
view = inflater.inflate(R.layout.fragment_theater_poster, null);
Bundle bundle = getArguments();
if (bundle != null) {
if (bundle.containsKey(THEATER) && bundle.containsKey(MOVIE)) {
Gson gSon = new Gson();
theater = gSon.fromJson(bundle.getString(THEATER), new TypeToken<Theater>() {
}.getType());
movie = gSon.fromJson(bundle.getString(MOVIE), new TypeToken<Movie>() {
}.getType());
charger();
remplir();
ajouterListener();
}
}
return view;
}
private void ajouterListener() {
this.view.setOnClickListener(this);
}
public void charger() {
this.poster = (ImageView) this.view.findViewById(R.id.poster);
this.titre = (TextView) this.view.findViewById(R.id.title);
this.horaires = (ViewGroup) this.view.findViewById(R.id.horaires);
this.layoutImage = this.view.findViewById(R.id.bg_darker_poster);
}
public void remplir() {
layoutImage.setAlpha(0f);
Picasso.with(getActivity()).load(this.movie.getUrlPoster(600)).into(this.poster, new Callback() {
@Override
public void onSuccess() {
layoutImage.animate().alphaBy(0).alpha(1).setDuration(500).start();
}
@Override
public void onError() {
}
});
this.titre.setText(this.movie.getTitle());
boolean isToday = true;
ViewGroup layout = horaires;
layout.removeAllViews();
Context context = layout.getContext();
if (movie.getHoraires() != null && movie.getHoraires().size() > 0) {
for (Horaires h : movie.getHoraires()) {
if (((isToday && h.isToday())) || (!isToday)) {
View vueHorraires = View.inflate(context, R.layout.cell_theater_horraires, null);
TextView texte = (TextView) vueHorraires.findViewById(R.id.text);
ImageView version = (ImageView) vueHorraires.findViewById(R.id.version);
if (h.getFormatEcran().contains("3D"))
version.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_version_white_3d));
else if (h.getFormatEcran().contains("Numérique"))
version.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_version_white_2d));
else if (!h.getVersion().contains("Français"))
version.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_version_white_vo));
else
version.setVisibility(View.GONE);
StringBuffer sb = new StringBuffer();
for (String seance : h.getSeances())
sb.append(seance).append(" ");
texte.setText(sb.toString());
layout.addView(vueHorraires);
}
}
}
}
@Override
public void onClick(View view) {
theater.getShowTimes(movie.getCode().toString());
Intent intent = new Intent(getActivity(), TheaterDetailMovie.class);
intent.putExtra(TheaterDetailMovie.MOVIE, (new Gson()).toJson(movie));
intent.putExtra(TheaterDetailMovie.THEATER, (new Gson()).toJson(theater));
Bundle b = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
b = ActivityOptions.makeScaleUpAnimation(layoutImage, 0, 0, layoutImage.getWidth(), layoutImage.getHeight()).toBundle();
getActivity().startActivity(intent, b);
} else {
getActivity().startActivity(intent);
getActivity().overridePendingTransition(0, 0);
}
}
}