X-Git-Url: https://git.mdrn.pl/wl-app.git/blobdiff_plain/48b2fe9f7c2dc3d9aeaaa6dbfb27c7da4f3235ff..269195b3729c1bdc22e9053ee4ebca667ea8549d:/Android/app/src/main/java/com/moiseum/wolnelektury/base/mvp/PresenterFragment.java diff --git a/Android/app/src/main/java/com/moiseum/wolnelektury/base/mvp/PresenterFragment.java b/Android/app/src/main/java/com/moiseum/wolnelektury/base/mvp/PresenterFragment.java new file mode 100644 index 0000000..b7a0dce --- /dev/null +++ b/Android/app/src/main/java/com/moiseum/wolnelektury/base/mvp/PresenterFragment.java @@ -0,0 +1,80 @@ +package com.moiseum.wolnelektury.base.mvp; + +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.view.View; + +import com.moiseum.wolnelektury.base.AbstractFragment; + + +/** + * Fragment that creates {@link LifecyclePresenter} and in its lifecycle methods calls corresponding methods of + * presenter. + * + * @param

type of presenter for this fragment. + */ +public abstract class PresenterFragment

extends AbstractFragment { + + private P presenter; + + protected abstract P createPresenter(); + + protected P getPresenter() { + return presenter; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + presenter = createPresenter(); + presenter.onCreate(savedInstanceState); + } + + @Override + public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + presenter.onViewCreated(savedInstanceState); + } + + @Override + public void onStart() { + super.onStart(); + presenter.onStart(); + } + + @Override + public void onStop() { + super.onStop(); + presenter.onStop(); + } + + @Override + public void onResume() { + super.onResume(); + presenter.onResume(); + } + + @Override + public void onPause() { + super.onPause(); + presenter.onPause(); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + presenter.onDestroyView(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + presenter.onDestroy(); + } + + @Override + public void onSaveInstanceState(@NonNull Bundle outState) { + super.onSaveInstanceState(outState); + presenter.onSaveInstanceState(outState); + } +}