package com.electric.chargingpile.activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.os.Handler; import android.support.constraint.ConstraintLayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.text.TextUtils; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.andview.refreshview.XRefreshView; import com.blankj.utilcode.util.LogUtils; import com.electric.chargingpile.R; import com.electric.chargingpile.adapter.TopicDetailAdapter; import com.electric.chargingpile.adapter.UserPageAdapter; import com.electric.chargingpile.application.MainApplication; import com.electric.chargingpile.data.UserHomePageBean; import com.electric.chargingpile.data.UserPageBeanLab; import com.electric.chargingpile.iview.RecyclerItemTypeClickListener; import com.electric.chargingpile.util.BarColorUtil; import com.electric.chargingpile.util.CommonParams; import com.electric.chargingpile.util.JsonUtils; import com.electric.chargingpile.util.LoadingDialog; import com.electric.chargingpile.util.NetUtil; import com.electric.chargingpile.util.ToastUtil; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.squareup.picasso.Picasso; import com.squareup.picasso.Target; import com.umeng.analytics.MobclickAgent; import com.zhy.http.okhttp.OkHttpUtils; import com.zhy.http.okhttp.callback.StringCallback; import java.util.HashMap; import java.util.Map; import cn.sharesdk.framework.Platform; import cn.sharesdk.framework.PlatformActionListener; import cn.sharesdk.framework.ShareSDK; import cn.sharesdk.tencent.qq.QQ; import cn.sharesdk.wechat.friends.Wechat; import cn.sharesdk.wechat.moments.WechatMoments; import okhttp3.Call; public class UserPageActivity extends AppCompatActivity implements View.OnClickListener { private static final String TAG = "UserPageActivity"; private boolean fromUserCenter = false; private LoadingDialog loadingDialog; private String targetUserId; private ImageView userHead; private RelativeLayout noNetView; private TextView noNetTry; private int page = 1; private UserHomePageBean userHomePageBean; private XRefreshView xRefreshView; private RecyclerView recyclerView; private ConstraintLayout userEdit; private UserHomePageBean.UserVo userVo; private TextView nickName; private TextView carName; private StaggeredGridLayoutManager staggeredGridLayoutManager; private UserPageAdapter userPageAdapter; private ConstraintLayout zeroTopicNum; private TextView topicNum; private String shareStatus = ""; private String sharePoint = ""; private String sharePlatform = ""; private RelativeLayout rl_point; private TextView tv_point; private Animation animation; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_user_page); initView(); initListener(); } private void initView() { UserPageBeanLab.get(UserPageActivity.this).clear(); BarColorUtil.setStatusBarColor(UserPageActivity.this, getResources().getColor(R.color.color_1bb637), 1); loadingDialog = new LoadingDialog(UserPageActivity.this); loadingDialog.setCanceledOnTouchOutside(false); targetUserId = getIntent().getStringExtra("targetUserId"); if (TextUtils.isEmpty(targetUserId)) { fromUserCenter = true; } else { fromUserCenter = false; } userHead = findViewById(R.id.userHead); userEdit = findViewById(R.id.userEdit); topicNum = findViewById(R.id.topicNum); nickName = findViewById(R.id.nickName); carName = findViewById(R.id.carName); if (fromUserCenter) { userEdit.setVisibility(View.VISIBLE); } else { userEdit.setVisibility(View.GONE); } noNetView = findViewById(R.id.noNetView); noNetTry = findViewById(R.id.noNetTry); zeroTopicNum = findViewById(R.id.zeroTopicNum); rl_point = findViewById(R.id.rl_point); tv_point = findViewById(R.id.tv_point); animation = AnimationUtils.loadAnimation(UserPageActivity.this, R.anim.nn); if (NetUtil.CheckNetwork(this)) { noNetView.setVisibility(View.GONE); loadingDialog.show(); page = 1; requestData(); } else { noNetView.setVisibility(View.VISIBLE); } xRefreshView = findViewById(R.id.xRefreshView); xRefreshView.setPullLoadEnable(true); // 允许加载更多 xRefreshView.setPinnedTime(0); xRefreshView.setMoveForHorizontal(true); xRefreshView.setXRefreshViewListener(new XRefreshView.SimpleXRefreshListener() { @Override public void onRefresh(boolean isPullDown) { super.onRefresh(isPullDown); page = 1; requestData(); } @Override public void onLoadMore(boolean isSilence) { super.onLoadMore(isSilence); page++; requestData(); } }); staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); staggeredGridLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE); userPageAdapter = new UserPageAdapter(getApplicationContext(), UserPageActivity.this); recyclerView = findViewById(R.id.recyclerView); recyclerView.setHasFixedSize(true); recyclerView.setItemAnimator(null); recyclerView.setLayoutManager(staggeredGridLayoutManager); recyclerView.setAdapter(userPageAdapter); recyclerView.addItemDecoration(new TopicDetailAdapter.ContentViewDecoration()); userPageAdapter.setOnRecyclerItemClickListener(new RecyclerItemTypeClickListener() { @Override public void onItemClickListener(int position, int index) { Intent intent = new Intent(UserPageActivity.this, ChatContentListActivity.class); intent.putExtra("from", ChatContentListActivity.FROM_USER_PAGE); intent.putExtra("index", position); startActivityForResult(intent, ChatContentListActivity.REQUEST_CODE_USER_PAGE); } }); } private void initListener() { findViewById(R.id.backPress).setOnClickListener(this); findViewById(R.id.morePress).setOnClickListener(this); noNetTry.setOnClickListener(this); userEdit.setOnClickListener(this); } @Override protected void onPostResume() { super.onPostResume(); if (fromUserCenter) { if (!"".equals(MainApplication.userIcon)) { Picasso.with(UserPageActivity.this) .load(MainApplication.userIcon) .placeholder(R.drawable.icon_face2_0) .error(R.drawable.icon_face2_0) .into(userHead); } else { userHead.setImageResource(R.drawable.icon_face2_0); } } } @Override public void onClick(View view) { switch (view.getId()) { case R.id.backPress: finish(); break; case R.id.morePress: if (!NetUtil.CheckNetwork(this)) { noNetView.setVisibility(View.VISIBLE); ToastUtil.showToast(UserPageActivity.this, "小主网络跑掉了,请检查网络~", Toast.LENGTH_SHORT); return; } if (userHomePageBean == null) { page = 1; loadingDialog.show(); requestData(); return; } showSimpleBottomSheetGrid(); MobclickAgent.onEvent(getApplicationContext(), "1095"); break; case R.id.noNetTry: if (NetUtil.CheckNetwork(UserPageActivity.this)) { noNetView.setVisibility(View.GONE); page = 1; loadingDialog.show(); requestData(); } else { noNetView.setVisibility(View.VISIBLE); } break; case R.id.userEdit: MobclickAgent.onEvent(getApplicationContext(), "1094"); startActivity(new Intent(getApplicationContext(), UserInfoActivity.class)); break; } } private void requestData() { String url = MainApplication.urlNew + "/user/homepage.do"; Map map = new HashMap<>(); map.put("page", page + ""); map.put("limit", "20"); if (fromUserCenter) { map.put("targetUserId", MainApplication.userId); // 说明是自己 } else { map.put("targetUserId", targetUserId); } CommonParams.addCommonParams(map); OkHttpUtils.get().url(url).params(map).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() { @Override public void onError(Call call, Exception e) { loadingDialog.dismiss(); if (page == 1) { xRefreshView.stopRefresh(); } else { page--; xRefreshView.stopLoadMore(); } ToastUtil.showToast(UserPageActivity.this, "加载失败,请重试", Toast.LENGTH_SHORT); } @Override public void onResponse(String s) { loadingDialog.dismiss(); String code = JsonUtils.getKeyResult(s, "code"); if ("1000".equals(code)) { String data = JsonUtils.getKeyResult(s, "data"); userHomePageBean = (UserHomePageBean) JsonUtils.parseToObjectBean(data, UserHomePageBean.class); if (page == 1) { xRefreshView.setLoadComplete(false); userVo = userHomePageBean.userVo; updateTopView(); if (userHomePageBean.list.size() == 0) { zeroTopicNum.setVisibility(View.VISIBLE); xRefreshView.setLoadComplete(true); } else { zeroTopicNum.setVisibility(View.GONE); userPageAdapter.setContentData(userHomePageBean.list); } userPageAdapter.setFooterData(false); xRefreshView.stopRefresh(); } else { if (userHomePageBean.list.size() == 0) { xRefreshView.setLoadComplete(true); userPageAdapter.setFooterData(true); } else { userPageAdapter.addContentData(userHomePageBean.list); userPageAdapter.setFooterData(false); } xRefreshView.stopLoadMore(); } } else { String desc = JsonUtils.getKeyResult(s, "desc"); ToastUtil.showToast(UserPageActivity.this, desc, Toast.LENGTH_SHORT); if (page == 1) { xRefreshView.stopRefresh(); } else { page--; xRefreshView.stopLoadMore(); } } } }); } private void updateTopView() { if (TextUtils.isEmpty(userVo.headImgUrl)) { userHead.setImageResource(R.drawable.icon_face2_0); } else { Picasso.with(this).load("http://cdz.evcharge.cc/zhannew/uploadfile/" + userVo.headImgUrl).into(new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom loadedFrom) { userHead.setImageBitmap(bitmap); } @Override public void onBitmapFailed(Drawable drawable) { userHead.setImageResource(R.drawable.icon_face2_0); } @Override public void onPrepareLoad(Drawable drawable) { } }); } nickName.setText(userVo.nickName); if (TextUtils.isEmpty(userVo.carName)) { carName.setText(""); } else { carName.setText(userVo.carName); } topicNum.setText(userVo.topicNums); } private void showSimpleBottomSheetGrid() { final int TAG_SHARE_WECHAT_FRIEND = 0; final int TAG_SHARE_WECHAT_MOMENT = 1; final int TAG_SHARE_QQ = 2; QMUIBottomSheet.BottomGridSheetBuilder builder = new QMUIBottomSheet.BottomGridSheetBuilder(UserPageActivity.this); QMUIBottomSheet build = builder.addItem(R.drawable.icon_share_wechat, "微信", TAG_SHARE_WECHAT_FRIEND, QMUIBottomSheet.BottomGridSheetBuilder.FIRST_LINE) .addItem(R.drawable.icon_share_wechatquan, "朋友圈", TAG_SHARE_WECHAT_MOMENT, QMUIBottomSheet.BottomGridSheetBuilder.FIRST_LINE) .addItem(R.drawable.icon_share_qq, "QQ", TAG_SHARE_QQ, QMUIBottomSheet.BottomGridSheetBuilder.FIRST_LINE) .setOnSheetItemClickListener(new QMUIBottomSheet.BottomGridSheetBuilder.OnSheetItemClickListener() { @Override public void onClick(QMUIBottomSheet dialog, View itemView) { dialog.dismiss(); int tag = (int) itemView.getTag(); switch (tag) { case TAG_SHARE_WECHAT_FRIEND: share(Wechat.NAME); break; case TAG_SHARE_WECHAT_MOMENT: share(WechatMoments.NAME); break; case TAG_SHARE_QQ: share(QQ.NAME); break; } } }).build(); build.show(); } private void share(final String name) { Platform.ShareParams paramsToShare = new Platform.ShareParams(); if (TextUtils.isEmpty(userHomePageBean.userVo.nickName)) { paramsToShare.setTitle("推荐"); } else { paramsToShare.setTitle(userHomePageBean.userVo.nickName + "的个人主页"); } if (TextUtils.isEmpty(userHomePageBean.userVo.nickName)) { paramsToShare.setText("在充电桩聊聊你的生活"); } else { paramsToShare.setText("快来看看" + userHomePageBean.userVo.nickName + "都在分享什么吧"); } paramsToShare.setTitleUrl(userHomePageBean.shareUrl); paramsToShare.setUrl(userHomePageBean.shareUrl); paramsToShare.setImageUrl("http://cdz.evcharge.cc/zhannew/uploadfile/" + userHomePageBean.userVo.headImgUrl); paramsToShare.setShareType(Platform.SHARE_WEBPAGE); Platform platform = ShareSDK.getPlatform(name); platform.setPlatformActionListener(new PlatformActionListener() { @Override public void onComplete(Platform platform, int i, HashMap hashMap) { if (platform.getName().equalsIgnoreCase(QQ.NAME)) { if (MainApplication.isLogin()) { shareStatus = "yes"; sharePlatform = "qq"; getShareIntegral(); } } else { getShareIntegral(); } ToastUtil.showToast(getApplicationContext(), "分享成功", Toast.LENGTH_SHORT); } @Override public void onError(Platform platform, int i, Throwable throwable) { LogUtils.e(throwable.getMessage()); } @Override public void onCancel(Platform platform, int i) { } }); platform.share(paramsToShare); } private void getShareIntegral() { String url = MainApplication.url + "/zhannew/basic/web/index.php/member/insert-task?userid=" + MainApplication.userId; OkHttpUtils.get().url(url).build().execute(new StringCallback() { @Override public void onError(Call call, Exception e) { } @Override public void onResponse(String response) { LogUtils.e(response); String rtnCode = JsonUtils.getKeyResult(response, "rtnCode"); if ("01".equals(rtnCode)) { String plusScore = JsonUtils.getKeyResult(response, "plusScore"); if (!plusScore.equals("")) { if (sharePlatform.equals("qq")) { sharePoint = plusScore; } else { tv_point.setText(plusScore); rl_point.setVisibility(View.VISIBLE); rl_point.startAnimation(animation); new Handler().postDelayed(new Runnable() { public void run() { rl_point.setVisibility(View.GONE); } }, 1500); } } } else { } } }); } @Override protected void onResume() { super.onResume(); if (shareStatus.equals("yes") && !sharePoint.equals("") && sharePlatform.equals("qq")) { tv_point.setText(sharePoint); rl_point.setVisibility(View.VISIBLE); rl_point.startAnimation(animation); new Handler().postDelayed(new Runnable() { public void run() { rl_point.setVisibility(View.GONE); } }, 1500); shareStatus = ""; sharePoint = ""; sharePlatform = ""; } } }