package com.sabdroidex.activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.preference.Preference;
import android.util.Log;
import android.view.MenuItem;
import android.widget.Toast;
import com.android.actionbarcompat.ActionBarPreferencesActivity;
import com.sabdroidex.R;
import com.sabdroidex.controllers.couchpotato.CouchPotatoController;
import com.sabdroidex.data.couchpotato.Movie;
import com.sabdroidex.fragments.dialogs.couchpotato.MovieFilesDialog;
import com.sabdroidex.utils.Preferences;
/**
* Created by Marc on 27/05/13.
*/
public class MovieActivity extends ActionBarPreferencesActivity {
public static final String MOVIE = "movie";
private static final String TAG = MovieActivity.class.getCanonicalName();
/**
* Instantiating the Handler associated with this {@link android.app.Fragment}. It will
* be notified when the request to retrieve the show data is successful
*/
private final Handler messageHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == CouchPotatoController.MESSAGE.SEARCHER_TRY_NEXT.hashCode()) {
try {
if (msg.obj instanceof String && !"".equals(msg.obj)) {
Toast.makeText(getApplicationContext(), (String) msg.obj, Toast.LENGTH_LONG).show();
}
}
catch (Exception e) {
Log.w(TAG, e.getLocalizedMessage());
}
}
if (msg.what == CouchPotatoController.MESSAGE.MOVIE_DELETE.hashCode()) {
try {
if (msg.obj instanceof String && !"".equals(msg.obj)) {
Toast.makeText(getApplicationContext(), (String) msg.obj, Toast.LENGTH_LONG).show();
}
}
catch (Exception e) {
Log.w(TAG, e.getLocalizedMessage());
}
}
if (msg.what == CouchPotatoController.MESSAGE.RELEASE_DOWNLOAD.hashCode()) {
try {
if (msg.obj instanceof String && !"".equals(msg.obj)) {
Toast.makeText(getApplicationContext(), (String) msg.obj, Toast.LENGTH_LONG).show();
}
}
catch (Exception e) {
Log.w(TAG, e.getLocalizedMessage());
}
}
}
};
private Movie movie;
private PreferenceElementClickListener preferenceElementClickListener = new PreferenceElementClickListener();
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
movie = (Movie) getIntent().getExtras().get(MOVIE);
setTitle(movie.getTitle());
addPreferencesFromResource(R.xml.movie_preferences);
}
@SuppressWarnings("deprecation")
@Override
protected void onPostCreate(Bundle savedInstanceState) {
findPreference(Preferences.MOVIE_AVAILABLE_FILES).setOnPreferenceClickListener(preferenceElementClickListener);
findPreference(Preferences.MOVIE_READD).setOnPreferenceClickListener(preferenceElementClickListener);
findPreference(Preferences.MOVIE_REMOVE).setOnPreferenceClickListener(preferenceElementClickListener);
findPreference(Preferences.MOVIE_PICK_RELEASE).setOnPreferenceClickListener(preferenceElementClickListener);
/*
findPreference(Preferences.MOVIE_CHANGE_MOVIE_INFO).setOnPreferenceClickListener(preferenceElementClickListener);
findPreference(Preferences.MOVIE_DOWLOAD_BEST).setOnPreferenceClickListener(preferenceElementClickListener);
findPreference(Preferences.MOVIE_MARK_DONE).setOnPreferenceClickListener(preferenceElementClickListener);
*/
/*
* If the movie does not have the done status the release selection is available
*/
findPreference(Preferences.WANTED).setEnabled(movie.getStatusID() != 3);
super.onPostCreate(savedInstanceState);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
break;
}
return true;
}
private class PreferenceElementClickListener implements Preference.OnPreferenceClickListener {
@Override
public boolean onPreferenceClick(Preference preference) {
if (Preferences.MOVIE_AVAILABLE_FILES.equals(preference.getKey())) {
MovieFilesDialog movieFilesDialog = new MovieFilesDialog();
MovieFilesDialog.setMovie(movie);
movieFilesDialog.show(MovieActivity.this);
}
if (Preferences.MOVIE_READD.equals(preference.getKey())) {
CouchPotatoController.snatchNextMovieRelease(messageHandler, movie.getMovieID());
}
if (Preferences.MOVIE_REMOVE.equals(preference.getKey())) {
CouchPotatoController.deleteMovie(messageHandler, movie.getMovieID());
}
if (Preferences.MOVIE_PICK_RELEASE.equals(preference.getKey())) {
Intent intent = new Intent(getBaseContext(), ReleaseActivity.class);
intent.putExtra("movie", movie);
startActivity(intent);
}
/*
if (Preferences.MOVIE_CHANGE_MOVIE_INFO.equals(preference.getKey())) {
}
if (Preferences.MOVIE_DOWLOAD_BEST.equals(preference.getKey())) {
}
if (Preferences.MOVIE_MARK_DONE.equals(preference.getKey())) {
}
*/
return true;
}
}
}