wjc
2025-05-07 b9cc7390e8e8ce64c41c26fb369c98ce669d660c
app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
@@ -3,21 +3,37 @@
import android.content.Intent;
import android.os.Bundle;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.config.AppConfigManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.listener.CloudCallBeak;
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.ui.me.WebActivity;
import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
import com.hdl.photovoltaic.utils.LocalManageUtil;
import com.hdl.photovoltaic.utils.SharedPreUtils;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import com.umeng.commonsdk.UMConfigure;
import java.util.List;
import cn.jpush.android.api.JPushInterface;
/**
 * App启动页(目的是为了让用户点击APP图标的时候有一个瞬间响应的交互体验。)
@@ -31,57 +47,224 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        setNotificationBarBackgroundColor(CustomColor.white);
        setStatusBarTextColor();
        //初始化服务器域名(用户注册所在服务器域名地址)
        AppConfigManage.setUserRegionUrl(HDLLinkPMUser.getInstance().getUserRegionUrl());
        //判断AccessToken是否null
        if (!TextUtils.isEmpty(HDLLinkPMUser.getInstance().getAccessToken())) {
//            showLoading();
            HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() {
        setStatusBarTranslucent();
        getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
        //发布审核小米应用市场要求APP第一次启动提前提示《用户协议》和《隐私政策》才允许上线
        final String key = "is_login";
        HDLUniMPSDKManager.isExistsActivity=false;
        boolean isLogin = SharedPreUtils.getBoolean(key);
        if (!isLogin) {
            ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(this);
            confirmationCancelDialog.setTitle(getString(R.string.user_agreement_and_privacy_agreement));
            confirmationCancelDialog.setContent(getString(R.string.thank_you_for_using));
            confirmationCancelDialog.setConfirmation(getString(R.string.agree));
            confirmationCancelDialog.setCancel(getString(R.string.loading_on_agree));
            confirmationCancelDialog.show();
            setStringDifferentColors(confirmationCancelDialog.getContentTextView());
            confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
                @Override
                public void onSuccess(List<HouseIdBean> obj) {
//                    hideLoading();
                    HdlResidenceLogic.getInstance().setHouseIdList(obj);
                    Intent intent = new Intent();
                    if (UserConfigManage.getInstance().isBAccount()) {
                        //安装商跳转界面
                        intent.setClass(StartActivity.this, MyPowerStationActivity.class);
                    } else {
                        //C端用户跳转界面
                        intent.setClass(StartActivity.this, CPowerStationActivity.class);
                    }
                    startActivity(intent);
//                    finish();
                }
                @Override
                public void onFailure(HDLException e) {
//                    hideLoading();
                    Intent intent = new Intent();
                    if (UserConfigManage.getInstance().isBAccount()) {
                        //安装商跳转界面
                        intent.setClass(StartActivity.this, MyPowerStationActivity.class);
                    } else {
                        //C端用户跳转界面
                        intent.setClass(StartActivity.this, CPowerStationActivity.class);
                    }
                    startActivity(intent);
//                    finish();
                public void Cancel() {
                    confirmationCancelDialog.dismiss();
                    SharedPreUtils.putBoolean(key, false);
                    finish();
                }
            });
            confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
                @Override
                public void Confirm() {
                    confirmationCancelDialog.dismiss();
                    initSdk();
                    SharedPreUtils.putBoolean(key, true);
                    Intent intent = new Intent();
                    intent.setClass(StartActivity.this, LoginActivity.class);
                    openActivity(intent);
                }
            });
        } else {
            Intent intent = new Intent();
            intent.setClass(this, HomeLoginActivity.class);
            startActivity(intent);
            finish();
        }
            initSdk();
            //初始化服务器域名(用户注册所在服务器域名地址)
            AppConfigManage.setUserRegionUrl(HDLLinkPMUser.getInstance().getUserRegionUrl());
            //判断AccessToken是否null
            if (!TextUtils.isEmpty(HDLLinkPMUser.getInstance().getAccessToken())) {
                if (UserConfigManage.getInstance().isBAccount()) {
                    //安装商跳转界面
                    Intent intent = new Intent();
                    intent.setClass(StartActivity.this, BPowerStationActivity.class);
                    openActivity(intent);
                } else {
                    //C端用户跳转界面
//                showLoading();
                    HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() {
                        @Override
                        public void onSuccess(List<HouseIdBean> obj) {
//                        hideLoading();
                            HdlResidenceLogic.getInstance().setHouseIdList(obj);
                            Intent intent = new Intent();
                            intent.setClass(StartActivity.this, CPowerStationActivity.class);
                            openActivity(intent);
                        }
                        @Override
                        public void onFailure(HDLException e) {
//                        hideLoading();
                            Intent intent = new Intent();
                            intent.setClass(StartActivity.this, CPowerStationActivity.class);
                            openActivity(intent);
                        }
                    });
                }
            } else {
                Intent intent = new Intent();
                intent.setClass(StartActivity.this, LoginActivity.class);
                openActivity(intent);
            }
        }
    }
    @Override
    public void startActivity(Intent intent) {
        super.startActivity(intent);
        overridePendingTransition(0, 0);
    }
}
    void openActivity(Intent intent) {
        intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
        startActivity(intent);
        finish();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        overridePendingTransition(0, 0);
    }
    /**
     * 设置一串字符多种颜色以及点击事件
     *
     * @param textView 当前组件
     */
    private void setStringDifferentColors(TextView textView) {
        try {
            if (textView == null) {
                return;
            }
            String s = textView.getText().toString();
            if (!s.contains("《")) {
                return;
            }
            int startIndex1 = s.indexOf("《");
            int endIndex1 = s.indexOf("》") + 1;
            int startIndex2 = s.lastIndexOf("《");
            int endIndex2 = s.lastIndexOf("》") + 1;
            if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(LocalManageUtil.en)) {
                s = s.replace("《", "").replace("》", "");
                endIndex1 -= 1;
                startIndex2 -= 2;//移除"《"和"》"总长度发生变化,索引也改变;
                endIndex2 -= 4;//移除"《"和"》"总长度发生变化,索引也改变;
            }
            SpannableStringBuilder spannable = new SpannableStringBuilder(s);
            //设置文字的前景色
            if (textView.getTag() != null && textView.getTag().toString().equals("click")) {
                spannable.setSpan(new ClickableSpan() {
                    @Override
                    public void onClick(@NonNull View widget) {
                        //todo 需要跳转到服务协议界面
                        Intent intent = new Intent();
                        intent.putExtra("type", WebActivity.ServiceAgreement);
                        intent.setClass(_mActivity, WebActivity.class);
                        startActivity(intent);
                    }
                    @Override
                    public void updateDrawState(@NonNull TextPaint ds) {
                        super.updateDrawState(ds);
                        //设置字体颜色
                        ds.setColor(getResources().getColor(R.color.text_38C494, null));
                        // 去掉下划线
                        ds.setUnderlineText(!UserConfigManage.getInstance().isZh());
                    }
                }, startIndex1, endIndex1, 0);
//                spannable.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), startIndex1, endIndex1, 0);
                spannable.setSpan(new ClickableSpan() {
                    @Override
                    public void onClick(@NonNull View widget) {
                        //todo 需要跳转到隐私界面
                        Intent intent = new Intent();
                        intent.putExtra("type", WebActivity.PrivacyAgreement);
                        intent.setClass(_mActivity, WebActivity.class);
                        startActivity(intent);
                    }
                    @Override
                    public void updateDrawState(@NonNull TextPaint ds) {
                        super.updateDrawState(ds);
                        //设置字体颜色
                        ds.setColor(getResources().getColor(R.color.text_38C494, null));
                        // 去掉下划线
                        ds.setUnderlineText(!UserConfigManage.getInstance().isZh());
                    }
                }, startIndex2, endIndex2, 0);
//                spannable.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), startIndex2, endIndex2, 0);
            }
            textView.setText(spannable);
            //中途遇到点击后字体显示高亮,取消高亮
            textView.setHighlightColor(getResources().getColor(R.color.text_FFACACAC, null));
            //最后设置可点击,必须实现,否则只能显示样式,无法实现点击效果
            textView.setMovementMethod(LinkMovementMethod.getInstance());
        } catch (Exception ignored) {
        }
    }
    /**
     * 初始化三方相关SDK
     * 小米平台上线,需要先同意后,在初始化极光SDK,否则平台审核不让通过
     */
    private void initSdk() {
        if (HDLApp.getInstance().isStartInitThirdSDK) {
            return;
        }
        HDLApp.getInstance().isStartInitThirdSDK = true;
        //初始化友盟SDK
        initUMengSDK();
        //初始化极光推送
        initJPush();
    }
    /**
     * 初始化极光SDK
     */
    private void initJPush() {
        JPushInterface.setDebugMode(true);
        JPushInterface.init(getBaseContext());
    }
    /**
     * 初始化友盟SDK,抓闪退日志
     * 集成教程地址:https://developer.umeng.com/docs/119267/detail/118588
     */
    private void initUMengSDK() {
        UMConfigure.preInit(this, "6801aec0bc47b67d833fd76d", "XenterraSolar");
        //appkey和channl必须保持和预初始化一致!!!
        //deviceType:设备类型,UMConfigure.DEVICE_TYPE_PHONE为手机、UMConfigure.DEVICE_TYPE_BOX为盒子
        //pushSecret:Push推送业务的secret
        UMConfigure.init(this, "6801aec0bc47b67d833fd76d", "XenterraSolar", UMConfigure.DEVICE_TYPE_PHONE, "");
        UMConfigure.setLogEnabled(false);//AppConfigManage.isDebug()
    }
}