mac
2023-10-30 a8e0bddc9903d854808e9526600128e95560faa3
2023年10月30日18:21:12

备份一下代码
4个文件已添加
14个文件已修改
628 ■■■■■ 已修改文件
app/src/main/AndroidManifest.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/account/RegisterAccountActivity.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/test/TestTitleAdapter.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/utils/GlideUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_home_login.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_test_main.xml 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_me_line.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_message.xml 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/test_item.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/colors.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/strings.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/AndroidManifest.xml
@@ -77,6 +77,9 @@
        android:supportsRtl="true"
        android:theme="@style/Theme.PhotovoltaicDebug">
        <activity
            android:name=".ui.test.TestMainActivity"
            android:exported="false" />
        <activity
            android:name=".ui.me.MeChangePasswordActivity"
            android:exported="false" />
        <activity
app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -79,6 +79,26 @@
    }
    /**
     * 获取当前住宅的【主】逆变器列表
     */
    public GatewayBean getCurrentHomeMainGateway() {
        List<GatewayBean> list = HDLLinkLocalGateway.getInstance().getGatewayList();
        if (list.size() > 0) {
            for (int i = 0; i < list.size(); i++) {
                GatewayBean gatewayBean = list.get(i);
                if (TextUtils.isEmpty(gatewayBean.getDevice_mac())) {
                    continue;
                }
                if (gatewayBean.getMaster().equals(GatewayMasterType.MasterTrue) && gatewayBean.getHomeId().equals(UserConfigManage.getInstance().getHomeId())) {
                    //找到返回
                    return gatewayBean;
                }
            }
        }
        return null;
    }
    /**
     * 逆变器上传数据到云端(包括:sid,oid)
     *
     * @param mac 设备mac
app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java
@@ -51,7 +51,7 @@
     * @param context       上下文(不需要弹框填null)
     * @param showErrorMode 是否显示错误(不需要填null)
     */
    public static void runThread(Runnable runnable, Context context, ShowErrorMode showErrorMode) {
    public static void runSubThread(Runnable runnable, Context context, ShowErrorMode showErrorMode) {
        new Thread(new Runnable() {
            @Override
app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
@@ -115,9 +115,9 @@
    private void bottomViewChangeOfStyle() {
        if (this.currentFragmentIndex == 1) {
            viewBinding.myPowerStationFcv1.setVisibility(View.VISIBLE);
            viewBinding.myMessageFcv2.setVisibility(View.GONE);
            viewBinding.myMeFcv3.setVisibility(View.GONE);
            viewBinding.myPowerStationFcv1.setVisibility(View.VISIBLE);//显示电站界面
            viewBinding.myMessageFcv2.setVisibility(View.GONE);//隐藏消息界面
            viewBinding.myMeFcv3.setVisibility(View.GONE);//隐藏我的界面
            viewBinding.myPowerStationBottomIl1.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.selectedpowerstation));
            viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_90000000));
            viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_unselected));
@@ -125,9 +125,9 @@
            viewBinding.myMeBottomIl3.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.unselectedme));
            viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_65000000));
        } else if (this.currentFragmentIndex == 2) {
            viewBinding.myPowerStationFcv1.setVisibility(View.GONE);
            viewBinding.myMessageFcv2.setVisibility(View.VISIBLE);
            viewBinding.myMeFcv3.setVisibility(View.GONE);
            viewBinding.myPowerStationFcv1.setVisibility(View.GONE);//隐藏电站界面
            viewBinding.myMessageFcv2.setVisibility(View.VISIBLE);//显示消息界面
            viewBinding.myMeFcv3.setVisibility(View.GONE);//隐藏我的界面
            viewBinding.myPowerStationBottomIl1.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.unselectedpowerstation));
            viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_select));
