wjc
2023-06-16 4d4413f9542242ad6c99f8321aae4af910bd8e90
备份一下代码
1个文件已添加
8个文件已修改
267 ■■■■ 已修改文件
.idea/misc.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlLogLogic.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/misc.xml
@@ -8,7 +8,7 @@
        <entry key="app/src/main/res/layout/activity_my_power_station.xml" value="0.10030395136778116" />
        <entry key="app/src/main/res/layout/fragment_house_list.xml" value="0.10030395136778116" />
        <entry key="app/src/main/res/layout/fragment_me.xml" value="0.10030395136778116" />
        <entry key="app/src/main/res/layout/loading_confirm_input.xml" value="0.10030395136778116" />
        <entry key="app/src/main/res/layout/loading_confirm_input.xml" value="0.1" />
        <entry key="app/src/main/res/layout/toolbar_top_view_52.xml" value="0.10030395136778116" />
      </map>
    </option>
app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
@@ -73,7 +73,7 @@
    }
    /**
     * 登录
     * 登录(B端账号)
     * 通过账号和密码
     *
     * @param account       手机或者邮箱
@@ -124,20 +124,20 @@
    }
    /**
     * 登录成功保存
     * 登录成功保存登录信息
     */
    private void saveUserData(LoginBean obj) {
        if (obj != null) {
            UserConfigManage.getInstance().setLogin(true);
            UserConfigManage.getInstance().setAcceiptPolicy(true);
            UserConfigManage.getInstance().setLoginDateTime(System.currentTimeMillis());
            UserConfigManage.getInstance().setUserId(obj.getUserId());
            UserConfigManage.getInstance().setAccount(obj.getAccount());
            UserConfigManage.getInstance().setToken(obj.getAccessToken());
            UserConfigManage.getInstance().setHeaderPrefix(obj.getHeaderPrefix());
            UserConfigManage.getInstance().setRefreshToken(obj.getRefreshToken());
            UserConfigManage.getInstance().setLogin(true);//是否登录
            UserConfigManage.getInstance().setAcceiptPolicy(true);//是否选择隐私政策
            UserConfigManage.getInstance().setLoginDateTime(System.currentTimeMillis());//登录时间
            UserConfigManage.getInstance().setUserId(obj.getUserId());//用户id
            UserConfigManage.getInstance().setAccount(obj.getAccount());//账号
            UserConfigManage.getInstance().setToken(obj.getAccessToken());//Token
            UserConfigManage.getInstance().setHeaderPrefix(obj.getHeaderPrefix());//认证请求头前缀(底层请求统一加)
            UserConfigManage.getInstance().setRefreshToken(obj.getRefreshToken());//刷新Token
            boolean isUserId = UserConfigManage.getInstance().getUserId().equals(obj.getUserId());
            UserConfigManage.getInstance().setTheSameLoginAccount(isUserId);
            UserConfigManage.getInstance().setTheSameLoginAccount(isUserId);//与上一个账号是否同一个
        }
    }
app/src/main/java/com/hdl/photovoltaic/other/HdlLogLogic.java
@@ -29,5 +29,8 @@
        Log.d(tag, mgs);
    }
    public static void print(String mgs) {
        System.out.println(mgs);
    }
}
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
New file
@@ -0,0 +1,122 @@
package com.hdl.photovoltaic.other;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.uni.HDLUniMP;
import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
import org.json.JSONObject;
import io.dcloud.feature.unimp.DCUniMPJSCallback;
/**
 * uni小程序的逻辑
 */
