package net.reichholf.dreamdroid.fragment.abs;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import net.reichholf.dreamdroid.R;
import net.reichholf.dreamdroid.fragment.dialogs.ActionDialog;
import net.reichholf.dreamdroid.fragment.dialogs.EpgDetailDialog;
import net.reichholf.dreamdroid.helpers.ExtendedHashMap;
import net.reichholf.dreamdroid.helpers.Statics;
import net.reichholf.dreamdroid.helpers.enigma2.Timer;
import net.reichholf.dreamdroid.helpers.enigma2.requesthandler.TimerAddByEventIdRequestHandler;
import net.reichholf.dreamdroid.intents.IntentFactory;
/**
* @author sreichholf
*
*/
public abstract class BaseHttpRecyclerEventFragment extends BaseHttpRecyclerFragment implements
ActionDialog.DialogActionListener {
protected String mReference;
protected String mName;
protected ProgressDialog mProgress;
protected ExtendedHashMap mCurrentItem;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
mReference = savedInstanceState.getString("reference");
mName = savedInstanceState.getString("name");
mCurrentItem = savedInstanceState.getParcelable("currentItem");
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString("reference", mReference);
outState.putString("name", mName);
outState.putParcelable("currentItem", mCurrentItem);
super.onSaveInstanceState(outState);
}
@Override
public void onItemClick(RecyclerView parent, View view, int position, long id) {
mCurrentItem = mMapList.get(position);
Bundle args = new Bundle();
args.putParcelable("currentItem", mCurrentItem);
getMultiPaneHandler().showDialogFragment(EpgDetailDialog.class, args, "epg_detail_dialog");
}
/**
* @param event
*/
protected void setTimerById(ExtendedHashMap event) {
if (mProgress != null) {
if (mProgress.isShowing()) {
mProgress.dismiss();
}
}
mProgress = ProgressDialog.show(getAppCompatActivity(), "", getText(R.string.saving), true);
execSimpleResultTask(new TimerAddByEventIdRequestHandler(), Timer.getEventIdParams(event));
}
@Override
public void onSimpleResult(boolean success, ExtendedHashMap result) {
if (mProgress != null) {
if (mProgress.isShowing()) {
mProgress.dismiss();
}
}
super.onSimpleResult(success, result);
}
/**
* @param event
*/
protected void setTimerByEventData(ExtendedHashMap event) {
Timer.editUsingEvent(getMultiPaneHandler(), event, this);
}
public void onDialogAction(int action, Object details, String dialogTag) {
switch (action) {
case Statics.ACTION_SET_TIMER:
setTimerById(mCurrentItem);
break;
case Statics.ACTION_EDIT_TIMER:
setTimerByEventData(mCurrentItem);
break;
case Statics.ACTION_FIND_SIMILAR:
mHttpHelper.findSimilarEvents(mCurrentItem);
break;
case Statics.ACTION_IMDB:
IntentFactory.queryIMDb(getAppCompatActivity(), mCurrentItem);
break;
}
}
}