package net.rdrei.android.scdl2;
import android.app.Activity;
import roboguice.fragment.RoboFragment;
/* Base fragment to ensure the parent activity implements a contract interface. */
public abstract class RoboContractFragment<T> extends RoboFragment {
private T mContract;
@SuppressWarnings("unchecked")
@Override
public void onAttach(Activity activity) {
try {
mContract = (T) activity;
} catch (ClassCastException e) {
throw new IllegalStateException(activity.getClass()
.getSimpleName() + " does not implement " +
((Object)this).getClass().getSimpleName() +
"'s contract interface.", e);
}
super.onAttach(activity);
}
@Override
public void onDetach() {
super.onDetach();
mContract = null;
}
public final T getContract() {
return mContract;
}
}