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.enums.UserRightType;
|
import com.hdl.photovoltaic.listener.CloudCallBeak;
|
import com.hdl.photovoltaic.other.HdlAccountLogic;
|
import com.hdl.photovoltaic.other.HdlLogLogic;
|
import com.hdl.photovoltaic.other.HdlMemberLogic;
|
import com.hdl.photovoltaic.other.HdlResidenceLogic;
|
import com.hdl.photovoltaic.other.HdlThreadLogic;
|
import com.hdl.photovoltaic.other.HdlUniLogic;
|
import com.hdl.photovoltaic.ui.bean.BUserInfo;
|
import com.hdl.photovoltaic.ui.bean.CUserInfo;
|
import com.hdl.photovoltaic.ui.bean.UserRightTypeBean;
|
import com.hdl.photovoltaic.ui.test.TestMainActivity;
|
import com.hdl.photovoltaic.uni.HDLUniMP;
|
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<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().setUserName(cUserInfo.getMemberName());
|
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;
|
UserConfigManage.getInstance().setBingPhone(bUserInfo.getUserPhone());
|
UserConfigManage.getInstance().setBingEmail(bUserInfo.getUserEmail());
|
UserConfigManage.getInstance().setUserName(bUserInfo.getUserName());
|
UserConfigManage.getInstance().Save();
|
// hideLoading();
|
setMemberName(bUserInfo.getUserName());
|
setMemberAccount(TextUtils.isEmpty(bUserInfo.getUserPhone()) ? bUserInfo.getUserEmail() : bUserInfo.getUserPhone());
|
}
|
|
@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.fragmentMeLineUserManagementIl.fragmentMeLineRightIconClickIv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
String path = HDLUniMP.UNI_EVENT_OPEN_MINE_MINESTAFFMANAGER;
|
HdlUniLogic.getInstance().openUniMP(path, null);
|
}
|
});
|
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.fragmentMeLineUserManagementIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.user_management);
|
viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineTitleIv.setText(R.string.staff_management);
|
viewBinding.fragmentMeLineUserManagementIl.getRoot().setVisibility(View.GONE);//先隐藏,读取到有限权在显示
|
// viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineV.setVisibility(View.VISIBLE);
|
|
viewBinding.fragmentMeLineSetIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.set);
|
viewBinding.fragmentMeLineSetIl.fragmentMeLineTitleIv.setText(R.string.me_set);
|
|
viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.asregards);
|
viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineTitleIv.setText(R.string.me_regard);
|
// viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineV.setVisibility(View.VISIBLE);
|
|
|
setMemberName(UserConfigManage.getInstance().getUserName());
|
setMemberAccount(UserConfigManage.getInstance().getAccount());
|
// 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)) {
|
viewBinding.fragmentMeUserNameTv.setVisibility(View.GONE);
|
viewBinding.fragmentMeUserNameNextIv.setVisibility(View.GONE);
|
} else {
|
viewBinding.fragmentMeUserNameTv.setVisibility(View.VISIBLE);
|
viewBinding.fragmentMeUserNameNextIv.setVisibility(View.VISIBLE);
|
viewBinding.fragmentMeUserNameTv.setText(userName);
|
}
|
|
|
}
|
|
/**
|
* 显示账号
|
*/
|
private void setMemberAccount(String userAccount) {
|
if (viewBinding.fragmentMeUserNameTv.getVisibility() == View.VISIBLE) {
|
viewBinding.fragmentMeUserRoleNextIv.setVisibility(View.GONE);
|
} else {
|
viewBinding.fragmentMeUserRoleNextIv.setVisibility(View.VISIBLE);
|
}
|
|
if (TextUtils.isEmpty(userAccount)) {
|
userAccount = "--";
|
}
|
viewBinding.fragmentMeUserRoleTv.setText(userAccount);
|
|
}
|
|
|
@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();
|
}
|
getUserRightType();
|
|
}
|
|
}
|
|
}
|
|
/**
|
* 员工权限类型(B端)
|
* MANAGER : 公司管理员
|
* USER : 普通员工
|
*/
|
private void getUserRightType() {
|
HdlMemberLogic.getInstance().getUserRightType(new CloudCallBeak<UserRightTypeBean>() {
|
@Override
|
public void onSuccess(UserRightTypeBean obj) {
|
if (obj.getUserRightType().equals(UserRightType.MANAGER)) {
|
viewBinding.fragmentMeLineUserManagementIl.getRoot().setVisibility(View.VISIBLE);
|
} else {
|
viewBinding.fragmentMeLineUserManagementIl.getRoot().setVisibility(View.GONE);
|
}
|
}
|
|
@Override
|
public void onFailure(HDLException e) {
|
|
}
|
});
|
}
|
|
/**
|
* 获取用户自定义配置温度单位详情(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);
|
}
|
});
|
}
|
}
|