|
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<String, String> 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<String, Object> 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 = "";
}
}
}
|