package com.chrome.codereview;
import android.app.Activity;
import android.app.Fragment;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v13.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Window;
import com.chrome.codereview.model.PatchSet;
import com.chrome.codereview.model.PatchSetFile;
/**
* Created by sergeyv on 29/4/14.
*/
public class DiffActivity extends Activity implements ViewPager.OnPageChangeListener {
private static final String PATCHSET_EXTRA = "PATCHSET_EXTRA";
private static final String ISSUE_ID_EXTRA = "ISSUE_ID_EXTRA";
private static final String PATCH_ID_EXTRA = "PATCH_ID_EXTRA";
private PatchSet patchSet;
private int issueId;
private FragmentStatePagerAdapter fragmentStatePagerAdapter = new FragmentStatePagerAdapter(getFragmentManager()) {
@Override
public Fragment getItem(int position) {
DiffFragment fragment = new DiffFragment();
fragment.initialize(issueId, patchSet, position);
return fragment;
}
@Override
public int getCount() {
return patchSet.files().size();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_PROGRESS);
patchSet = getIntent().getParcelableExtra(PATCHSET_EXTRA);
issueId = getIntent().getIntExtra(ISSUE_ID_EXTRA, -1);
setContentView(R.layout.activity_phone_diff);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(fragmentStatePagerAdapter);
pager.setOnPageChangeListener(this);
onPageSelected(0);
int patchId = getIntent().getIntExtra(PATCH_ID_EXTRA, -1);
int counter = 0;
for (PatchSetFile file : patchSet.files()) {
if (file.id() == patchId) {
pager.setCurrentItem(counter);
break;
}
counter++;
}
}
public static void startDiffActivity(Fragment fragment, int requestCode, int issueId, PatchSet patchSet, int patchId) {
Intent intent = new Intent(fragment.getActivity(), DiffActivity.class);
intent.putExtra(PATCHSET_EXTRA, patchSet);
intent.putExtra(ISSUE_ID_EXTRA, issueId);
intent.putExtra(PATCH_ID_EXTRA, patchId);
fragment.getActivity().startActivityFromFragment(fragment, intent, requestCode);
}
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected(int i) {
String title = Uri.parse(patchSet.files().get(i).path()).getLastPathSegment();
getActionBar().setTitle(title);
}
@Override
public void onPageScrollStateChanged(int i) {
}
}