package apps.makarov.com.whereismycurrency.view.activitys;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import apps.makarov.com.whereismycurrency.R;
import apps.makarov.com.whereismycurrency.view.fragments.EnterOperationFragment;
import apps.makarov.com.whereismycurrency.view.fragments.ListOperationFragment;
import apps.makarov.com.whereismycurrency.view.fragments.ResultFragment;
import apps.makarov.com.whereismycurrency.view.iviews.MainView;
public class MainActivity extends AppCompatActivity implements MainView {
private static final String DEFAULT_FRAGMENT_TAG = "DEFAULT_FRAGMENT_TAG";
private static final String DEFAULT_FRAGMENT_STACK_NAME = "DEFAULT_FRAGMENT_STACK_NAME";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Fragment fragment = getSupportFragmentManager().findFragmentByTag(DEFAULT_FRAGMENT_TAG);
if (fragment == null) {
setBaseFragment(new ListOperationFragment());
}
}
@Override
public void showEnterOperationFragment(Bundle bundle) {
Fragment newFragment = new EnterOperationFragment();
newFragment.setArguments(bundle);
setFragment(newFragment, true);
}
@Override
public void showResultFragment(Bundle bundle) {
Fragment newFragment = new ResultFragment();
newFragment.setArguments(bundle);
setFragment(newFragment, true);
}
@Override
public void showListOperationFragment(Bundle bundle) {
Fragment newFragment = new ListOperationFragment();
newFragment.setArguments(bundle);
setFragment(newFragment, true);
}
private void setFragment(Fragment fragment, boolean saveInBackstack) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.container, fragment, DEFAULT_FRAGMENT_TAG);
if(saveInBackstack)
ft.addToBackStack(DEFAULT_FRAGMENT_STACK_NAME);
ft.commit();
}
private void setBaseFragment(Fragment fragment) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.container, fragment, DEFAULT_FRAGMENT_TAG)
.commit();
}
}