public class HdlUniLogic implements HDLUniMPSDKManager.IOnOtherUniMPEventCallBack {
    private static volatile HdlUniLogic sHdlUniLogic;
    /**
     * 获取当前对象
     *
     * @return HdlAccountLogic
     */
    public static synchronized HdlUniLogic getInstance() {
        if (sHdlUniLogic == null) {
            synchronized (HdlUniLogic.class) {
                if (sHdlUniLogic == null) {
                    sHdlUniLogic = new HdlUniLogic();
                }
            }
        }
        return sHdlUniLogic;
    }
    /**
     * 原生接收uni发来的数据
     *
     * @param appId    -uni小程序指定的appId
     * @param event    -uni小程序发来数据
     * @param data     JSONObject com.alibaba.fastjson解析处理
     * @param callback callback.invoke(JSONObject) 用com.alibaba.fastjson
     */
    @Override
    public void onOtherUniMPEventReceive(String appId, String event, Object data, DCUniMPJSCallback callback) {
        if (!HDLUniMP.UNI_APP_ID.equals(appId)) {
            return;
        }
        try {
            org.json.JSONObject jsonObject = null;
            if (data != null) {
                jsonObject = new org.json.JSONObject(data.toString());
            }
            if (HDLUniMP.UNI_EVENT_HOME_CREATION.equals(event)) {
                if (callback != null) {
                    callback.invoke(null);
                }
            }
            HdlLogLogic.print("uni===原生接收uni发来的数据", event + "\r\n" + data);
        } catch (Exception e) {
            HdlLogLogic.print("uni===原生接收uni发来的数据", e.getMessage());
        }
    }
    /**
     * 原生打开uni指定页面
     *
     * @param path       打开路径
     * @param jsonObject 附件数据(没有数据填null)
     */
    public void openUniMP(String path, JSONObject jsonObject) {
        JSONObject json = this.createdJsonDate(jsonObject);
        HDLUniMPSDKManager.getInstance().openUniMP(HDLUniMP.UNI_APP_ID, path, json, HdlUniLogic.this);
    }
    /**
     * 原生【主动】向小程序发送通知事件
     * 注意:需要提前小程序在运行才可成功
     *
     * @param topic 主题
     * @param body  附件数据(没有数据填null)
     */
    public void sendUni(String topic, String body) {
        try {
            HDLUniMP.UniCallBackBaseBean callBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
            callBackBaseBean.setTopic(topic);
            callBackBaseBean.setData(body);
            HDLUniMPSDKManager.getInstance().sendUniMPEvent(HDLUniMP.UNI_APP_ID, HDLUniMP.UNI_APP_ID, callBackBaseBean.getJSONObject());
        } catch (Exception e) {
            HdlLogLogic.print("uni===原生主动向小程序发送通知事件", e.getMessage());
        }
    }
    /**
     * 检测是否当前页面注册的callback,是的话则移除
     */
    public void checkRemoveOtherUniMPEventCallBack() {
        HDLUniMPSDKManager.getInstance().checkRemoveOtherUniMPEventCallBack(this);
    }
    /**
     * 组装uni发送数据格式
     *
     * @param data -附件数据(没有数据填null)
     * @return JSONObject
     */
    public JSONObject createdJsonDate(JSONObject data) {
        HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
        try {
            if (data == null) {
                data = new JSONObject();
            }
            data.put("token", UserConfigManage.getInstance().getToken());
            uniCallBackBaseBean.setData(data);
            return uniCallBackBaseBean.getJSONObject();
        } catch (Exception e) {
            HdlLogLogic.print("uni===组装uni发送数据格式", e.getMessage());
        }
        return new JSONObject();
    }
}
app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
@@ -306,5 +306,4 @@
        view.setText(spannable);
    }
}
app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
@@ -1,5 +1,6 @@
package com.hdl.photovoltaic.ui.powerstation;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.camera2.CameraManager;
@@ -15,10 +16,12 @@
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.FragmentHouseListBinding;
import com.hdl.photovoltaic.base.CustomBaseFragment;
import com.hdl.photovoltaic.databinding.LoadingConfirmInputBinding;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.other.HdlUniLogic;
import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter;
import com.hdl.photovoltaic.ui.bean.HouseListBean;
import com.hdl.photovoltaic.ui.device.FastScanActivity;
@@ -27,6 +30,7 @@
import com.hdl.photovoltaic.utils.PermissionUtils;
import com.hdl.photovoltaic.widget.ConfirmationInputDialog;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
@@ -60,52 +64,13 @@
    }
    private void initEvent() {
        viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                String path = "pages/powerStationDetail/index";
////                HDLUniMP.UNI_PATH_MILLIMETER;//原生通知小程序地址
//                HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
//                uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_HOME_DETAILS);
//                uniCallBackBaseBean.setPath(path);
//                JSONObject jsonObject = uniCallBackBaseBean.getJSONObject();
//
//                HDLUniMPSDKManager.getInstance().openUniMP(HDLUniMP.UNI_APP_ID, path, jsonObject, new HDLUniMPSDKManager.IOnOtherUniMPEventCallBack() {
//                    @Override
//                    public void onOtherUniMPEventReceive(String appid, String event, Object data, DCUniMPJSCallback callback) {
//
//                    }
//                });
//
//                HdlThreadLogic.runThread(new Runnable() {
//                    @Override
//                    public void run() {
//                        SystemClock.sleep(3000);
//                        HDLUniMPSDKManager.getInstance().sendUniMPEvent(HDLUniMP.UNI_APP_ID, "2342", "764574574");
//
//                    }
//                }, null, null);
//                String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.CAMERA});
//                if (ary.length > 0) {
//                    requestPermissions(ary, PermissionUtils.STATUS_SUCCESS);
//                } else {
//                    startActivity(FastScanActivity.class);
//                }
                ConfirmationInputDialog confirmationInputDialog = new ConfirmationInputDialog(_mActivity);
                confirmationInputDialog.show();
                confirmationInputDialog.setNoOnclickListener(new ConfirmationInputDialog.onNoOnclickListener() {
                    @Override
                    public void Cancel() {
                        confirmationInputDialog.dismiss();
                    }
                });
                // 打开小程序页面
                HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_HOME_CREATION, null);
            }
        });
        //设置下拉箭头颜色
