@Override public android.support.v4.app.Fragment getItem(int position) { if (position == 0) { mRepositoryFragment = RepositoryFragment.newInstance(mRepository); return mRepositoryFragment; } else if (position == 1) { if (mContentListFragment == null) { mContentListFragment = ContentListFragment.newInstance(mRepository, null, mSelectedRef); fileStacks.add(mContentListFragment); } else if (backPressed) { fileStacks.remove(mContentListFragment); getSupportFragmentManager().beginTransaction().remove(mContentListFragment).commit(); mContentListFragment = fileStacks.get(fileStacks.size() - 1); mContentListFragment.setTreeEntryList(mContentList.get(fileStacks.size() - 1)); } else { getSupportFragmentManager().beginTransaction().remove(mContentListFragment).commit(); mContentListFragment = ContentListFragment.newInstance(mRepository, mPath, mSelectedRef); fileStacks.add(mContentListFragment); } return mContentListFragment; } else if (position == 2) { mCommitListFragment = CommitListFragment.newInstance(mRepository, mSelectedRef); return mCommitListFragment; } else { mRepositoryFragment = RepositoryFragment.newInstance(mRepository); return mRepositoryFragment; } }