package com.jdroid.android.dialog; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import com.jdroid.android.activity.ActivityIf; import com.jdroid.android.application.AbstractApplication; import com.jdroid.android.application.AppModule; import com.jdroid.android.exception.ErrorDisplayer; import com.jdroid.android.fragment.FragmentDelegate; import com.jdroid.android.fragment.FragmentHelper; import com.jdroid.android.fragment.FragmentHelper.UseCaseTrigger; import com.jdroid.android.fragment.FragmentIf; import com.jdroid.android.loading.FragmentLoading; import com.jdroid.android.usecase.AbstractUseCase; import com.jdroid.android.usecase.listener.UseCaseListener; import com.jdroid.java.exception.AbstractException; public class AbstractDialogFragment extends DialogFragment implements FragmentIf { private FragmentHelper fragmentHelper; @Override public Boolean shouldRetainInstance() { return fragmentHelper.shouldRetainInstance(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); fragmentHelper = AbstractApplication.get().createFragmentHelper(this); fragmentHelper.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return null; } @Override public Integer getBaseFragmentLayout() { return fragmentHelper.getBaseFragmentLayout(); } @Override public Integer getContentFragmentLayout() { return fragmentHelper.getContentFragmentLayout(); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); fragmentHelper.onViewCreated(view, savedInstanceState); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); fragmentHelper.onActivityCreated(savedInstanceState); } @Override public void onNewIntent(Intent intent) { fragmentHelper.onNewIntent(intent); } @Override public void onStart() { super.onStart(); fragmentHelper.onStart(); } @Override public void onResume() { super.onResume(); fragmentHelper.onResume(); } @Override public void onPause() { fragmentHelper.onBeforePause(); super.onPause(); fragmentHelper.onPause(); } @Override public void onStop() { super.onStop(); fragmentHelper.onStop(); } @Override public void onDestroyView() { super.onDestroyView(); fragmentHelper.onDestroyView(); } @Override public void onDestroy() { fragmentHelper.onBeforeDestroy(); super.onDestroy(); fragmentHelper.onDestroy(); } @Override public <V extends View> V findView(int id) { return fragmentHelper.findView(id); } @Override public <V extends View> V findViewOnActivity(int id) { return fragmentHelper.findViewOnActivity(id); } @Override public View inflate(int resource) { return fragmentHelper.inflate(resource); } @Override public void onStartUseCase() { fragmentHelper.onStartUseCase(); } @Override public void onUpdateUseCase() { fragmentHelper.onUpdateUseCase(); } @Override public void onFinishFailedUseCase(AbstractException abstractException) { fragmentHelper.onFinishFailedUseCase(abstractException); } @Override public ErrorDisplayer createErrorDisplayer(AbstractException abstractException) { return fragmentHelper.createErrorDisplayer(abstractException); } @Override public void onFinishUseCase() { fragmentHelper.onFinishUseCase(); } @Override public void executeOnUIThread(Runnable runnable) { fragmentHelper.executeOnUIThread(runnable); } @Override public <E> E getExtra(String key) { return fragmentHelper.getExtra(key); } @Override public <E> E getArgument(String key) { return fragmentHelper.getArgument(key); } @Override public <E> E getArgument(String key, E defaultValue) { return fragmentHelper.getArgument(key, defaultValue); } @Override public void executeUseCase(AbstractUseCase useCase) { fragmentHelper.executeUseCase(useCase); } @Override public void executeUseCase(AbstractUseCase useCase, Long delaySeconds) { fragmentHelper.executeUseCase(useCase, delaySeconds); } @Override public void beforeInitAppBar(Toolbar appBar) { fragmentHelper.beforeInitAppBar(appBar); } @Override public void afterInitAppBar(Toolbar appBar) { fragmentHelper.afterInitAppBar(appBar); } @Override public Toolbar getAppBar() { return fragmentHelper.getAppBar(); } @Override public void registerUseCase(AbstractUseCase useCase, UseCaseListener listener) { fragmentHelper.registerUseCase(useCase, listener); } @Override public void registerUseCase(AbstractUseCase useCase, UseCaseListener listener, UseCaseTrigger useCaseTrigger) { fragmentHelper.registerUseCase(useCase, listener, useCaseTrigger); } @Override public void unregisterUseCase(AbstractUseCase useCase, UseCaseListener listener) { fragmentHelper.unregisterUseCase(useCase, listener); } /** * @see com.jdroid.android.fragment.FragmentIf#getActivityIf() */ @Override public ActivityIf getActivityIf() { return fragmentHelper.getActivityIf(); } // //////////////////////// Analytics //////////////////////// // /** * @see com.jdroid.android.fragment.FragmentIf#shouldTrackOnFragmentStart() */ @Override public Boolean shouldTrackOnFragmentStart() { return fragmentHelper.shouldTrackOnFragmentStart(); } @NonNull @Override public String getScreenViewName() { return fragmentHelper.getScreenViewName(); } // //////////////////////// Loading //////////////////////// // @Override public void showLoading() { fragmentHelper.showLoading(); } @Override public void dismissLoading() { fragmentHelper.dismissLoading(); } @Override public FragmentLoading getDefaultLoading() { return fragmentHelper.getDefaultLoading(); } @Override public void setLoading(FragmentLoading loading) { fragmentHelper.setLoading(loading); } @Override public Integer getMenuResourceId() { return fragmentHelper.getMenuResourceId(); } @Override public boolean onOptionsItemSelected(MenuItem item) { return fragmentHelper.onOptionsItemSelected(item); } @Override public Boolean isSecondaryFragment() { return fragmentHelper.isSecondaryFragment(); } @Override public FragmentDelegate createFragmentDelegate(AppModule appModule) { return fragmentHelper.createFragmentDelegate(appModule); } @Override public FragmentDelegate getFragmentDelegate(AppModule appModule) { return fragmentHelper.getFragmentDelegate(appModule); } @Override public Boolean onBackPressedHandled() { return fragmentHelper.onBackPressedHandled(); } }