@@ -135,9 +135,9 @@
            viewBinding.myMeBottomIl3.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.unselectedme));
            viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_65000000));
        } else if (this.currentFragmentIndex == 3) {
            viewBinding.myPowerStationFcv1.setVisibility(View.GONE);
            viewBinding.myMessageFcv2.setVisibility(View.GONE);
            viewBinding.myMeFcv3.setVisibility(View.VISIBLE);
            viewBinding.myPowerStationFcv1.setVisibility(View.GONE);//隐藏电站界面
            viewBinding.myMessageFcv2.setVisibility(View.GONE);//隐藏消息界面
            viewBinding.myMeFcv3.setVisibility(View.VISIBLE);//显示我的界面
            viewBinding.myPowerStationBottomIl1.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.unselectedpowerstation));
            viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_unselected));
app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
@@ -24,6 +24,7 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        //7天内免登录
        if (UserConfigManage.getInstance().isAutoLogin()) {
//            showLoading();
            HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() {
app/src/main/java/com/hdl/photovoltaic/ui/account/RegisterAccountActivity.java
@@ -317,7 +317,7 @@
            long time = (millisUntilFinished / 1000);
            String str = time + "s" + getString(R.string.home_login_psw_verification_repeater);
            viewBinding.registerPhoneVerificationTv.setText(str);
            viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000));
            viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000,null));
            viewBinding.registerPhoneVerificationTv.setEnabled(false);
        }
@@ -325,7 +325,7 @@
        @Override
        public void onFinish() {
            viewBinding.registerPhoneVerificationTv.setText(getString(R.string.home_login_verification_regain));
            viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3));
            viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3,null));
            viewBinding.registerPhoneVerificationTv.setEnabled(true);
@@ -341,7 +341,7 @@
            String str = time + "s" + getString(R.string.home_login_psw_verification_repeater);
            viewBinding.registerMailVerificationTv.setText(str);
            viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000));
            viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000,null));
            viewBinding.registerMailVerificationTv.setEnabled(false);
        }
@@ -349,7 +349,7 @@
        @Override
        public void onFinish() {
            viewBinding.registerMailVerificationTv.setText(getString(R.string.home_login_verification_regain));
            viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3));
            viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3,null));
            viewBinding.registerMailVerificationTv.setEnabled(true);
        }
@@ -363,12 +363,12 @@
            //手机号
            viewBinding.registerPhoneTitleIc.accountTitleTv.setText(R.string.home_login_phone);
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextSize(20);
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000));
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000,null));
            viewBinding.registerPhoneTitleIc.lineV.setVisibility(View.VISIBLE);
            viewBinding.registerMailTitleIc.accountTitleTv.setText(R.string.home_login_email);
            viewBinding.registerMailTitleIc.accountTitleTv.setTextSize(16);
            viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000));
            viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000,null));
            viewBinding.registerMailTitleIc.lineV.setVisibility(View.GONE);
            //输入手机号
@@ -393,12 +393,12 @@
            //邮箱
            viewBinding.registerPhoneTitleIc.accountTitleTv.setText(R.string.home_login_phone);
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextSize(16);
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000));
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000,null));
            viewBinding.registerPhoneTitleIc.lineV.setVisibility(View.GONE);
            viewBinding.registerMailTitleIc.accountTitleTv.setText(R.string.home_login_email);
            viewBinding.registerMailTitleIc.accountTitleTv.setTextSize(20);
            viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000));
            viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000,null));
            viewBinding.registerMailTitleIc.lineV.setVisibility(View.VISIBLE);
            //输入邮箱
            viewBinding.registerAccountEt.setInputType(InputType.TYPE_CLASS_TEXT);
