package com.byoutline.kickmaterial.fragments;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.View;
import com.byoutline.kickmaterial.activities.KickMaterialBaseActivity;
import com.byoutline.secretsauce.utils.LogUtils;
public abstract class KickMaterialFragment extends Fragment {
private static final String TAG = LogUtils.makeLogTag(KickMaterialFragment.class);
protected HostActivity hostActivity;
public KickMaterialFragment() {
setHasOptionsMenu(true);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
hostActivity = (HostActivity) activity;
} catch (ClassCastException e) {
throw new IllegalStateException(activity.getClass().getSimpleName()
+ " does not implement " + HostActivity.class.getSimpleName()
+ " interface");
}
}
public void showBackButtonInActionbar(boolean show) {
KickMaterialBaseActivity baseActivity = (KickMaterialBaseActivity) getActivity();
if (baseActivity != null) {
baseActivity.setDisplayHomeAsUpEnabled(show);
}
}
protected void setUpListeners() {
//empty by default
}
@Override
public void onDetach() {
super.onDetach();
hostActivity = new StubHostActivity();
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setUpValidators();
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onResume() {
super.onResume();
setActionbar();
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onDestroyView() {
if (!isAdded()) {
hostActivity.hideKeyboard();
}
super.onDestroyView();
}
public String getScreenName() {
return getClass().getSimpleName();
}
private void setActionbar() {
KickMaterialBaseActivity baseActivity = (KickMaterialBaseActivity) getActivity();
if (baseActivity != null) {
if (!TextUtils.isEmpty(getFragmentActionbarName())) {
baseActivity.setTitle(getFragmentActionbarName());
}
// baseActivity.setDisplayHomeAsUpEnabled(showBackButtonInActionbar());
}
}
public void setActionbarTitle(String title) {
KickMaterialBaseActivity baseActivity = (KickMaterialBaseActivity) getActivity();
if (baseActivity != null) {
if (!TextUtils.isEmpty(title)) {
baseActivity.setTitle(title);
}
}
}
public abstract String getFragmentActionbarName();
public abstract boolean showBackButtonInActionbar();
protected void setUpValidators() {
}
public interface HostActivity extends com.byoutline.secretsauce.activities.HostActivityV4 {
void enableActionBarAutoHide(final RecyclerView listView);
void showActionbar(boolean show, boolean animate);
void setToolbarAlpha(float alpha);
}
private static class StubHostActivity extends com.byoutline.secretsauce.activities.StubHostActivityV4 implements HostActivity {
@Override
public void enableActionBarAutoHide(RecyclerView listView) {
}
@Override
public void showActionbar(boolean show, boolean animate) {
}
@Override
public void setToolbarAlpha(float alpha) {
}
}
public void fakeOnResume() {
setActionbarTitle(getFragmentActionbarName());
}
}