@Override
  public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    if (savedInstanceState == null) {
      presenter.onActivityCreated(null);
    } else {
      presenter.onActivityCreated(new BundleBackedPresenterSaverRestorer(savedInstanceState));
    }
  }
 @Override
 public Animation onCreateAnimation(int transit, final boolean enter, int nextAnim) {
   Animation animation;
   if (enter) {
     animation = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_up);
     animation.setInterpolator(new OvershootInterpolator(0.5f));
     animation.setDuration(350);
     presenter.onOpenAnimation(animation.getDuration());
   } else {
     animation = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_down);
     animation.setInterpolator(new LinearInterpolator());
     animation.setDuration(200);
     presenter.onExitAnimation(animation.getDuration());
   }
   return animation;
 }
  @Override
  public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ApplicationGraph graph = MoviegurApplication.getGraph(getActivity());
    MoviesList.Movie movie = getArguments().getParcelable(KEY_MOVIE);
    presenter.onCreate(graph, this, movie);
  }
 @Override
 public void onDestroy() {
   super.onDestroy();
   presenter.onDestroy();
   presenter = null;
 }
 @Override
 public void onSaveInstanceState(Bundle outState) {
   super.onSaveInstanceState(outState);
   presenter.onSaveInstanceState(new BundleBackedPresenterSaverRestorer(outState));
 }