@@ -143,6 +108,18 @@
    }
    /**
     * 申请权限
     */
    private void requestPermissions() {
        String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.CAMERA});
        if (ary.length > 0) {
            requestPermissions(ary, PermissionUtils.STATUS_SUCCESS);
        } else {
            startActivity(FastScanActivity.class);
        }
    }
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
@@ -156,4 +133,6 @@
        }
    }
}
app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
@@ -19,28 +19,31 @@
    public final static String UNI_EVENT_uniMPOnClose = "uni_MPOnClose";//自定义小程序关闭事件
    public final static String UNI_EVENT_GetAppParams = "uni_GetAppParams";//获取APP应用信息
    //【小程序】发送到【原生】 加前缀:uni_
    /*********住宅【电站】模块*********/
    public final static String UNI_EVENT_HOME_LIST = "list";//获取住宅【电站】列表
    public final static String UNI_EVENT_HOME_CREATION = "creation";//住宅【电站】创建
    public final static String UNI_EVENT_HOME_EDIT = "edit";//住宅【电站】编辑
    public final static String UNI_EVENT_HOME_DETAILS = "details";//住宅【电站】详情
    public final static String UNI_EVENT_Home_DEl = "del";//住宅【电站】删除
    /*********设备模块*********/
    public final static String UNI_EVENT_DEVICE_LIST = "list";//逆变器设备列表
    public final static String UNI_EVENT_DEVICE_CHILD_LIST = "child_list";//逆变器【下挂】设备列表
    public final static String UNI_EVENT_DEVICE_ADD = "add";//设备添加
    public final static String UNI_EVENT_DEVICE_DEL = "del";//设备删除
    public final static String UNI_EVENT_DEVICE_OID = "oid";//设备【包括下挂设备】oid列表
    //【原生】主动发送到【小程序】 加前缀:app_
    //【原生】打开【小程序】页面路径:open_
