package com.bdc.ociney.activity;
import android.app.ActionBar;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TextView;
import com.bdc.ociney.R;
import com.bdc.ociney.database.AccessBaseFavoris;
import com.bdc.ociney.database.BaseFavoris;
import com.bdc.ociney.fragment.MovieFragment;
import com.bdc.ociney.fragment.core.BetterFragment;
/**
* Created by florentchampigny on 21/04/2014.
*/
public class MovieActivity extends ActionBarActivity {
final int STATUS_IMAGES = 1;
int status = STATUS_IMAGES;
final int STATUS_VIDEOS = 2;
MovieFragment fragment;
boolean afficheCinemas = false;
boolean afficheCasting = false;
Menu menu;
boolean recherche = false;
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_movie);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setTitleTextColor(Color.WHITE);
getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.ab_back_mtrl_am_alpha));
charger();
remplir();
ajouterListener();
invalidateOptionsMenu();
}
public void afficherCinema() {
afficheCinemas = true;
invalidateOptionsMenu();
}
public void afficherCasting() {
afficheCasting = true;
invalidateOptionsMenu();
}
private void chargerFavoris() {
AccessBaseFavoris db = new AccessBaseFavoris(this);
db.open();
if (fragment != null && fragment.getMovie() != null && db.isFavoris(fragment.getMovie().getCode() + "", BaseFavoris.TYPE_FAVORIS_FILM)) {
menu.getItem(2).setIcon(R.drawable.ic_favoris_on);
} else
menu.getItem(2).setIcon(R.drawable.ic_favoris_off);
db.close();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
this.menu = menu;
if (afficheCinemas || afficheCasting) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.movie_menu_cinema, menu);
final MenuItem searchItem = menu.findItem(R.id.search);
final SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
public boolean onQueryTextChange(String text) {
return false;
}
public boolean onQueryTextSubmit(String text) {
getSupportActionBar().setTitle(text);
fragment.search(text);
searchItem.collapseActionView();
recherche = true;
return false;
}
});
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
//afficherMovieNow();
//refreshActionBar();
return false;
}
});
} else {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.movie_menu, menu);
chargerFavoris();
try {
switch (status) {
case STATUS_IMAGES:
menu.getItem(0).setIcon(R.drawable.ic_picture_80);
menu.getItem(1).setIcon(R.drawable.ic_bandeannonce_30);
break;
case STATUS_VIDEOS:
menu.getItem(0).setIcon(R.drawable.ic_picture_30);
menu.getItem(1).setIcon(R.drawable.ic_bandeannonce_80);
break;
}
} catch (Exception e) {
}
}
return true;
}
public void ajouterFragment(BetterFragment fragment) {
}
private void charger() {
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.ab_back_mtrl_am_alpha));
}
private void remplir() {
Intent intent = getIntent();
String title = intent.getStringExtra(MovieFragment.ACTIONBAR_TITLE);
String jsonMovie = intent.getStringExtra(MovieFragment.MOVIE);
fragment = MovieFragment.newInstance(title, jsonMovie);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.fragmentLayout, fragment);
ft.commit();
}
private void ajouterListener() {
}
public void changerActionBarColor(int color, int textColor) {
try {
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(color));
int actionBarTitleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
if (actionBarTitleId > 0) {
TextView title = (TextView) findViewById(actionBarTitleId);
if (title != null) {
title.setTextColor(textColor);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onBackPressed() {
if (afficheCinemas) {
afficheCinemas = false;
fragment.fermerCinema();
invalidateOptionsMenu();
} else if (afficheCasting) {
afficheCasting = false;
fragment.fermerCasting();
invalidateOptionsMenu();
} else
super.onBackPressed();
recherche = false;
}
@Override
public boolean onOptionsItemSelected(android.view.MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
case R.id.menu_images:
status = STATUS_IMAGES;
fragment.afficherImages();
invalidateOptionsMenu();
return true;
case R.id.menu_bandesAnnonces:
status = STATUS_VIDEOS;
fragment.afficherBandesAnnonces();
invalidateOptionsMenu();
return true;
case R.id.menu_favoris:
AccessBaseFavoris db = new AccessBaseFavoris(this);
db.open();
if (fragment != null && fragment.getMovie() != null) {
if (db.isFavoris(fragment.getMovie().getCode() + "", BaseFavoris.TYPE_FAVORIS_FILM)) {
db.deleteFavoris(fragment.getMovie().getCode() + "", BaseFavoris.TYPE_FAVORIS_FILM);
} else {
db.insertFavoris(fragment.getMovie().getCode() + "", BaseFavoris.TYPE_FAVORIS_FILM);
}
}
invalidateOptionsMenu();
db.close();
return true;
}
;
return super.onOptionsItemSelected(item);
}
}