package com.likebamboo.osa.android.ui.fragments; import android.content.DialogInterface; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.likebamboo.osa.android.R; import com.likebamboo.osa.android.entity.BlogList; import com.likebamboo.osa.android.ui.nav.ActivityNavigator; import com.likebamboo.osa.android.ui.view.blur.BlurDialogFragmentHelper; import java.net.URLDecoder; import butterknife.ButterKnife; import butterknife.InjectView; /** * 博客信息Fragment * * @author likebamboo */ public class BlogInfoFragment extends DialogFragment { public static final String EXTRA_BLOG = "extra_blog"; private BlurDialogFragmentHelper mHelper; /** * 博客信息 */ private BlogList.Blog mBlog = null; @InjectView(R.id.blog_title_tv) TextView mTitleTv; @InjectView(R.id.blog_author_title_tv) TextView mAuthorTitleTv; @InjectView(R.id.blog_author_tv) TextView mAuthorTv; @InjectView(R.id.blog_link_tv) TextView mUrlTv; @InjectView(R.id.blog_time_tv) TextView mPostTimeTv; @InjectView(R.id.blog_category_tv) TextView mCategoryTv; // for 翻译的文章 @InjectView(R.id.blog_o_author_tv) TextView mOAuthorTv; @InjectView(R.id.blog_o_link_tv) TextView mOUrlTv; @InjectView(R.id.blog_o_time_tv) TextView mOPostTimeTv; /** * instance * * @param blog * @return */ public static BlogInfoFragment getInstance(BlogList.Blog blog) { BlogInfoFragment fragment = new BlogInfoFragment(); Bundle bundle = new Bundle(); bundle.putParcelable(EXTRA_BLOG, blog); fragment.setArguments(bundle); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mHelper = new BlurDialogFragmentHelper(this); mHelper.onCreate(); if (getArguments() != null) { mBlog = getArguments().getParcelable(EXTRA_BLOG); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_blog_info, container, false); if (mBlog == null) { return v; } ButterKnife.inject(this, v); // 标题 mTitleTv.setText(mBlog.getTitle()); // 作者 mAuthorTv.setText(mBlog.getAuthor()); // 链接 try { final String url = URLDecoder.decode(mBlog.getFromUrl(), "UTF-8"); mUrlTv.setText(url); mUrlTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (getActivity() == null) { return; } ActivityNavigator.openWebView(getActivity(), null, url); } }); } catch (Exception e) { e.printStackTrace(); } // 发表时间 mPostTimeTv.setText(mBlog.getPostTime()); // set info mCategoryTv.setText(mBlog.getCategorys()); // 是否为翻译 if (mBlog.isTrans()) { // 译者 mAuthorTitleTv.setText(getString(R.string.translator)); mOAuthorTv.setText(mBlog.getoAuthor()); mOPostTimeTv.setText(mBlog.getoPostTime()); try { final String oUrl = URLDecoder.decode(mBlog.getoFromUrl(), "UTF-8"); mOUrlTv.setText(oUrl); mOUrlTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (getActivity() == null) { return; } ActivityNavigator.openWebView(getActivity(), null, oUrl); } }); } catch (Exception e) { e.printStackTrace(); } } else { // 作者 mAuthorTitleTv.setText(getString(R.string.author)); v.findViewById(R.id.blog_o_author_layout).setVisibility(View.GONE); v.findViewById(R.id.blog_o_time_layout).setVisibility(View.GONE); v.findViewById(R.id.blog_o_link_layout).setVisibility(View.GONE); } return v; } public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mHelper.onActivityCreated(); } @Override public void onStart() { super.onStart(); mHelper.onStart(); } @Override public void onDismiss(DialogInterface dialog) { mHelper.onDismiss(); super.onDismiss(dialog); } }