package net.oschina.gitapp.ui;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.MenuItemCompat;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ProgressBar;
import net.oschina.gitapp.AppContext;
import net.oschina.gitapp.R;
import net.oschina.gitapp.bean.Project;
import net.oschina.gitapp.common.Contanst;
import net.oschina.gitapp.common.UIHelper;
import net.oschina.gitapp.ui.baseactivity.BaseActionBarActivity;
import net.oschina.gitapp.ui.fragments.ProjectCommitListFragment;
import net.oschina.gitapp.ui.fragments.ProjectIssuesListFragment;
/**
* 显示项目的一些列表信息
* 如:issues、commits
* @created 2014-07-17
* @author 火蚁(http://my.oschina.net/LittleDY)
*
*/
public class ProjectSomeInfoListActivity extends BaseActionBarActivity {
public final static int PROJECT_LIST_TYPE_ISSUES = 0;
public final static int PROJECT_LIST_TYPE_COMMITS = 1;
private final int MENU_CREATE_ID = 0;
private FragmentManager mFragmentManager;
private Bundle mSavedInstanceState;
private Project mProject;
private ProgressBar mLoading;
private AppContext mAppContext;
private int mListType;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.base_activity_fragment);
mAppContext = getGitApplication();
this.mSavedInstanceState = savedInstanceState;
initView();
}
private void initView() {
mFragmentManager = getSupportFragmentManager();
Intent intent = getIntent();
if (intent != null) {
mProject = (Project) intent.getSerializableExtra(Contanst.PROJECT);
mListType = intent.getIntExtra("project_list_type", 0);
mTitle = getTitle(mListType);
mSubTitle = mProject.getOwner().getName() + "/" + mProject.getName();
}
mLoading = (ProgressBar) findViewById(R.id.content_loading);
if (null == mSavedInstanceState) {
setFragmentCommit(mListType);
}
}
private String getTitle(int type) {
String title = "";
switch (type) {
case PROJECT_LIST_TYPE_ISSUES:
title = "问题列表";
break;
case PROJECT_LIST_TYPE_COMMITS:
title = "提交列表";
break;
}
return title;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (mListType == PROJECT_LIST_TYPE_ISSUES) {
MenuItem createOption = menu.add(0, MENU_CREATE_ID, MENU_CREATE_ID, "创建Issue");
createOption.setIcon(R.drawable.action_create);
MenuItemCompat.setShowAsAction(createOption, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
}
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case MENU_CREATE_ID:
// 新增issue
UIHelper.showIssueEditOrCreate(getGitApplication(), mProject, null);
break;
}
return super.onOptionsItemSelected(item);
}
private void setFragmentCommit(int type) {
FragmentTransaction ft = mFragmentManager.beginTransaction();
switch (type) {
case PROJECT_LIST_TYPE_ISSUES:
ft.replace(R.id.content, ProjectIssuesListFragment.newInstance(mProject)).commit();
break;
case PROJECT_LIST_TYPE_COMMITS:
ft.replace(R.id.content, ProjectCommitListFragment.newInstance(mProject)).commit();
break;
}
}
}