package org.techbooster.app.abc;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.view.KeyEvent;
import android.widget.FrameLayout;
import com.sys1yagi.indirectinjector.IndirectInjector;
import org.techbooster.app.abc.controllers.ActionBarController;
import org.techbooster.app.abc.controllers.FragmentTransitionController;
import org.techbooster.app.abc.tools.DrawerLayoutManager;
import org.techbooster.app.abc.tools.FragmentHelper;
public class MainActivity extends ActionBarActivity
implements FragmentTransitionController, ActionBarController {
private CharSequence mTitle;
private DrawerLayoutManager mDrawerLayoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mTitle = getTitle();
mDrawerLayoutManager =
DrawerLayoutManager.newInstance(drawerLayout);
IndirectInjector.addDependency(this, this);
IndirectInjector.addDependency(this, drawerLayout);
IndirectInjector.addDependency(this, (FrameLayout) findViewById(R.id.navigation_drawer));
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
mDrawerLayoutManager.toggle();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void addFragment(Fragment fragment) {
}
@Override
public void replaceFragment(Fragment fragment) {
FragmentManager fragmentManager = getSupportFragmentManager();
if (!FragmentHelper.isCurrentFragment(fragmentManager, fragment.getClass())) {
FragmentTransaction transaction = fragmentManager.beginTransaction();
if (fragmentManager.getFragments().size() > 1) {
transaction.addToBackStack(null);
}
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.replace(R.id.container, fragment)
.commit();
}
}
@Override
public void setTitle(String title) {
getSupportActionBar().setTitle(title);
}
@Override
public void setTitle(int titleResId) {
getSupportActionBar().setTitle(titleResId);
}
}