package com.llf.common.ui.mine;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import com.llf.basemodel.base.BaseFragment;
import com.llf.basemodel.commonwidget.CircleImageView;
import com.llf.basemodel.dialog.ShareDialog;
import com.llf.basemodel.utils.AppInfoUtil;
import com.llf.basemodel.utils.ImageLoaderUtils;
import com.llf.common.R;
import com.llf.common.constant.AppConfig;
import com.llf.common.ui.mine.contact.MineContract;
import com.llf.common.ui.mine.presenter.MinePresenter;
import com.llf.photopicker.ImgSelConfig;
import com.llf.photopicker.PickPhotoActivity;
import com.tencent.connect.common.Constants;
import com.tencent.connect.share.QQShare;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.SendMessageToWX;
import com.tencent.mm.sdk.openapi.WXAPIFactory;
import com.tencent.mm.sdk.openapi.WXMediaMessage;
import com.tencent.mm.sdk.openapi.WXWebpageObject;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.Tencent;
import com.tencent.tauth.UiError;
import java.util.ArrayList;
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnClick;
import static com.tencent.mm.sdk.platformtools.Util.bmpToByteArray;
/**
* Created by llf on 2017/3/15.
* 我的
*/
public class MineFragment extends BaseFragment implements MineContract.View, IUiListener, ShareDialog.OneShare {
@Bind(R.id.avatar)
CircleImageView mAvatar;
@Bind(R.id.img_attention)
ImageView mImgAttention;
@Bind(R.id.img_track)
ImageView mImgTrack;
@Bind(R.id.img_share)
ImageView mImgShare;
private static final int CHANGE_AVATAIR = 1;
private MineContract.Presenter mPresenter;
private Tencent mTencent;
private IWXAPI iwxapi;
public static MineFragment getInstance() {
MineFragment mineFragment = new MineFragment();
return mineFragment;
}
@Override
protected int getLayoutId() {
return R.layout.fragment_mine;
}
@Override
protected void initView() {
mPresenter = new MinePresenter(this);
/**
* 推荐位,根据服务器传入的图标名字图标可动态配置
*/
mImgAttention.setImageResource(getResources().getIdentifier("ic_mine_attention","drawable", AppInfoUtil.getPackageName(getActivity())));
mImgTrack.setImageResource(getResources().getIdentifier("ic_mine_track","drawable", AppInfoUtil.getPackageName(getActivity())));
mImgShare.setImageResource(getResources().getIdentifier("ic_mine_share","drawable", AppInfoUtil.getPackageName(getActivity())));
mTencent = Tencent.createInstance(AppConfig.APP_ID_QQ, getActivity());
iwxapi = WXAPIFactory.createWXAPI(getActivity(), AppConfig.APP_ID_WEIXIN, false);
iwxapi.registerApp(AppConfig.APP_ID_WEIXIN);
}
@Override
protected void lazyFetchData() {
}
@OnClick({R.id.setting, R.id.attention, R.id.track, R.id.share, R.id.night, R.id.service, R.id.update, R.id.reply, R.id.avatar})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.setting:
startActivity(SettingActivity.class);
break;
case R.id.attention:
startActivity(AttentionActivity.class);
break;
case R.id.track:
startActivity(TrackActivity.class);
break;
case R.id.share:
ShareDialog.show(getActivity(), this);
break;
case R.id.night:
showToast("夜间模式");
break;
case R.id.service:
showToast("客服中心");
break;
case R.id.update:
mPresenter.checkUpdate("http://api.fir.im/apps/latest/58f87d50959d6904280005a3?api_token=9f2408863ff25abccca986e5d4d9d6ba");
break;
case R.id.reply:
showToast("反馈");
break;
case R.id.avatar:
PickPhotoActivity.startActivity(this, new ImgSelConfig.Builder().multiSelect(false).build(), CHANGE_AVATAIR);
break;
default:
break;
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CHANGE_AVATAIR && resultCode == Activity.RESULT_OK) {
ArrayList<String> result = data.getStringArrayListExtra(PickPhotoActivity.INTENT_RESULT);
if (result.size() != 0) {
ImageLoaderUtils.loadingImg(getActivity(), mAvatar, result.get(0));
}
}
if (requestCode == Constants.REQUEST_QQ_SHARE) {
Tencent.onActivityResultData(requestCode, resultCode, data, this);
}
// Luban.get(getActivity())
// .load(File) //传人要压缩的图片
// .putGear(Luban.THIRD_GEAR) //设定压缩档次,默认三挡
// .setCompressListener(new OnCompressListener() { //设置回调
//
// @Override
// public void onStart() {
// // TODO 压缩开始前调用,可以在方法内启动 loading UI
// }
// @Override
// public void onSuccess(File file) {
// // TODO 压缩成功后调用,返回压缩后的图片文件
// }
//
// @Override
// public void onError(Throwable e) {
// // TODO 当压缩过去出现问题时调用
// }
// }).launch(); //启动压缩
super.onActivityResult(requestCode, resultCode, data);
}
@Override
public void showLoading() {
startProgressDialog();
}
@Override
public void stopLoading() {
stopProgressDialog();
}
@Override
public void showErrorTip(String msg) {
showErrorHint(msg);
}
@Override
public void retureResult(String result) {
showToast(result);
}
@Override
public void onComplete(Object o) {
showToast("qq分享成功");
}
@Override
public void onError(UiError uiError) {
showToast("qq分享出错" + uiError.errorMessage);
}
@Override
public void onCancel() {
showToast("qq分享取消");
}
@Override
public void weixinShare() {
if(!AppInfoUtil.isWeixinAvilible(getActivity())){
showToast("请先安装微信");
return;
}
WXWebpageObject webpageObject = new WXWebpageObject();
webpageObject.webpageUrl = "https://fir.im/6s7z";
WXMediaMessage msg = new WXMediaMessage(webpageObject);
msg.title = "出大事了";
msg.description = "这里有个好强大的app";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
msg.thumbData = bmpToByteArray(thumb, true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession;
iwxapi.sendReq(req);
}
@Override
public void qqShare() {
Bundle params = new Bundle();
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
params.putString(QQShare.SHARE_TO_QQ_TITLE, "出大事了");
params.putString(QQShare.SHARE_TO_QQ_SUMMARY, "这里有个好强大的app");
params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, "https://fir.im/6s7z");
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, "http://avatar.csdn.net/B/0/1/1_new_one_object.jpg");
params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "秀趣");
params.putInt(QQShare.SHARE_TO_QQ_EXT_INT, QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN);
mTencent.shareToQQ(getActivity(), params, this);
}
private String buildTransaction(final String type) {
return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
}
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
}
}