package com.distantfuture.videos.misc;
import android.app.Activity;
import android.app.Fragment;
/* Base fragment to ensure the parent activity implements a contract interface. */
public abstract class ContractFragment<T> extends Fragment {
private T mContract;
@Override
public void onAttach(Activity activity) {
try {
mContract = (T) activity;
} catch (ClassCastException e) {
throw new IllegalStateException(activity.getClass().getSimpleName()
+ " does not implement " + getClass().getSimpleName() + "'s contract interface.", e);
}
super.onAttach(activity);
}
@Override
public void onDetach() {
super.onDetach();
mContract = null;
}
public final T getContract() {
return mContract;
}
}