package com.likebamboo.osa.android.ui.fragments;
import android.annotation.SuppressLint;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageLoader;
import com.likebamboo.osa.android.R;
import com.likebamboo.osa.android.entity.AuthorList;
import com.likebamboo.osa.android.request.RequestManager;
import com.likebamboo.osa.android.request.RequestUrl;
import com.likebamboo.osa.android.ui.nav.ActivityNavigator;
import com.likebamboo.osa.android.ui.view.CircleImageView;
import com.likebamboo.osa.android.ui.view.blur.BlurDialogFragmentHelper;
import butterknife.ButterKnife;
import butterknife.InjectView;
/**
* 作者信息Fragment
*
* @author likebamboo
*/
public class AuthorInfoFragment extends DialogFragment {
private BlurDialogFragmentHelper mHelper;
/**
* 作者
*/
private AuthorList.Author mAuthor = null;
@InjectView(R.id.author_avatar_iv)
CircleImageView mAvatarIv;
@InjectView(R.id.author_name_tv)
TextView mNameTv;
@InjectView(R.id.author_blog_tv)
TextView mBlogTv;
@InjectView(R.id.author_github_tv)
TextView mGithubTv;
@InjectView(R.id.author_info_tv)
TextView mInfoTv;
public AuthorInfoFragment() {
}
@SuppressLint("ValidFragment")
public AuthorInfoFragment(AuthorList.Author author) {
this.mAuthor = author;
}
/**
* instance
*
* @param author
* @return
*/
public static AuthorInfoFragment newInstance(AuthorList.Author author) {
AuthorInfoFragment fragment = new AuthorInfoFragment(author);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHelper = new BlurDialogFragmentHelper(this);
mHelper.onCreate();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_author_info, container, false);
if (mAuthor == null) {
return v;
}
ButterKnife.inject(this, v);
// 加载图片
ImageLoader imageLoader = RequestManager.getImageLoader();
if (!TextUtils.isEmpty(mAuthor.getAvatar())) {
imageLoader.get(RequestUrl.BASE_URL + mAuthor.getAvatar(), new ImageLoader.ImageListener() {
@Override
public void onResponse(ImageLoader.ImageContainer imageContainer, boolean b) {
mAvatarIv.setImageBitmap(imageContainer.getBitmap());
}
@Override
public void onErrorResponse(VolleyError volleyError) {
mAvatarIv.setImageResource(R.drawable.default_avatar);
}
});
}
// set info
mNameTv.setText(mAuthor.getName());
mBlogTv.setText(mAuthor.getBlog());
// 链接点击跳转
mBlogTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openWebView(mAuthor.getBlog());
}
});
mGithubTv.setText(mAuthor.getGithub());
// 链接点击跳转
mGithubTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openWebView(mAuthor.getGithub());
}
});
mInfoTv.setText(mAuthor.getIntroduction());
return v;
}
/**
* 打开web界面
*
* @param url
*/
private void openWebView(String url) {
if (getActivity() == null) {
return;
}
// 跳转到Web页面
ActivityNavigator.openWebView(getActivity(), null, url);
}
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);
}
}