app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java
@@ -16,6 +16,7 @@
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;
/**
@@ -126,6 +127,13 @@
                startActivity(intent);
            }
        });
        viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineCl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(TestMainActivity.class);
            }
        });
    }
    /**
app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
@@ -1,8 +1,10 @@
package com.hdl.photovoltaic.ui.message;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseFragment;
import com.hdl.photovoltaic.databinding.FragmentMessageBinding;
@@ -21,20 +23,66 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        //初始化数据
        initData();
        //初始化界面
        initView();
        //初始化监听器
        initEvent();
        //初始化数据
        initData();
    }
    private void initEvent() {
        viewBinding.messageTabDeviceAlertCl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewBinding.messageTabDeviceAlertTitleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null));
                viewBinding.messageTabPlatformPushTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null));
                viewBinding.messageTabDeviceLogTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null));
                viewBinding.line1V.setVisibility(View.VISIBLE);
                viewBinding.line2V.setVisibility(View.GONE);
                viewBinding.line3V.setVisibility(View.GONE);
            }
        });
        viewBinding.messageTabPlatformPushCl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewBinding.messageTabDeviceAlertTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null));
                viewBinding.messageTabPlatformPushTitleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null));
                viewBinding.messageTabDeviceLogTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null));
                viewBinding.line1V.setVisibility(View.GONE);
                viewBinding.line2V.setVisibility(View.VISIBLE);
                viewBinding.line3V.setVisibility(View.GONE);
            }
        });
        viewBinding.messageTabDeviceLogCl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewBinding.messageTabDeviceAlertTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null));
                viewBinding.messageTabPlatformPushTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null));
                viewBinding.messageTabDeviceLogTitleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null));
                viewBinding.line1V.setVisibility(View.GONE);
                viewBinding.line2V.setVisibility(View.GONE);
                viewBinding.line3V.setVisibility(View.VISIBLE);
            }
        });
    }
    private void initView() {
        viewBinding.messageTabDeviceAlertTitleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null));
        viewBinding.messageTabPlatformPushTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null));
        viewBinding.messageTabDeviceLogTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null));
        viewBinding.line1V.setVisibility(View.VISIBLE);
        viewBinding.line2V.setVisibility(View.GONE);
        viewBinding.line3V.setVisibility(View.GONE);
    }
    private void initData() {
    }
}
app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java
New file
@@ -0,0 +1,224 @@
package com.hdl.photovoltaic.ui.test;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import com.google.gson.Gson;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityTestMainBinding;
import com.hdl.photovoltaic.enums.ShowErrorMode;
import com.hdl.photovoltaic.listener.LinkCallBack;
import com.hdl.photovoltaic.other.HdlDeviceLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.ui.bean.OidBean;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import com.hdl.photovoltaic.widget.ConfirmationExceptionDialog;
import com.hdl.sdk.link.common.exception.HDLLinkException;
import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
import com.hdl.sdk.link.core.callback.GatewayCallBack;
import java.util.ArrayList;
import java.util.List;
/**
 * 测试网关数据主入口界面
 */
