package com.jdroid.android.activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.MenuItem;
import com.jdroid.android.R;
import com.jdroid.android.fragment.FragmentIf;
public abstract class HorizontalFragmentsContainerActivity extends AbstractFragmentActivity {
@Override
public int getContentView() {
return isNavDrawerEnabled() ? R.layout.jdroid_nav_horizontal_fragments_container_activity : R.layout.jdroid_horizontal_fragments_container_activity;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null && !isFinishing()) {
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
Fragment leftFragment = createNewLeftFragment();
fragmentTransaction.add(R.id.leftFragmentContainer, leftFragment, leftFragment.getClass().getSimpleName());
Fragment rightFragment = createNewRightFragment();
fragmentTransaction.add(R.id.rightFragmentContainer, rightFragment, rightFragment.getClass().getSimpleName());
if (addToBackStack()) {
fragmentTransaction.addToBackStack(rightFragment.getClass().getSimpleName());
}
fragmentTransaction.commit();
}
}
protected Boolean addToBackStack() {
return false;
}
protected Fragment createNewLeftFragment() {
return instanceFragment(getLeftFragmentClass(), getIntent().getExtras());
}
protected Class<? extends Fragment> getLeftFragmentClass() {
return null;
}
protected Fragment createNewRightFragment() {
return instanceFragment(getRightFragmentClass(), getIntent().getExtras());
}
protected Class<? extends Fragment> getRightFragmentClass() {
return null;
}
public Fragment getLeftFragment() {
return getSupportFragmentManager().findFragmentById(R.id.leftFragmentContainer);
}
public Fragment getRightFragment() {
return getSupportFragmentManager().findFragmentById(R.id.rightFragmentContainer);
}
@Override
public Integer getMenuResourceId() {
Integer menuResourceId = super.getMenuResourceId();
if (menuResourceId == null) {
Fragment fragment = getLeftFragment();
if (fragment != null && fragment instanceof FragmentIf) {
return ((FragmentIf)fragment).getMenuResourceId();
}
}
return menuResourceId;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item) || getLeftFragment().onOptionsItemSelected(item) || getRightFragment().onOptionsItemSelected(item);
}
}