package com.silencedut.knowweather.weather.ui.adapter;
import android.app.Activity;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.silencedut.knowweather.R;
import com.silencedut.knowweather.common.adapter.BaseRecyclerAdapter;
import com.silencedut.knowweather.common.adapter.BaseViewHolder;
import com.silencedut.knowweather.utils.UIUtil;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
import butterknife.BindView;
import butterknife.OnClick;
/**
* Created by SilenceDut on 2016/11/16 .
*/
public class ShareHolder extends BaseViewHolder<ShareData> {
@BindView(R.id.share_icon)
ImageView mShareIcon;
@BindView(R.id.share_tip)
TextView mShareTip;
private int mPosition;
private ShareData mShareData;
public static final int[] SHARE_ICONS = {R.mipmap.weixin, R.mipmap.moments, R.mipmap.qq, R.mipmap.kongjian};
private static final String[] TIPS = {"微信", "朋友圈", "QQ", "QQ空间"};
private static final SHARE_MEDIA[] SHAREMEDIAS = {SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE};
public ShareHolder(View itemView, BaseRecyclerAdapter baseRecyclerAdapter) {
super(itemView, baseRecyclerAdapter);
}
@Override
public void updateItem(ShareData data, int position) {
mShareData = data;
mShareIcon.setImageResource(SHARE_ICONS[position]);
mShareTip.setText(TIPS[position]);
mPosition = position;
}
@Override
public int getContentViewId() {
return R.layout.item_share;
}
@OnClick(R.id.share_container)
public void onClick() {
final UMImage umImage;
Bitmap screenBitmap = null;
ShareAction shareAction = new ShareAction((Activity) getContext()).setPlatform(SHAREMEDIAS[mPosition]).withTitle("知天气,天气尽在掌握之中").withText("简洁,实用,美观的天气应用,你的专属天气");
if (mShareData.mIsWeather) {
screenBitmap = UIUtil.takeScreenShot((Activity) getContext());
if (screenBitmap == null) {
Toast.makeText(getContext(), "抱歉,分享失败", Toast.LENGTH_LONG).show();
return;
}
umImage = new UMImage(getContext(), screenBitmap);
shareAction.withMedia(umImage);
} else {
umImage = new UMImage(getContext(), R.mipmap.icon);
shareAction.withMedia(umImage).withTargetUrl("https://beta.bugly.qq.com/knowweather");
}
final Bitmap finalScreenBitmap = screenBitmap;
shareAction.setCallback(new UMShareListener() {
@Override
public void onResult(SHARE_MEDIA platform) {
Toast.makeText(getContext(), "分享成功", Toast.LENGTH_SHORT).show();
umImage.asBitmap().recycle();
if (finalScreenBitmap != null) {
finalScreenBitmap.recycle();
}
}
@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
if (t != null) {
Toast.makeText(getContext(), "抱歉,分享失败", Toast.LENGTH_LONG).show();
}
umImage.asBitmap().recycle();
if (finalScreenBitmap != null) {
finalScreenBitmap.recycle();
}
}
@Override
public void onCancel(SHARE_MEDIA platform) {
umImage.asBitmap().recycle();
if (finalScreenBitmap != null) {
finalScreenBitmap.recycle();
}
}
});
shareAction.share();
mShareData.mShareDialog.dismiss();
}
}