package net.oschina.gitapp.ui.fragments;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.TextView;
import net.oschina.gitapp.AppContext;
import net.oschina.gitapp.R;
import net.oschina.gitapp.api.HTTPRequestor;
import net.oschina.gitapp.bean.Commit;
import net.oschina.gitapp.bean.Issue;
import net.oschina.gitapp.bean.Project;
import net.oschina.gitapp.bean.URLs;
import net.oschina.gitapp.common.Contanst;
import net.oschina.gitapp.common.StringUtils;
import net.oschina.gitapp.common.UIHelper;
import net.oschina.gitapp.ui.basefragment.BaseFragment;
/**
* issue详情fragment
*
* @author 火蚁(http://my.oschina.net/LittleDY)
* @created 2014-08-25
*/
public class IssueDetailFragment extends BaseFragment {
private AppContext mAppContext;
private Issue mIssue;
private Project mProject;
private TextView mIssueTitle;
private TextView mIssueUserName;
private ImageView mIssueUserFace;
private TextView mIssueData;
private WebView mWebView;
public static IssueDetailFragment newInstance(Project project, Commit commit) {
IssueDetailFragment fragment = new IssueDetailFragment();
Bundle args = new Bundle();
args.putSerializable(Contanst.PROJECT, project);
args.putSerializable(Contanst.COMMIT, commit);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mAppContext = getGitApplication();
return inflater.inflate(R.layout.issue_detail, null);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initView(view);
initData();
}
private void initView(View view) {
mIssueTitle = (TextView) view.findViewById(R.id.issue_title);
mIssueUserName = (TextView) view.findViewById(R.id.issue_author_name);
mIssueUserFace = (ImageView) view.findViewById(R.id.issue_author_face);
mIssueData = (TextView) view.findViewById(R.id.issue_date);
mWebView = (WebView) view.findViewById(R.id.issue_content);
}
private void initData() {
Bundle args = getArguments();
if (args != null) {
mProject = (Project) args.getSerializable(Contanst.PROJECT);
mIssue = (Issue) args.getSerializable(Contanst.ISSUE);
}
if (mProject != null && mIssue != null) {
setIssueDetail();
}
}
private void setIssueDetail() {
mIssueTitle.setText(mIssue.getTitle());
mIssueUserName.setText(mIssue.getAuthor().getName());
mIssueData.setText("创建于"
+ StringUtils.friendly_time(mIssue.getCreatedAt()));
mWebView.loadDataWithBaseURL(null, UIHelper.WEB_STYLE + mIssue.getDescription(),
"text/html", HTTPRequestor.UTF_8, null);
String portrait = mIssue.getAuthor().getPortrait() == null ? "" : mIssue.getAuthor().getPortrait();
if (portrait.endsWith("portrait.gif") || StringUtils.isEmpty(portrait)) {
mIssueUserFace.setImageResource(R.drawable.widget_dface);
} else {
String portraitURL = URLs.GITIMG + mIssue.getAuthor().getPortrait();
UIHelper.showUserFace(mIssueUserFace, portraitURL);
}
}
}