hxb
2024-04-11 1078968985ae81e79ea149e3251841cd9bd54a1e
Merge branch 'wxw_new' into dev-hxb
2个文件已添加
13个文件已修改
244 ■■■■ 已修改文件
app/build.gradle 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/AndroidManifest.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/HDLApp.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/uni/MySplashView.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/anim/dcloud_unimp_close_exit.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/anim/dcloud_unimp_host_close_exit.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/anim/dcloud_unimp_host_open_enter.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/anim/dcloud_unimp_open_enter.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_splash.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/styles.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/themes.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
build.gradle 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/build.gradle
@@ -28,14 +28,14 @@
    defaultConfig {
        applicationId "com.hdl.photovoltaic"
        minSdk 23
        targetSdk 30
        targetSdk 28
        versionCode 1
        versionName "1.3.2"//版本规则1.3是产品功能迭代用的,最后一位0是我们修复bug用的
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
        manifestPlaceholders = mfph
        ndk {
            abiFilters 'x86', 'armeabi-v7a', "arm64-v8a" //不支持armeabi
            abiFilters 'armeabi-v7a', "arm64-v8a" //不支持armeabi
        }
        manifestPlaceholders = [
@@ -62,6 +62,10 @@
        ]
    }
    // 保证其他的lib没有被preDex
    dexOptions {
        preDexLibraries = false
    }
    repositories {
        flatDir {
            dirs 'libs'
app/src/main/AndroidManifest.xml
@@ -144,6 +144,7 @@
            android:exported="false" />
        <activity
            android:name=".ui.MyPowerStationActivity"
            android:theme="@style/DCloudMPHostActivityTheme"
            android:exported="false" />
        <activity
            android:name=".ui.HomeLoginActivity"
app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -1,9 +1,12 @@
package com.hdl.photovoltaic;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import androidx.multidex.MultiDex;
import com.hdl.hdlhttp.HxHttpConfig;
import com.hdl.linkpm.sdk.HDLLinkPMSdk;
@@ -311,4 +314,10 @@
            HdlLogLogic.print("测试Mqtt连接服务端失败--->");
        }
    }
    @Override
    protected void attachBaseContext(Context base) {
        MultiDex.install(base);
        super.attachBaseContext(base);
    }
}
app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
@@ -5,7 +5,10 @@
import android.os.Process;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.Nullable;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@@ -74,7 +77,7 @@
        setNotificationBarBackgroundColor(CustomColor.white);
        setStatusBarTextColor();
        //C端启动App自动打开小程序电站详情界面
        startAppAutomaticallyOpenUni();
//        startAppAutomaticallyOpenUni();
        //注册监听
        this.registerAllTopicsListener();
        //初始化mqtt客户端
@@ -84,10 +87,37 @@
    }
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTheme(R.style.NoAnimationTheme);
    }
    @Override
    protected void onResume() {
        super.onResume();
        //启动页与mainActivity样式一样,这样启动页和mainActivity看上去是一个界面,目的是为了mainActivity遮住下一页;
        AppManagerUtils.getAppManager().finishActivity(StartActivity.class);
//        AppManagerUtils.getAppManager().finishActivity(StartActivity.class);
        this.portConflictDialog();
       startAppAutomaticallyOpenUni();
    }
    public void startAppAutomaticallyOpenUni() {
        //低于安卓14版本
        if (android.os.Build.VERSION.SDK_INT < 34) {
            startAppAutomaticallyOpenUni(false);
        } else {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    SystemClock.sleep(10);
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            startAppAutomaticallyOpenUni(true);
                        }
                    });
                }
            }).start();
        }
    }
    @Subscribe(threadMode = ThreadMode.MAIN)
@@ -175,11 +205,15 @@
        }
    }
    /**
     * C端启动App自动打开小程序电站详情界面
     */
    private void startAppAutomaticallyOpenUni() {
    private void startAppAutomaticallyOpenUni(boolean delay) {
        if(delay) {
            SystemClock.sleep(2000);
        }
        List<HouseIdBean> HouseIdList = HdlResidenceLogic.getInstance().getHouseIdList();
        if (HouseIdList.size() == 0) {
            String path = HDLUniMP.UNI_EVENT_OPEN_HOME_Null_C;
@@ -197,8 +231,6 @@
            String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS_C + "?homeId=" + houseIdBean.getHomeId() + "&homeName=" + houseIdBean.getHomeName() + "&powerStationStatus=" + houseIdBean.getPowerStationStatus();
            HdlUniLogic.getInstance().openUniMP(path, null);
        }
    }
//    /**
@@ -396,4 +428,4 @@
    }
}
}
app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
@@ -3,7 +3,10 @@
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.os.SystemClock;
import android.util.Log;
import androidx.annotation.Nullable;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
@@ -12,10 +15,12 @@
import com.hdl.photovoltaic.config.AppConfigManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlResidenceLogic;
import com.hdl.photovoltaic.other.HdlUniLogic;
import com.hdl.photovoltaic.ui.bean.HouseIdBean;
import com.hdl.photovoltaic.uni.HDLUniMP;
import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
import java.util.List;
@@ -53,8 +58,7 @@
                        intent.setClass(StartActivity.this, CPowerStationActivity.class);
                    }
                    startActivity(intent);
//                    finish();
                    openActivity(intent);
                }
                @Override
@@ -68,20 +72,32 @@
                        //C端用户跳转界面
                        intent.setClass(StartActivity.this, CPowerStationActivity.class);
                    }
                    startActivity(intent);
