package com.metis.base.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.View;
import com.metis.base.activity.BaseActivity;
import com.metis.base.utils.Log;
import com.umeng.analytics.MobclickAgent;
/**
* Created by Beak on 2015/7/2.
*/
public class BaseFragment extends Fragment {
private static final String TAG = BaseFragment.class.getSimpleName();
private boolean isAlive = false;
private int mLogStackSize = 0;
private boolean isTakeControl = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setAllowEnterTransitionOverlap(true);
setAllowReturnTransitionOverlap(true);
isAlive = true;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Log.v(TAG, "LifeCycle onViewCreated " + getClass().getSimpleName() + " tag=" + getCustomTag());
/*if (getCustomTag() != null) {
onPageStart();
}*/
}
@Override
public void onResume() {
super.onResume();
MobclickAgent.onPageStart(getCustomTag());
Log.v(TAG, "LifeCycle onResume " + getClass().getSimpleName() + " tag=" + getCustomTag());
if (getCustomTag() != null && !isHidden() && !isTakeControl) {
onPageStart();
}
}
@Override
public void onPause() {
super.onPause();
MobclickAgent.onPageEnd(getCustomTag());
Log.v(TAG, "LifeCycle onPause " + getClass().getSimpleName() + " tag=" + getCustomTag());
if (getCustomTag() != null && !isHidden() && !isTakeControl) {
onPageEnd();
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
/*if (getCustomTag() != null) {
onPageEnd();
}*/
}
@Override
public void onDestroy() {
super.onDestroy();
isAlive = false;
Log.d(TAG, "BaseFragment onDestroy mLogStackSize=" + mLogStackSize);
}
public String getCustomTag () {
return null;
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (getCustomTag() != null && !isTakeControl) {
if (!hidden) {
onPageStart();
} else {
onPageEnd();
}
}
}
protected void setTakeControl (boolean control) {
isTakeControl = control;
}
protected void onPageStart () {
/*if (mLogStackSize == 0) {
MobclickAgent.onPageStart(getCustomTag());
mLogStackSize++;
Log.v(TAG, "onPageStart " + getClass().getSimpleName() + " tag=" + getCustomTag());
} else {
Log.w(TAG, "onPageStart " + getClass().getSimpleName() + " tag=" + getCustomTag() + " try to do but mLogStackSize=" + mLogStackSize);
}*/
}
protected void onPageEnd () {
/*if (mLogStackSize == 1) {
MobclickAgent.onPageEnd(getCustomTag());
mLogStackSize--;
Log.v(TAG, "onPageEnd " + getClass().getSimpleName() + " tag=" + getCustomTag());
} else {
Log.w(TAG, "onPageEnd " + getClass().getSimpleName() + " tag=" + getCustomTag() + " try to do but mLogStackSize=" + mLogStackSize);
}*/
}
@Override
public void startActivity(Intent intent) {
super.startActivity(intent);
}
public void startActivityForResult(Intent intent, int requestCode, BaseActivity.ActivityResultListener listener) {
if (getActivity() instanceof BaseActivity) {
((BaseActivity) getActivity()).startActivityForResult(intent, requestCode, listener);
} else {
startActivityForResult(intent, requestCode);
}
}
public boolean isAlive () {
return isAlive;
}
}