package com.hdl.photovoltaic.ui.me; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import androidx.annotation.Nullable; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseFragment; import com.hdl.photovoltaic.config.ConstantManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.databinding.FragmentMeBinding; import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlAccountLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.ui.bean.BUserInfo; import com.hdl.photovoltaic.ui.bean.CUserInfo; import com.hdl.photovoltaic.ui.test.TestMainActivity; import com.hdl.photovoltaic.utils.GlideUtils; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; /** * 我的-界面 */ public class MeFragment extends CustomBaseFragment { private FragmentMeBinding viewBinding; private CUserInfo mC_UserInfo; private BUserInfo mB_UserInfo; @Override public Object getContentView() { viewBinding = FragmentMeBinding.inflate(getLayoutInflater()); return viewBinding.getRoot(); } @Override public void onBindView(Bundle savedInstanceState) { //初始化 initView(); //初始化界面监听器 initEvent(); //初始化数据 initData(); } /** * 初始化数据 */ private void initData() { // showLoading(); // if (UserConfigManage.getInstance().isBAccount()) { // this.getBUserInfo(); // } else { // this.getCMemberInfo(); // } //因为uni那边需要,启动的时候就读取啦 this.getResidenceTemperatureUnit(); } /** * 获取C端个人信息 */ private void getCMemberInfo() { HdlAccountLogic.getInstance().getMemberInfo_C(new CloudCallBeak() { @Override public void onSuccess(CUserInfo cUserInfo) { if (cUserInfo == null) { return; } mC_UserInfo = cUserInfo; UserConfigManage.getInstance().setBingPhone(cUserInfo.getMemberPhone()); UserConfigManage.getInstance().setBingEmail(cUserInfo.getMemberEmail()); UserConfigManage.getInstance().Save(); // hideLoading(); //获取用户头像路径 if (cUserInfo.getMemberHeadIcon().contains("http")) { //更新用户头像 setMemberHeadIcon(cUserInfo.getMemberHeadIcon()); //更新用户名称 setMemberName(cUserInfo.getMemberName()); } else { HdlAccountLogic.getInstance().getImageKey_C(cUserInfo.getMemberHeadIcon(), new CloudCallBeak() { @Override public void onSuccess(String url) { cUserInfo.setMemberHeadIcon(url); //更新用户头像 setMemberHeadIcon(cUserInfo.getMemberHeadIcon()); //更新用户名称 setMemberName(cUserInfo.getMemberName()); } @Override public void onFailure(HDLException e) { // //更新用户头像 // setMemberHeadIcon(cUserInfo.getMemberHeadIcon()); //更新用户名称 setMemberName(cUserInfo.getMemberName()); // HdlThreadLogic.toast(_mActivity, e); } }); } } @Override public void onFailure(HDLException e) { //怕其它不判断null mC_UserInfo = new CUserInfo(); // hideLoading(); HdlThreadLogic.toast(_mActivity, e); } }); } /** * 获取B端个人信息 */ private void getBUserInfo() { HdlAccountLogic.getInstance().getUserInfo_B(new CloudCallBeak() { @Override public void onSuccess(BUserInfo bUserInfo) { mB_UserInfo = bUserInfo; // hideLoading(); setMemberName(bUserInfo.getUserName()); } @Override public void onFailure(HDLException e) { // hideLoading(); HdlThreadLogic.toast(_mActivity, e); } }); } /** * 注册监听器 */ private void initEvent() { viewBinding.fragmentMeIconParentCl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (UserConfigManage.getInstance().isBAccount()) { Intent intent = new Intent(); intent.setClass(_mActivity, BPersonalDataActivity.class); startActivity(intent); } else { Intent intent = new Intent(); intent.setClass(_mActivity, CPersonalDataActivity.class); if (mC_UserInfo == null) { mC_UserInfo = new CUserInfo(); } intent.putExtra("memberHeadIcon", mC_UserInfo.getMemberHeadIcon()); startActivityForResult(intent, 10); } } }); viewBinding.fragmentMeLineSetIl.fragmentMeLineRightIconClickIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(_mActivity, SetActivity.class); startActivity(intent); } }); viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineCl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(AsRegardsActivity.class); } }); final int[] count = {0}; viewBinding.meTitleTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { count[0] = count[0] + 1; if (count[0] > 3) { count[0] = 0; startActivity(TestMainActivity.class); } } }); } /** * 初始化界面 */ private void initView() { viewBinding.fragmentMeLineSetIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.set); viewBinding.fragmentMeLineSetIl.fragmentMeLineTitleIv.setText(R.string.me_set); viewBinding.fragmentMeLineSetIl.fragmentMeLineV.setVisibility(View.VISIBLE); viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.asregards); viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineTitleIv.setText(R.string.me_regard); setMemberName(UserConfigManage.getInstance().getUserName()); // setMemberHeadIcon(UserConfigManage.getInstance().getUserImageUrl()); } public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (UserConfigManage.getInstance().isBAccount()) { //B端不需要更新 return; } if (requestCode == 10 && resultCode == 10) { if (data != null) { String iconUrl = data.getStringExtra("memberHeadIcon"); String memberName = data.getStringExtra("memberName"); //更新用户头像 setMemberHeadIcon(iconUrl); //更新用户名称 setMemberName(memberName); } } } /** * 显示用户头像 */ private void setMemberHeadIcon(String memberHeadIconUrl) { if (TextUtils.isEmpty(memberHeadIconUrl)) { return; } if (mC_UserInfo != null) { mC_UserInfo.setMemberHeadIcon(memberHeadIconUrl); } GlideUtils.getCircleCropImage(_mActivity, memberHeadIconUrl, viewBinding.fragmentMeIconIv, true); // GlideUtils.getRoundedCornersImage(_mActivity, memberHeadIconUrl, viewBinding.fragmentMeIconIv, new RoundedCorners(4), true); } /** * 显示用户名称 */ private void setMemberName(String userName) { if (TextUtils.isEmpty(userName)) { return; } viewBinding.fragmentMeUserNameIv.setText(userName); UserConfigManage.getInstance().setUserName(userName); UserConfigManage.getInstance().Save(); } @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onEventMessage(BaseEventBus eventBus) { super.onEventMessage(eventBus); if (eventBus == null) { return; } //接收外部点击事件 if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) { if (eventBus.getType().equals(HomepageTitleTabSwitch.me.toString())) { // 取消粘性事件 EventBus.getDefault().removeStickyEvent(eventBus); //读取头像 if (UserConfigManage.getInstance().isBAccount()) { this.getBUserInfo(); } else { this.getCMemberInfo(); } // 取消粘性事件 EventBus.getDefault().removeStickyEvent(eventBus); } } } /** * 获取用户自定义配置温度单位详情(app启动的时候要获取) */ private void getResidenceTemperatureUnit() { HdlResidenceLogic.getInstance().getResidenceTemperatureUnit(new CloudCallBeak() { @Override public void onSuccess(String json) { try { if (TextUtils.isEmpty(json) || json.equals("{}")) { return; } JSONObject jsonObject = new Gson().fromJson(json, JSONObject.class); if (jsonObject.containsKey("tempType")) { String unit = jsonObject.getString("tempType"); if (unit.contains("C")) { unit = "℃"; } else { unit = "℉"; } UserConfigManage.getInstance().setTemperature_unit(unit); UserConfigManage.getInstance().Save(); } } catch (Exception ignored) { } } @Override public void onFailure(HDLException e) { HdlLogLogic.print("获取用户自定义配置温度单位详情--->" + e.getMsg() + "(" + e.getCode() + ")", true); // HdlThreadLogic.toast(_mActivity, e); } }); } }