public class TestMainActivity extends CustomBaseActivity implements View.OnClickListener {
    private ActivityTestMainBinding viewBinding;
    private TestTitleAdapter testTitleAdapter;
    @Override
    public Object getContentView() {
        viewBinding = ActivityTestMainBinding.inflate(getLayoutInflater());
        return viewBinding.getRoot();
    }
    @Override
    public void onBindView(Bundle savedInstanceState) {
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        testTitleAdapter = new TestTitleAdapter(getTitleList());
        viewBinding.listItemRl.setLayoutManager(linearLayoutManager);
        viewBinding.listItemRl.setAdapter(testTitleAdapter);
        initView();
        initEvent();
    }
    /**
     * 初始化
     */
    private void initView() {
        viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null));
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText("逆变器指令测试");
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null));
        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE);
    }
    private void initEvent() {
        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(this);
        testTitleAdapter.setItemOnClickListener(new TestTitleAdapter.OnClickListener() {
            @Override
            public void OnClick(int position) {
                if (TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {
                    // TODO: 10/30/23 请先选择住宅进行测试,否则无法进行逆变器指令测试;
                    TipDialog("请先选择住宅进行测试,否则无法进行逆变器指令测试.");
                    return;
                }
                GatewayBean gatewayBean = HdlDeviceLogic.getInstance().getCurrentHomeMainGateway();
                if (gatewayBean == null) {
                    // TODO: 10/30/23 找不到住宅的主逆变器,请先确认是否绑定逆变器,再进行逆变器指令测试;
                    TipDialog("找不到住宅的主逆变器,请先确认是否绑定过逆变器,再进行逆变器指令测试.");
                    return;
                }
                showLoading();
                startRequest(position, gatewayBean);
            }
        });
    }
    @Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.getId()) {
            finish();
        }
    }
    /**
     * 自定义的标题
     *
     * @return -
     */
    private List<String> getTitleList() {
        List<String> s = new ArrayList<>();
        s.add("搜索逆变器列表");
        s.add("获取逆变器oid列表");
        s.add("读取逆变器详情");
        return s;
    }
    /**
     * 请求指令
     *
     * @param position 索引值
     */
    private void startRequest(int position, GatewayBean gatewayBean) {
        String title = getTitleList().get(position);
        switch (title) {
            case "搜索逆变器列表": {
                HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() {
                    @Override
                    public void onSuccess(List<GatewayBean> gatewayBeanList) {
                        gsonConvertJsonStr(gatewayBeanList);
                    }
                    @Override
                    public void onError(HDLLinkException e) {
                        setError(e);
                    }
                });
            }
            break;
            case "获取逆变器oid列表": {
                HdlDeviceLogic.getInstance().getInverterOidList(gatewayBean.getDevice_mac(), new LinkCallBack<List<OidBean>>() {
                    @Override
                    public void onSuccess(List<OidBean> obj) {
                        gsonConvertJsonStr(obj);
                    }
                    @Override
                    public void onError(HDLLinkException e) {
                        setError(e);
                    }
                });
            }
            break;
            case "读取逆变器详情": {
                HdlDeviceLogic.getInstance().getGatewayInfo(gatewayBean.getDevice_mac(), new LinkCallBack<GatewayBean>() {
                    @Override
                    public void onSuccess(GatewayBean obj) {
                        gsonConvertJsonStr(obj);
                    }
                    @Override
                    public void onError(HDLLinkException e) {
                        setError(e);
                    }
                });
            }
            break;
        }
    }
    private void setError(HDLLinkException hdlLinkException) {
        String error = hdlLinkException.getMsg() + "(" + hdlLinkException.getCode() + ")";
        showText(error);
    }
    private void gsonConvertJsonStr(Object src) {
        Gson gson = new Gson();
        String json = gson.toJson(src);
        showText(json);
    }
    /**
     * 回复的数据
     *
     * @param s 数据
     */
    private void showText(String s) {
        HdlThreadLogic.runMainThread(new Runnable() {
            @Override
            public void run() {
                hideLoading();
                String s1 = "数据回复:\r\n" + s;
                viewBinding.replyContentTv.setText(s1);
            }
        }, this, ShowErrorMode.YES);
    }
    /**
     * @param s 错误信息
     */
    private void TipDialog(String s) {
        ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(this);
        confirmationCancelDialog.setTitle("提示");
        confirmationCancelDialog.setContent(s);
        confirmationCancelDialog.setConfirmation("确认");
        confirmationCancelDialog.setCancel("取消");
        confirmationCancelDialog.show();
        confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
            @Override
            public void Cancel() {
                confirmationCancelDialog.dismiss();
            }
        });
        confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
            @Override
            public void Confirm() {
                confirmationCancelDialog.dismiss();
            }
        });
    }
}
app/src/main/java/com/hdl/photovoltaic/ui/test/TestTitleAdapter.java
New file
@@ -0,0 +1,69 @@
package com.hdl.photovoltaic.ui.test;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.hdl.photovoltaic.R;
import java.util.List;
public class TestTitleAdapter extends RecyclerView.Adapter<TestTitleAdapter.TestItem> {
    private OnClickListener mOnClickListener;
    private List<String> mList;
    public TestTitleAdapter(List<String> list) {
        this.mList = list;
    }
    public void setItemOnClickListener(OnClickListener onClickListener) {
        mOnClickListener = onClickListener;
    }
    @NonNull
    @Override
    public TestItem onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.test_item, parent, false);
        return new TestItem(view);
    }
    @Override
    public void onBindViewHolder(@NonNull TestItem holder, int position) {
        String item = mList.get(position);
        holder.textView.setText(item);
        holder.textView.setTag(position);//设置索引值
        holder.textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mOnClickListener != null) {
                    mOnClickListener.OnClick((int) holder.textView.getTag());
                }
            }
        });
    }
    @Override
    public int getItemCount() {
        return mList.size();
    }
    static class TestItem extends RecyclerView.ViewHolder {
        public TextView textView;
        public TestItem(@NonNull View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.test_title_tv);
        }
    }
    public interface OnClickListener {
        void OnClick(int position);
    }
}
app/src/main/java/com/hdl/photovoltaic/utils/GlideUtils.java
@@ -112,7 +112,7 @@
     */
    public static void getImage(String path, ImageView imageView, int pixels) {
        HdlThreadLogic.runThread(new Runnable() {
        HdlThreadLogic.runSubThread(new Runnable() {
            @Override
            public void run() {
                try {
app/src/main/res/layout/activity_home_login.xml
@@ -5,6 +5,7 @@
    android:id="@+id/home_login_parent_cl"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/text_FFFFFFFF"
    tools:context="com.hdl.photovoltaic.ui.HomeLoginActivity">
    <ImageView
app/src/main/res/layout/activity_test_main.xml
New file
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ui.test.TestMainActivity">
    <include
        android:id="@+id/toolbar_top_fragment_house_list_rl"
        layout="@layout/toolbar_top_view_52" />
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/list_item_rl"
        android:layout_width="@dimen/dp_100"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/toolbar_top_fragment_house_list_rl" />
    <View
        android:id="@+id/lien"
        android:layout_width="0.5dp"
        android:layout_height="0dp"
        android:background="@color/text_245EC3"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/list_item_rl"
        app:layout_constraintTop_toBottomOf="@+id/toolbar_top_fragment_house_list_rl" />
    <ScrollView
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/lien"
        app:layout_constraintTop_toBottomOf="@+id/toolbar_top_fragment_house_list_rl">
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/reply_content_tv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="@dimen/dp_10"
                android:textColor="@color/text_030D1C"
                android:textSize="@dimen/text_15" />
        </FrameLayout>
    </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
app/src/main/res/layout/fragment_me_line.xml
@@ -6,6 +6,7 @@
    android:background="@color/text_F9FAFB">
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/fragment_me_line_cl"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginStart="@dimen/dp_20"
app/src/main/res/layout/fragment_message.xml
@@ -1,9 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<!--    <include-->
<!--        android:id="@+id/toolbar_top_fragment_me_rl"-->
<!--        layout="@layout/toolbar_top_view_52" />-->
    android:layout_height="match_parent"
    android:background="@color/text_F5F7FA">
    <RelativeLayout
        android:id="@+id/message_rl"
        android:layout_width="match_parent"
        android:layout_height="@dimen/dp_52"
        android:background="@color/text_245EC3"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">
        <LinearLayout
            android:id="@+id/message_tab_ll"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginStart="@dimen/dp_17"
            android:layout_marginEnd="@dimen/dp_16"
            android:orientation="horizontal">
            <!--设备警报-->
            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/message_tab_device_alert_cl"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1">
                <TextView
                    android:id="@+id/message_tab_device_alert_title_tv"
                    android:layout_width="wrap_content"
                    android:layout_height="@dimen/dp_23"
                    android:layout_marginTop="@dimen/dp_16"
                    android:gravity="center"
                    android:text="@string/message_device_alert"
                    android:textColor="@color/text_FFFFFFFF"
                    android:textSize="@dimen/text_16"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />
                <View
                    android:id="@+id/line1_v"
                    android:layout_width="0dp"
                    android:layout_height="3dp"
                    android:layout_marginTop="@dimen/dp_11"
                    android:background="@color/text_FFFFFFFF"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="@+id/message_tab_device_alert_title_tv"
                    app:layout_constraintStart_toStartOf="@+id/message_tab_device_alert_title_tv" />
            </androidx.constraintlayout.widget.ConstraintLayout>
            <!--平台推送-->
            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/message_tab_platform_push_cl"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1">
                <TextView
                    android:id="@+id/message_tab_platform_push_title_tv"
                    android:layout_width="wrap_content"
                    android:layout_height="@dimen/dp_23"
                    android:layout_marginTop="@dimen/dp_16"
                    android:gravity="center"
                    android:text="@string/message_platform_push"
                    android:textColor="@color/text_FFFFFFFF"
                    android:textSize="@dimen/text_16"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />
                <View
                    android:id="@+id/line2_v"
                    android:layout_width="0dp"
                    android:layout_height="3dp"
                    android:layout_marginTop="@dimen/dp_11"
                    android:background="@color/text_FFFFFFFF"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="@+id/message_tab_platform_push_title_tv"
                    app:layout_constraintStart_toStartOf="@+id/message_tab_platform_push_title_tv" />
            </androidx.constraintlayout.widget.ConstraintLayout>
            <!--设备日志-->
            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/message_tab_device_log_cl"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1">
                <TextView
                    android:id="@+id/message_tab_device_log_title_tv"
                    android:layout_width="wrap_content"
                    android:layout_height="@dimen/dp_23"
                    android:layout_marginTop="@dimen/dp_16"
                    android:gravity="center"
                    android:text="@string/message_device_log"
                    android:textColor="@color/text_FFFFFFFF"
                    android:textSize="@dimen/text_16"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />
                <View
                    android:id="@+id/line3_v"
                    android:layout_width="0dp"
                    android:layout_height="3dp"
                    android:layout_marginTop="@dimen/dp_11"
                    android:background="@color/text_FFFFFFFF"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="@+id/message_tab_device_log_title_tv"
                    app:layout_constraintStart_toStartOf="@+id/message_tab_device_log_title_tv" />
            </androidx.constraintlayout.widget.ConstraintLayout>
        </LinearLayout>
    </RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
app/src/main/res/layout/test_item.xml
New file
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="@dimen/dp_60">
    <TextView
        android:id="@+id/test_title_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/text_030D1C"
        android:textSize="@dimen/text_18"
        android:gravity="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <View
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="@color/text_245EC3"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
app/src/main/res/values/colors.xml
@@ -23,6 +23,7 @@
    <color name="text_E1E1E1">#E1E1E1</color>
    <color name="text_94B6E7">#94B6E7</color>
    <color name="text_FFFFFFFF">#FFFFFFFF</color>
    <color name="text80_FFFFFF">#80FFFFFF</color>
    <color name="text_D34545">#D34545</color>
    <color name="text_FFB300">#FFB300</color>
    <color name="text_B9B9B9">#B9B9B9</color>
app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
<resources>
<!--    <string name="app_name">PhotovoltaicDebug</string>-->
    <!--    <string name="app_name">PhotovoltaicDebug</string>-->
    <string name="app_name">智慧能源</string>
    <string name="title_activity_home_login">HomeLoginActivity</string>
    <!-- Strings used for fragments for navigation -->
@@ -63,7 +63,6 @@
    <string name="home_login_change_name_succeed">修改备注成功.</string>
    <!--我的电站-->
    <string name="power_station">电站</string>
    <string name="power_station_me">我的</string>
@@ -83,6 +82,9 @@
    <!--消息-->
    <string name="message">消息</string>
    <string name="message_device_alert">设备警报</string>
    <string name="message_platform_push">平台推送</string>
    <string name="message_device_log">设备日志</string>
    <!--我的-->
    <string name="me">我的</string>
@@ -102,7 +104,6 @@
    <string name="set_logout">退出登录</string>
    <string name="set_privacy">隐私设置</string>
    <string name="set_nickname_modification">昵称修改</string>
    <!--uin-->