//                    finish();
                    openActivity(intent);
                }
            });
        } else {
            Intent intent = new Intent();
            intent.setClass(this, HomeLoginActivity.class);
            startActivity(intent);
            finish();
            openActivity(intent);
        }
    }
    void openActivity(Intent intent) {
        intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
        startActivity(intent);
        finish();
    }
}
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTheme(R.style.NoAnimationTheme);
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        overridePendingTransition(0, 0);
    }
}
app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
@@ -3,6 +3,7 @@
import android.app.Application;
import android.content.Context;
import android.os.Environment;
import android.os.SystemClock;
import android.text.TextUtils;
@@ -279,14 +280,22 @@
                UniMPOpenConfiguration uniMPOpenConfiguration = new UniMPOpenConfiguration();
                uniMPOpenConfiguration.path = path;
                uniMPOpenConfiguration.extraData = jsonObject;
                uniMPOpenConfiguration.splashClass=MySplashView.class;
                uniMP = DCUniMPSDK.getInstance().openUniMP(mContext, uniAppId, uniMPOpenConfiguration);
            }
            //android14有些设备有问题,需要等待
            if (android.os.Build.VERSION.SDK_INT >= 34) {
                if (TextUtils.isEmpty(mCurrentAppId)) {
                    //第一次用要休眠
                    SystemClock.sleep(1000);
                }
            }
            mCurrentAppId = uniAppId;//记录当前小程序
            mUniMPCaches.put(uniMP.getAppid(), uniMP);
        } catch (Exception e) {
            e.printStackTrace();
            HdlThreadLogic.toast(HDLApp.getInstance(), R.string.uni_open_error);
            initDCUniMPSDK(HDLApp.getInstance());
//            initDCUniMPSDK(HDLApp.getInstance());
            HdlLogLogic.print("打开失败===" + e.getMessage());
        }
    }
app/src/main/java/com/hdl/photovoltaic/uni/MySplashView.java
New file
@@ -0,0 +1,35 @@
package com.hdl.photovoltaic.uni;
import android.content.Context;
import android.graphics.Color;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.ui.CPowerStationActivity;
import io.dcloud.feature.sdk.Interface.IDCUniMPAppSplashView;
public class MySplashView implements IDCUniMPAppSplashView {
    View splashView;
    @Override
    public View getSplashView(Context context, String appid, String s1, String s2) {
        // 在Activity中,可以直接使用this获取LayoutInflater
        LayoutInflater inflater = LayoutInflater.from(context);
        // 通过inflate方法将布局文件转换为View对象
        splashView = inflater.inflate(R.layout.activity_splash, null);
        return splashView;
    }
    @Override
    public void onCloseSplash(ViewGroup rootView) {
        if (rootView != null)
            rootView.removeView(splashView);
    }
}
app/src/main/res/anim/dcloud_unimp_close_exit.xml
@@ -1,17 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:duration="300"
        android:fromAlpha="1.0"
        android:toAlpha="0" />
<!--    <translate-->
<!--        android:fromXDelta="0"-->
<!--        android:toXDelta="100%p"-->
<!--        android:duration="300"-->
<!--        android:interpolator="@android:anim/accelerate_interpolator"-->
<!--        />-->
</set>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromXDelta="0%p"
    android:toXDelta="0%p" />
app/src/main/res/anim/dcloud_unimp_host_close_exit.xml
@@ -1,14 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromXDelta="0%p"
    android:toXDelta="0%p" />
        android:duration="300"
        android:fromAlpha="1.0"
        android:toAlpha="0" />
<!--    <translate-->
<!--        android:fromXDelta="0"-->
<!--        android:toXDelta="100%p"-->
<!--        android:duration="300"-->
<!--        android:interpolator="@android:anim/accelerate_interpolator"-->
<!--        />-->
</set>
app/src/main/res/anim/dcloud_unimp_host_open_enter.xml
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:duration="300"
        android:fromAlpha="0"
        android:toAlpha="1.0" />
    <translate
        android:duration="300"
        android:fromXDelta="100%p"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toXDelta="0" />
</set>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromXDelta="0%p"
    android:toXDelta="0%p" />
app/src/main/res/anim/dcloud_unimp_open_enter.xml
@@ -1,15 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromXDelta="0%p"
    android:toXDelta="0%p" />
        android:duration="300"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
<!--    <translate-->
<!--        android:fromXDelta="0"-->
<!--        android:toXDelta="100%p"-->
<!--        android:duration="300"-->
<!--        android:interpolator="@android:anim/accelerate_interpolator"-->
<!--        />-->
</set>
app/src/main/res/layout/activity_splash.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:alpha="0.6"
    android:background="@color/text_FFFFFFFF">
</LinearLayout>
app/src/main/res/values/styles.xml
@@ -4,6 +4,8 @@
        <item name="android:background">@color/black_overlay</item>
        <item name="android:buttonBarStyle">?android:attr/buttonBarStyle</item>
    </style>
    <style name="NoAnimationTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowAnimationStyle">@null</item>
    </style>
</resources>
app/src/main/res/values/themes.xml
@@ -58,7 +58,7 @@
    </style>
    <style name="DCloudMPHostActivityTheme" parent="@style/Theme.AppCompat">
    <style name="DCloudMPHostActivityTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowAnimationStyle">@style/uniMPHostWindowAnimation</item>
    </style>
build.gradle
@@ -52,4 +52,17 @@
task clean(type: Delete) {
    delete rootProject.buildDir
}
// 保证dex_files文件中指定的文件都加载到Main Dex中
afterEvaluate {
    tasks.matching {
        it.name.startsWith('dex')
    }.each { dx ->
        if (dx.additionalParameters == null) {
            dx.additionalParameters = []
        }
        dx.additionalParameters += '--multi-dex'
        dx.additionalParameters += "--main-dex-list=$projectDir/dex_files".toString()
    }
}