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.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;
|
|
import org.greenrobot.eventbus.EventBus;
|
|
/**
|
* 我的-界面
|
*/
|
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<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")) {
|
//更新用户头像
|
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);
|
//更新用户头像
|
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<BUserInfo>() {
|
@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()) {
|
//todo B端不支持更改昵称
|
HdlThreadLogic.toast(_mActivity, R.string.loading_not_supported);
|
return;
|
}
|
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) {
|
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.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);
|
}
|
}
|
});
|
|
|
}
|
|
/**
|
* 初始化界面
|
*/
|
private void initView() {
|
|
|
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.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);
|
|
|
}
|
|
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 == null) {
|
return;
|
}
|
//接收外部点击事件
|
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();
|
}
|
// 取消粘性事件
|
EventBus.getDefault().removeStickyEvent(eventBus);
|
}
|
|
}
|
|
}
|
|
/**
|
* 获取用户自定义配置温度单位详情(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.getMsg() + "(" + e.getCode() + ")", true);
|
// HdlThreadLogic.toast(_mActivity, e);
|
}
|
});
|
}
|
}
|