package com.hdl.photovoltaic.ui.me;
|
|
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.List;
|
|
|
/**
|
* 语言选择的界面
|
*/
|
public class languageSelectionActivity extends CustomBaseActivity {
|
|
private ActivityLanguageSelectionBinding viewBinding;
|
|
private LanguageAdapter languageAdapter;
|
|
private List<LanguageAdapter.ItemData> list;
|
|
@Override
|
public Object getContentView() {
|
viewBinding = ActivityLanguageSelectionBinding.inflate(getLayoutInflater());
|
return viewBinding.getRoot();
|
}
|
|
@Override
|
public void onBindView(Bundle savedInstanceState) {
|
setStatusBarTranslucent();
|
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.toolbarTopRl.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.isHideTitle(true);
|
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();
|
}
|
});
|
|
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.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);
|
viewBinding.languageRc.setAdapter(languageAdapter);
|
}
|
|
}
|