package me.pjq.pushup.activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.widget.FrameLayout;
import com.squareup.otto.Bus;
import me.pjq.pushup.EFLogger;
import me.pjq.pushup.R;
import me.pjq.pushup.ServiceProvider;
import me.pjq.pushup.StatUtil;
public class BaseFragmentActivity extends FragmentActivity {
private static final String TAG = BaseFragmentActivity.class.getSimpleName();
protected Bus bus;
public static int CONTENT_VIEW_ID = 1234;
FrameLayout frameLayout;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
//StatUtil.setContext(this);
bus = ServiceProvider.getBus();
bus.register(this);
if (!isLayoutFromSubclass()) {
frameLayout = new FrameLayout(this);
frameLayout.setId(CONTENT_VIEW_ID);
setContentView(frameLayout, new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
}
}
@Override
protected void onStart() {
super.onStart();
StatUtil.onStart(this);
}
protected boolean isLayoutFromSubclass() {
return false;
}
private void addChildFragment(Fragment childFragment) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(CONTENT_VIEW_ID, childFragment);
fragmentTransaction.commit();
}
protected void addChildFragment(Fragment fragment, String tag) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragmentTransaction.add(CONTENT_VIEW_ID, fragment, tag);
fragmentTransaction.commitAllowingStateLoss();
}
protected void showChildFragment(Fragment fragment, String tag) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(CONTENT_VIEW_ID, fragment, tag);
fragmentTransaction.commit();
}
private void replaceChildFragment(Fragment fragment) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(CONTENT_VIEW_ID, fragment);
fragmentTransaction.commitAllowingStateLoss();
}
protected void replaceChildFragment(Fragment fragment, String tag, boolean fromLeftToRight) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if (fromLeftToRight) {
fragmentTransaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left);
} else {
fragmentTransaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
}
fragmentTransaction.replace(CONTENT_VIEW_ID, fragment, tag);
//fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
//fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
// fragmentTransaction.addToBackStack(null);
fragmentTransaction.commitAllowingStateLoss();
}
protected void addChildFragment(Fragment fragment, String tag, boolean fromLeftToRight) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if (fromLeftToRight) {
fragmentTransaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left);
} else {
fragmentTransaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
}
fragmentTransaction.add(CONTENT_VIEW_ID, fragment, tag);
//fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
//fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
// fragmentTransaction.addToBackStack(null);
fragmentTransaction.commitAllowingStateLoss();
}
protected void showFragment(Fragment fragment, String tag, boolean fromLeftToRight) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if (fromLeftToRight) {
fragmentTransaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left);
} else {
fragmentTransaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
}
fragmentTransaction.show(fragment);
fragmentTransaction.commit();
}
protected void replaceChildFragment(Fragment fragment, String tag) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragmentTransaction.replace(CONTENT_VIEW_ID, fragment, tag);
//fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
// fragmentTransaction.addToBackStack(null);
fragmentTransaction.commitAllowingStateLoss();
}
protected void removeFragment(Fragment fragment) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.remove(fragment);
fragmentTransaction.commitAllowingStateLoss();
}
protected Fragment findFragmentByTag(String tag) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(tag);
EFLogger.i(TAG, "findFragmentByTag,tag=" + tag + ",fragment=" + fragment);
return fragment;
}
protected void hideFragment(Fragment fragment, boolean fromLeftToRight) {
if (null == fragment) {
return;
}
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if (fromLeftToRight) {
fragmentTransaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left);
} else {
fragmentTransaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
}
fragmentTransaction.hide(fragment);
fragmentTransaction.commitAllowingStateLoss();
}
protected void hideFragment(Fragment fragment) {
if (null == fragment) {
return;
}
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.hide(fragment);
fragmentTransaction.commitAllowingStateLoss();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onDestroy() {
super.onDestroy();
bus.unregister(this);
StatUtil.onStop(this);
}
}