//    //【小程序】发送到【原生】 加前缀:uni_
//    /*********住宅【电站】模块*********/
//    public final static String UNI_EVENT_HOME_LIST = "list";//获取住宅【电站】列表
//    public final static String UNI_EVENT_HOME_CREATION = "creation";//住宅【电站】创建
//    public final static String UNI_EVENT_HOME_EDIT = "edit";//住宅【电站】编辑
//    public final static String UNI_EVENT_HOME_DETAILS = "details";//住宅【电站】详情
//    public final static String UNI_EVENT_Home_DEl = "del";//住宅【电站】删除
//    /*********设备模块*********/
//    public final static String UNI_EVENT_DEVICE_LIST = "list";//逆变器设备列表
//    public final static String UNI_EVENT_DEVICE_CHILD_LIST = "child_list";//逆变器【下挂】设备列表
//    public final static String UNI_EVENT_DEVICE_ADD = "add";//设备添加
//    public final static String UNI_EVENT_DEVICE_DEL = "del";//设备删除
//    public final static String UNI_EVENT_DEVICE_OID = "oid";//设备【包括下挂设备】oid列表
    //【原生】主动发送到【小程序】 加前缀:app_
    //【原生】打开【小程序】页面路径
    /*********住宅模块*********/
    public final static String UNI_EVENT_HOME_CREATION = "pages/powerStation/powerStationCreate";//住宅【电站】创建
    public final static String UNI_EVENT_HOME_EDIT = "pages/powerStation/powerStationEdit";//住宅【电站】编辑
    public final static String UNI_EVENT_HOME_DETAILS = "pages/powerStationDetail/index";//住宅【电站】详情
//    public final static String UNI_EVENT_Home_DEl = "del";//住宅【电站】删除
    /*********设备模块*********/
    //设备模块打开页面全路径
    /**
app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
@@ -262,12 +262,9 @@
            if (TextUtils.isEmpty(path)) {
                uniMP = DCUniMPSDK.getInstance().openUniMP(mContext, uniAppId);
            } else {
                UniMPOpenConfiguration uniMPOpenConfiguration = new UniMPOpenConfiguration();
                uniMPOpenConfiguration.path = path;
                uniMPOpenConfiguration.extraData = jsonObject;
                uniMP = DCUniMPSDK.getInstance().openUniMP(mContext, uniAppId, uniMPOpenConfiguration);
            }
            mCurrentAppId = uniAppId;//记录当前小程序
app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java
@@ -8,6 +8,7 @@
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.View;
import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.appcompat.content.res.AppCompatResources;
@@ -51,13 +52,20 @@
        KeyboardStateObserverUtils.getKeyboardStateObserver((Activity) mContext).setKeyboardVisibilityListener(new KeyboardStateObserverUtils.OnKeyboardVisibilityListener() {
            @Override
            public void onKeyboardShow(int h) {
                //Toast.makeText(MainActivity.this,"键盘弹出",Toast.LENGTH_SHORT).show();
                ConstraintSet cs = new ConstraintSet();
                cs.clone(viewBinding.loadingParentCl);
//                (viewBinding.loadingConfirmationRl.getTop()-dip2px(h))
                cs.connect(R.id.loading_confirmation_rl, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, px2dip(h));//
                //应用约束
                cs.applyTo(viewBinding.loadingParentCl);
//                FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) viewBinding.loadingParentCl.getLayoutParams();
//                lp.bottomMargin = px2dip(h);
//                viewBinding.loadingParentCl.setLayoutParams(lp);
            }
            @Override
@@ -225,7 +233,7 @@
    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     */
    public int dip2px(float dpValue) {
    private int dip2px(float dpValue) {
        if (mContext == null) {
            return 0;
        }
@@ -236,7 +244,7 @@
    /**
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
     */
    public int px2dip(float pxValue) {
    private int px2dip(float pxValue) {
        final float scale = mContext.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }