package com.dayu.usercenter.ui.fragment; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.text.TextUtils; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import com.alibaba.android.arouter.launcher.ARouter; import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.common.Constants; import com.dayu.event.UserInfo; import com.dayu.provider.event.CertificationEvent; import com.dayu.provider.router.RouterPath; import com.dayu.usercenter.R; import com.dayu.usercenter.data.protocol.EngineerInfo; import com.dayu.usercenter.data.protocol.OrderRecord; import com.dayu.usercenter.data.protocol.TodayAchievement; import com.dayu.usercenter.databinding.FragmentHomeUserBinding; import com.dayu.usercenter.event.RefreshUserInfoEvent; import com.dayu.usercenter.event.RefreshUserRecordEvent; import com.dayu.usercenter.presenter.homeuser.HomeUserContract; import com.dayu.usercenter.presenter.homeuser.HomeUserPresenter; import com.dayu.usercenter.ui.activity.WithdrawalsActivity; import com.dayu.usercenter.ui.activity2.UserInfoActivity; import com.dayu.utils.CommonUtils; import com.dayu.utils.ProgressUtil; import com.dayu.utils.SPUtils; import com.dayu.utils.UserManager; import com.dayu.widgets.CustomDialog; import com.umeng.analytics.MobclickAgent; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; /** * Created by luofan * on 2017/11/20. */ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHomeUserBinding> implements HomeUserContract.View { private static final String TAG = "HomeUserFragment"; private String mUserName; private String mUserPhone; private String mScore; private int mAccountBalance; public static HomeUserFragment newInstance() { Bundle args = new Bundle(); HomeUserFragment fragment = new HomeUserFragment(); fragment.setArguments(args); return fragment; } @Override public void initView() { initUser(); ProgressUtil.startLoad(mActivity); EventBus.getDefault().register(this); // mPresenter.getAllData(userId, siteId); // mPresenter.getAlipayAccount(userId); mBind.refreshLayout.setEnableLoadMore(false); mBind.refreshLayout.setOnRefreshListener(refreshLayout -> mPresenter.getAllData(mUserId)); } @Override public void setPresenter() { mBind.setPresenter(mPresenter); } @Override public int getLayoutId() { return R.layout.fragment_home_user; } @Override protected void lazyLoad() { super.lazyLoad(); showDialog(); mPresenter.getAllData(mUserId); // mPresenter.getAlipayAccount(userId); } @Override public void getPersonalInfoSuccess(EngineerInfo info) { if (TextUtils.isEmpty(info.getIdentity())) { SPUtils.put("USER_IDENTITY", ""); } else { SPUtils.put("USER_IDENTITY", info.getIdentity()); } mUserName = info.getRealName(); mBind.tvAge.setText(info.getAge() + mActivity.getString(R.string.age)); if (info.getGender() == 1) { mBind.tvSex.setText(mActivity.getString(R.string.man)); } else if (info.getGender() == 0) { mBind.tvSex.setText(mActivity.getString(R.string.female)); } if (TextUtils.isEmpty(mUserName)) { mBind.tvName.setText(mActivity.getString(R.string.unknown)); } else { mBind.tvName.setText(mUserName); } if (TextUtils.isEmpty(info.getIdentity())) { mBind.tvSex.setText(mActivity.getString(R.string.unknown)); mBind.tvAge.setText(mActivity.getString(R.string.unknown)); } if (UserManager.getInstance().getUser().getDetectStatus() == 1 && !TextUtils.isEmpty((String) SPUtils.get("USER_IDENTITY", ""))) { mBind.ivAudited.setImageResource(R.drawable.icon_authentication); } else { mBind.ivAudited.setImageResource(R.drawable.icon_unauthentication); } mUserPhone = info.getMobile(); mBind.tvPhone.setText(mUserPhone); SPUtils.put("USER_PHONE", mUserPhone); SPUtils.put("USER_NAME", mUserName); mPresenter.mUrl.set(info.getAccountUrl()); UserInfo userInfo = UserManager.getInstance().getUser(); if (userInfo != null) { userInfo.setHeaderImg(info.getAccountUrl()); UserManager.getInstance().saveUser(userInfo); } } @Override public void getAchievementSuccess(TodayAchievement achievement) { if (achievement.getAchievement() != 0) { mBind.tvLicence.setText(achievement.getAchievement() + ""); } } @Override public void getOrderRecordSuccess(OrderRecord record) { mBind.refreshLayout.finishRefresh(); //认证资质 mBind.tvLicence.setText(record.getLicenceInfoNum() + ""); //工单记录 mBind.tvWorkOrders.setText(record.getOrderRecord() + ""); //个人评分 mBind.tvScore.setText(record.getScore() + mActivity.getString(R.string.score)); mScore = record.getScore() + ""; drawStars(mBind.tvStar, mScore, "5"); mBind.tvSaleReward.setText(""+record.getSalesPrice()); mBind.tvSaleRecord.setText(record.getSalesCount() + ""); mBind.tvServiceIncome.setText(""+record.getServiceTotalPrice()); mBind.tvBusinessType.setText(record.getCategoryCounts()+""); } @Override public void showAlipayDialog() { boolean isShow = (boolean) SPUtils.get(Constants.IS_SHOW_ALIPAY_DILAOG, true); if (isShow) { showAlertDialog(); SPUtils.put(Constants.IS_SHOW_ALIPAY_DILAOG, false); } } @Override public void dumpToOrderRecord() { } @Override public void dumpToSetting() { ARouter.getInstance().build(RouterPath.PATH_SETTING).navigation(); // startActivity(UserInfoActivity.class); MobclickAgent.onEvent(mActivity, "setting"); } @Override public void requestError() { mBind.refreshLayout.finishRefresh(); } private void showAlertDialog() { CustomDialog dialog = new CustomDialog(mActivity, R.style.CustomDialog, mActivity.getString(R.string.not_set_account) , (dialog1, confirm) -> { if (confirm) { Intent intent = new Intent(mActivity, WithdrawalsActivity.class); startActivity(intent); dialog1.dismiss(); MobclickAgent.onEvent(mActivity, "sure_set_account"); } else { MobclickAgent.onEvent(mActivity, "cancle_set_account"); } dialog1.dismiss(); }); dialog.setTitle(mActivity.getString(R.string.notice)) .setNegativeButton(mActivity.getString(R.string.not_set_up)) .setPositiveButton(mActivity.getString(R.string.go_set_up)); dialog.show(); } /** * drawStars. * * @param starLinearLayout . * @param lev . * @param totalLevel . */ private void drawStars(LinearLayout starLinearLayout, String lev, String totalLevel) { String level = "0"; if (!TextUtils.isEmpty(lev)) { level = lev; } int max = Integer.parseInt(totalLevel); int beginNum = 0; int endNum = max; boolean isNedHalf = false; if (!TextUtils.isEmpty(level)) { if (Float.parseFloat(level) > max) { beginNum = max; endNum = max - beginNum; } else { Float levelf = Float.parseFloat(level); int leveli = Math.round(levelf); if (leveli > levelf) { beginNum = leveli - 1; endNum = (max - 1) - beginNum; isNedHalf = true; } else { beginNum = leveli; endNum = max - beginNum; } } } starLinearLayout.removeAllViews(); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(3, 0, 3, 0); for (int i = 0; i < beginNum; i++) { ImageView starImg = new ImageView(mActivity); Bitmap bm = BitmapFactory.decodeResource(mActivity.getResources(), R.drawable. person_xingxing); starImg.setImageBitmap(bm); starLinearLayout.addView(starImg, layoutParams); } if (isNedHalf) { ImageView starImg = new ImageView(mActivity); Bitmap bm = BitmapFactory.decodeResource(mActivity.getResources(), R.drawable.person_banxing); starImg.setImageBitmap(bm); starLinearLayout.addView(starImg, layoutParams); } for (int i = 0; i < endNum; i++) { ImageView starImg = new ImageView(mActivity); Bitmap bm = BitmapFactory.decodeResource(mActivity.getResources(), R.drawable. person_xing); starImg.setImageBitmap(bm); starLinearLayout.addView(starImg, layoutParams); } } @Override public void onResume() { super.onResume(); UserInfo userInfo = UserManager.getInstance().getUser(); if (userInfo != null) { mPresenter.mUrl.set(userInfo.getHeaderImg()); } } @Override public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hidden); if (hidden) { MobclickAgent.onPageEnd(TAG); } else { MobclickAgent.onPageStart(TAG); } } @Subscribe(threadMode = ThreadMode.MAIN) public void certifiCation(CertificationEvent event) { mPresenter.getAllData(mUserId); } @Subscribe public void refreshRecord(RefreshUserRecordEvent event){ mPresenter.getRecordInfo(); } @Subscribe public void refreshUser(RefreshUserInfoEvent event){ mPresenter.getUserInfo(); } }