package com.hdl.photovoltaic.ui.me; import androidx.recyclerview.widget.LinearLayoutManager; 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.List; /** * 语言选择的界面 */ public class languageSelectionActivity extends CustomBaseActivity { private ActivityLanguageSelectionBinding viewBinding; private LanguageAdapter languageAdapter; private List list; @Override public Object getContentView() { viewBinding = ActivityLanguageSelectionBinding.inflate(getLayoutInflater()); return viewBinding.getRoot(); } @Override public void onBindView(Bundle savedInstanceState) { setNotificationBarBackgroundColor(CustomColor.white); setStatusBarTextColor(); readData(); //初始化 initView(); //初始化界面监听器 initEvent(); } private void readData() { list = LocalManageUtil.getLanguageList(); for (int i = 0; i < list.size(); i++) { LanguageAdapter.ItemData itemData = list.get(i); if (itemData.getLanguage().equals(UserConfigManage.getInstance().getCurrentAppLanguage())) { //初始化之前状态 itemData.setState(true); } } } private void initEvent() { viewBinding.toolbarTopFragmentHouseListRl.topBackLl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setResult(30); finish(); } }); 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); } }); } /** * 二次确认提示框 * * @param itemData 选中数据 */ private void languageSelectionDialog(LanguageAdapter.ItemData itemData) { ConfirmationCancelDialog dialog = new ConfirmationCancelDialog(this); dialog.setTitle(getString(R.string.loading_title_tip)); dialog.setContent(getString(R.string.loading_app_restart)); dialog.show(); dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { @Override public void Confirm() { 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(); } }); } 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.topBackLl.setVisibility(View.VISIBLE); viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null)); LinearLayoutManager linearLayout = new LinearLayoutManager(_mActivity); languageAdapter = new LanguageAdapter(this.list, _mActivity); viewBinding.languageRc.setLayoutManager(linearLayout); viewBinding.languageRc.setAdapter(languageAdapter); } }