package com.sjl.yuehu.ui.base; import android.content.Intent; import android.os.Bundle; import android.support.annotation.IdRes; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import com.sjl.yuehu.App; import com.sjl.yuehu.R; import com.sjl.yuehu.injector.component.ActivityComponent; import com.sjl.yuehu.injector.component.DaggerActivityComponent; import com.sjl.yuehu.injector.module.ActivityModule; import com.sjl.yuehu.util.StringUtil; /** * Created by 小鹿 on 2017/2/4. */ public abstract class BaseAct extends AppCompatActivity implements FragmentListener { ActivityComponent mActivityComponent; public String currentTag = ""; public Toolbar toolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public ActivityComponent getActivityComponent() { if (mActivityComponent == null) { mActivityComponent = DaggerActivityComponent.builder() .applicationComponent(App.getApplicationComponent()) .activityModule(new ActivityModule(this)) .build(); } return mActivityComponent; } private void switchFragment(BaseFg fragment, @IdRes int contentRes, boolean addToBackStack) { FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); if (addToBackStack) ft.setCustomAnimations(R.anim.slide_in_right, R.anim.fade_out_center, R.anim.fade_in_center, R.anim.slide_out_right); ft.replace(contentRes, fragment, fragment.getName()); if (addToBackStack) ft.addToBackStack(fragment.getName()); ft.commit(); } @Override public void switchFragment(BaseFg fragment, boolean addToBackStack) { switchFragment(fragment, R.id.content_layout, addToBackStack); } @Override protected void onPostResume() { super.onPostResume(); } @Override public void fragmentVisible(BaseFg fragment) { if ((toolbar = getToolbar()) != null && !StringUtil.isEmpty(fragment.getFragmentTitle())) toolbar.setTitle(fragment.getFragmentTitle()); currentTag = fragment.getName(); } @Override public void updateTitle(String title) { if (toolbar != null) toolbar.setTitle(StringUtil.getValue(title, "")); } @Override public void startActivity(Intent intent) { super.startActivity(intent); } @Override public void finish() { super.finish(); } public abstract Toolbar getToolbar(); }