wjc
2025-04-09 6ae9f81d545f44a85c34dea1c11df8b70e3f940f
app/src/main/java/com/hdl/photovoltaic/ui/me/languageSelectionActivity.java
@@ -2,22 +2,26 @@
import androidx.recyclerview.widget.LinearLayoutManager;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import com.hdl.linkpm.sdk.HDLLinkPMSdk;
import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityLanguageSelectionBinding;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.ui.StartActivity;
import com.hdl.photovoltaic.ui.adapter.LanguageAdapter;
import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
import com.hdl.photovoltaic.utils.AppManagerUtils;
import com.hdl.photovoltaic.utils.LocalManageUtil;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import java.util.ArrayList;
import java.util.List;
@@ -40,8 +44,8 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        setNotificationBarBackgroundColor(CustomColor.white);
        setStatusBarTextColor();
        setStatusBarTranslucent();
        getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
        readData();
        //初始化
        initView();
@@ -65,9 +69,10 @@
    private void initEvent() {
        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() {
        viewBinding.toolbarTopRl.topBackLl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setResult(30);
                finish();
            }
        });
@@ -75,12 +80,17 @@
        languageAdapter.setNoOnclickListener(new LanguageAdapter.OnclickListener() {
            @Override
            public void onClick(int position, LanguageAdapter.ItemData itemData) {
                for (int i = 0; i < list.size(); i++) {
                    LanguageAdapter.ItemData data = list.get(i);
                    data.setState(false);
                }
                list.get(position).setState(true);
                languageAdapter.notifyDataSetChanged();
                if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(itemData.getLanguage())) {
                    //同一个不执行弹窗
                    return;
                }
                languageSelectionDialog(itemData);
            }
@@ -99,30 +109,96 @@
        dialog.setTitle(getString(R.string.loading_title_tip));
        dialog.setContent(getString(R.string.loading_app_restart));
        dialog.show();
        dialog.isHideTitle(true);
        dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
            @Override
            public void Confirm() {
                UserConfigManage.getInstance().setCurrentAppLanguage(itemData.getLanguage());
                UserConfigManage.getInstance().Save();
                AppManagerUtils.getAppManager().finishAllActivity();
                Intent intent = new Intent();
                intent.setClass(HDLApp.getInstance(), StartActivity.class);
                startActivity(intent);
                dialog.dismiss();
                showLoading(getString(R.string.restarting_please_wait));
                HdlThreadLogic.runSubThread(new Runnable() {
                    @Override
                    public void run() {
                        if (!UserConfigManage.getInstance().isBAccount()) {
                            //因为C端主界面是uni写的,这里语言切换必须报uni关掉再重新启动,否则会收不到uni发过来的数据(接口为null)
                            if (null != HDLUniMPSDKManager.getInstance().getUniMP()) {
                                HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP();
                            }
                            SystemClock.sleep(2000);//进程没有那么快被杀死
                            HDLUniMPSDKManager.getInstance().initDCUniMPSDK(HDLApp.getInstance());
                        }
                        HdlThreadLogic.runMainThread(new Runnable() {
                            @Override
                            public void run() {
                                hideLoading();
                                UserConfigManage.getInstance().setCurrentAppLanguage(itemData.getLanguage());
                                UserConfigManage.getInstance().Save();
                                //配置接口请求语言
                                HDLLinkPMSdk.setLanguage(UserConfigManage.getInstance().getCurrentAppLanguage());
                                AppManagerUtils.getAppManager().finishAllActivity();
                                Intent intent = new Intent();
                                intent.setClass(HDLApp.getInstance(), StartActivity.class);
                                startActivity(intent);
                            }
                        });
                    }
                });
//                UserConfigManage.getInstance().setCurrentAppLanguage(itemData.getLanguage());
//                UserConfigManage.getInstance().Save();
//                //配置接口请求语言
//                HDLLinkPMSdk.setLanguage(UserConfigManage.getInstance().getCurrentAppLanguage());
//                dialog.dismiss();
//                if (!UserConfigManage.getInstance().isBAccount()) {
//                    //因为C端主界面是uni写的,这里语言切换必须报uni关掉再重新启动,否则会收不到uni发过来的数据(接口为null)
//                    if (null != HDLUniMPSDKManager.getInstance().getUniMP()) {
//                        HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP();
//                    }
//                    SystemClock.sleep(2000);
//                    HDLUniMPSDKManager.getInstance().initDCUniMPSDK(HDLApp.getInstance());
//                }
//                AppManagerUtils.getAppManager().finishAllActivity();
//                Intent intent = new Intent();
//                intent.setClass(HDLApp.getInstance(), StartActivity.class);
//                startActivity(intent);
            }
        });
        dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
            @Override
            public void Cancel() {
                //取消之后还原之前状态
                for (int i = 0; i < list.size(); i++) {
                    LanguageAdapter.ItemData data = list.get(i);
                    data.setState(false);
                    if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(data.getLanguage())) {
                        data.setState(true);
                    }
                }
                languageAdapter.notifyDataSetChanged();
                dialog.dismiss();
            }
        });
        dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
            @Override
            public void onDismiss(DialogInterface dialog) {
                //取消之后还原之前状态
                for (int i = 0; i < list.size(); i++) {
                    LanguageAdapter.ItemData data = list.get(i);
                    data.setState(false);
                    if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(data.getLanguage())) {
                        data.setState(true);
                    }
                }
                languageAdapter.notifyDataSetChanged();
            }
        });
    }
    private void initView() {
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.set_language_choice);
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null));
        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE);
        viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null));
        viewBinding.toolbarTopRl.topTitleTv.setText(R.string.set_language_choice);
        viewBinding.toolbarTopRl.topBackLl.setVisibility(View.VISIBLE);
        LinearLayoutManager linearLayout = new LinearLayoutManager(_mActivity);
        languageAdapter = new LanguageAdapter(this.list, _mActivity);
        viewBinding.languageRc.setLayoutManager(linearLayout);