in app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java [53:142]
private void init() {
final Change change = getApp().getQueryHandler().getCurrentChange();
checkArgument(change != null, "No change to display");
ChangeEntry changeEntry = new ChangeEntry(getContext());
changeEntry.init(getApp(), change);
vg(R.id.changeHeader).addView(changeEntry);
final List<PageFragment> fragments = new ArrayList<>();
CommitMessageFragment commitMessageFragment = new CommitMessageFragment();
commitMessageFragment.setChange(change);
fragments.add(commitMessageFragment);
FileListFragment fileListFragment = new FileListFragment();
fileListFragment.setChange(change);
fragments.add(fileListFragment);
ApprovalsFragment approvalsFragment = new ApprovalsFragment();
approvalsFragment.setChange(change);
fragments.add(approvalsFragment);
ReplyFragment replyFragment = new ReplyFragment();
replyFragment.setChange(change);
fragments.add(replyFragment);
// TODO add more tabs, e.g. for change messages
ViewPager pager = ((ViewPager) v(R.id.pager));
pager.setAdapter(
new FragmentPagerAdapter(getChildFragmentManager()) {
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return getString(fragments.get(position).getTitle());
}
});
SlidingTabLayout tabs = ((SlidingTabLayout) v(R.id.tabs));
tabs.setTextColor(widgetUtil.color(R.color.tab));
tabs.setSelectedIndicatorColors(widgetUtil.color(R.color.tab));
tabs.setBorderColor(widgetUtil.color(R.color.tab));
tabs.setDividerColors(widgetUtil.color(R.color.tabDivider));
tabs.setBottomBorderThickness(widgetUtil.dpToPx(1));
tabs.setSelectedIndicatorThickness(widgetUtil.dpToPx(5));
tabs.setViewPager(pager);
final View more = v(R.id.more);
more.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popup = new PopupMenu(getContext(), more);
popup.getMenuInflater()
.inflate(R.menu.menu_paged_change_details, popup.getMenu());
popup.getMenu().findItem(R.id.action_abandon).setVisible(
change.info.status == ChangeStatus.NEW
|| change.info.status == ChangeStatus.SUBMITTED);
popup.getMenu().findItem(R.id.action_restore).setVisible(
change.info.status == ChangeStatus.ABANDONED);
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_abandon:
display(AbandonFragment.create(
PagedChangeDetailsFragment.class));
return true;
case R.id.action_restore:
display(RestoreFragment.create(
PagedChangeDetailsFragment.class));
return true;
default:
return true;
}
}
});
popup.show();
}
});
}