| | |
| | | package com.hdl.photovoltaic.ui.me; |
| | | |
| | | import android.app.job.JobScheduler; |
| | | 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.bumptech.glide.load.resource.bitmap.RoundedCorners; |
| | | 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; |
| | | |
| | | /** |
| | | * 我的-界面 |
| | | */ |
| | | public class MeFragment extends CustomBaseFragment { |
| | | private FragmentMeBinding viewBinding; |
| | | |
| | | private CUserInfo mC_UserInfo; |
| | | private BUserInfo mB_UserInfo; |
| | | |
| | | |
| | | @Override |
| | |
| | | initEvent(); |
| | | //初始化数据 |
| | | initData(); |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | private void initData() { |
| | | // showLoading(); |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | this.getBUserInfo(); |
| | | } else { |
| | | this.getCMemberInfo(); |
| | | } |
| | | // if (UserConfigManage.getInstance().isBAccount()) { |
| | | // this.getBUserInfo(); |
| | | // } else { |
| | | // this.getCMemberInfo(); |
| | | // } |
| | | //因为uni那边需要,启动的时候就读取啦 |
| | | this.getResidenceTemperatureUnit(); |
| | | } |
| | | |
| | | |
| | |
| | | HdlAccountLogic.getInstance().getMemberInfo_C(new CloudCallBeak<CUserInfo>() { |
| | | @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")) { |
| | | updateView(null, cUserInfo); |
| | | //更新用户头像 |
| | | setMemberHeadIcon(cUserInfo.getMemberHeadIcon()); |
| | | //更新用户名称 |
| | | setMemberName(cUserInfo.getMemberName()); |
| | | } else { |
| | | HdlAccountLogic.getInstance().getImageKey_C(cUserInfo.getMemberHeadIcon(), new CloudCallBeak<String>() { |
| | | @Override |
| | | public void onSuccess(String url) { |
| | | cUserInfo.setMemberHeadIcon(url); |
| | | updateView(null, cUserInfo); |
| | | //更新用户头像 |
| | | setMemberHeadIcon(cUserInfo.getMemberHeadIcon()); |
| | | //更新用户名称 |
| | | setMemberName(cUserInfo.getMemberName()); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | updateView(null, cUserInfo); |
| | | HdlThreadLogic.toast(_mActivity, 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); |
| | | } |
| | |
| | | HdlAccountLogic.getInstance().getUserInfo_B(new CloudCallBeak<BUserInfo>() { |
| | | @Override |
| | | public void onSuccess(BUserInfo bUserInfo) { |
| | | mB_UserInfo = bUserInfo; |
| | | // hideLoading(); |
| | | updateView(bUserInfo, null); |
| | | setMemberName(bUserInfo.getUserName()); |
| | | } |
| | | |
| | | @Override |
| | |
| | | * 注册监听器 |
| | | */ |
| | | private void initEvent() { |
| | | |
| | | viewBinding.fragmentMeIconParentCl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | Intent intent = new Intent(); |
| | | intent.setClass(_mActivity, PersonalDataActivity.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) { |
| | |
| | | viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineCl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | startActivity(TestMainActivity.class); |
| | | startActivity(AsRegardsActivity.class); |
| | | } |
| | | }); |
| | | final int[] count = {0}; |
| | | viewBinding.toolbarTopFragmentMeRl.topTitleTv.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); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 更新ui |
| | | * |
| | | * @param bUserInfo B端个人信息 |
| | | * @param cUserInfo C端个人信息 |
| | | */ |
| | | private void updateView(BUserInfo bUserInfo, CUserInfo cUserInfo) { |
| | | if (viewBinding == null) { |
| | | return; |
| | | } |
| | | String userName = UserConfigManage.getInstance().getUserName(); |
| | | if (bUserInfo != null) { |
| | | //B端 |
| | | userName = bUserInfo.getUserName(); |
| | | } |
| | | if (cUserInfo != null) { |
| | | //C端 |
| | | userName = cUserInfo.getMemberName(); |
| | | GlideUtils.getRoundedCornersImage(_mActivity, cUserInfo.getMemberHeadIcon(), viewBinding.fragmentMeIconIv, new RoundedCorners(4)); |
| | | } |
| | | viewBinding.fragmentMeUserNameIv.setText(userName); |
| | | UserConfigManage.getInstance().setUserName(userName); |
| | | UserConfigManage.getInstance().Save(); |
| | | } |
| | | |
| | | @Override |
| | | public void onResume() { |
| | | super.onResume(); |
| | | //更新用户名称 |
| | | updateView(null, null); |
| | | } |
| | | |
| | | /** |
| | | * 初始化界面 |
| | | */ |
| | | private void initView() { |
| | | viewBinding.toolbarTopFragmentMeRl.topTitleTv.setText(R.string.power_station_me); |
| | | viewBinding.toolbarTopFragmentMeRl.topMoreIv.setVisibility(View.VISIBLE); |
| | | viewBinding.toolbarTopFragmentMeRl.topMoreIv.setImageResource(R.drawable.message); |
| | | |
| | | |
| | | viewBinding.toolbarTopFragmentMeRl.topTitleTv.setText(R.string.me); |
| | | // viewBinding.toolbarTopFragmentMeRl.topMoreIv.setVisibility(View.VISIBLE); |
| | | // viewBinding.toolbarTopFragmentMeRl.topMoreIv.setImageResource(R.drawable.message); |
| | | |
| | | |
| | | viewBinding.fragmentMeLineSetIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.set); |
| | |
| | | |
| | | viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.asregards); |
| | | viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineTitleIv.setText(R.string.me_regard); |
| | | |
| | | |
| | | } |
| | | |
| | | public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { |
| | | super.onActivityResult(requestCode, resultCode, data); |
| | | 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 (mC_UserInfo != null) { |
| | | mC_UserInfo.setMemberHeadIcon(memberHeadIconUrl); |
| | | } |
| | | GlideUtils.getRoundedCornersImage(_mActivity, memberHeadIconUrl, viewBinding.fragmentMeIconIv, new RoundedCorners(4)); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 显示用户名称 |
| | | */ |
| | | private void setMemberName(String userName) { |
| | | viewBinding.fragmentMeUserNameIv.setText(userName); |
| | | UserConfigManage.getInstance().setUserName(userName); |
| | | UserConfigManage.getInstance().Save(); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onEventMessage(BaseEventBus eventBus) { |
| | | super.onEventMessage(eventBus); |
| | | //接收外部点击事件 |
| | | if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) { |
| | | if (eventBus.getType().equals(HomepageTitleTabSwitch.me.toString())) { |
| | | //读取头像 |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | this.getBUserInfo(); |
| | | } else { |
| | | this.getCMemberInfo(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取用户自定义配置温度单位详情(app启动的时候要获取) |
| | | */ |
| | | private void getResidenceTemperatureUnit() { |
| | | HdlResidenceLogic.getInstance().getResidenceTemperatureUnit(new CloudCallBeak<String>() { |
| | | @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.getMessage() + "(" + e.getCode() + ")", true); |
| | | // HdlThreadLogic.toast(_mActivity, e); |
| | | } |
| | | }); |
| | | } |
| | | } |