From 87cd5df70918e6ba1af849c5f026d3719bfdb1ac Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 09 四月 2025 09:06:29 +0800 Subject: [PATCH] Merge branch '1.5.2' into dev --- app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java | 200 ++++++++++++++++++++++++++----------------------- 1 files changed, 105 insertions(+), 95 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java index 0c93e6f..a6cc52c 100644 --- a/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java +++ b/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java @@ -1,147 +1,157 @@ package com.hdl.photovoltaic.widget; +import android.annotation.SuppressLint; import android.app.Dialog; import android.content.Context; +import android.content.DialogInterface; import android.os.Bundle; -import android.text.TextUtils; +import android.view.Gravity; import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; import com.hdl.photovoltaic.R; +import com.hdl.photovoltaic.base.BaseDialog; +import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.databinding.DialogListBinding; +import com.hdl.photovoltaic.ui.adapter.LanguageAdapter; +import com.hdl.photovoltaic.utils.LocalManageUtil; +import com.hdl.photovoltaic.utils.UnitConversionUtils; +import com.hdl.photovoltaic.widget.adapter.ListDialogAdapter; -public class ListDialog extends Dialog { - private onNoListener onNoOnclickListener; - private onHDLChinaListener onHDLChinaListener; - private onHDLBahrainListener onHDLBahrainListener; +import java.util.List; + + +/** + * 鍔ㄦ�佸垪琛ㄥ脊绐� + */ +public class ListDialog extends BaseDialog { private DialogListBinding viewBinding; - private String contentStr1, contentStr2; + + private ListDialogAdapter listDialogAdapter; + private final Context mContext; + private List<LanguageAdapter.ItemData> list; + + private ListDialogAdapter.OnclickListener itemOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣� public ListDialog(@NonNull Context context) { super(context, R.style.Custom_Dialog); + this.mContext = context; } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + + Window window = getWindow(); + if (window != null) { + window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + WindowManager.LayoutParams layoutParams = window.getAttributes(); + layoutParams.gravity = Gravity.START | Gravity.TOP; + layoutParams.width = (int) UnitConversionUtils.dpToPx(mContext, 140); + layoutParams.x = (int) UnitConversionUtils.dpToPx(mContext, 20); + layoutParams.y = (int) UnitConversionUtils.dpToPx(mContext, 89); + window.setAttributes(layoutParams); + } + viewBinding = DialogListBinding.inflate(getLayoutInflater()); setContentView(viewBinding.getRoot()); initData(); - initEvent(); + LinearLayoutManager linearLayout = new LinearLayoutManager(mContext); + listDialogAdapter = new ListDialogAdapter(this.list, mContext); + viewBinding.logicRcv.setLayoutManager(linearLayout); + viewBinding.logicRcv.setAdapter(listDialogAdapter); + listDialogAdapter.setItemOnclickListener(new ListDialogAdapter.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); + listDialogAdapter.notifyDataSetChanged(); + if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(itemData.getLanguage())) { + //鍚屼竴涓笉鎵ц寮圭獥 + return; + } + languageSelectionDialog(position, itemData); + } + }); } - /** - * 鍒濆鍖栫晫闈㈡帶浠剁殑鏄剧ず鏁版嵁 - */ + public void setItemOnclickListener(ListDialogAdapter.OnclickListener onclickListener) { + this.itemOnclickListener = onclickListener; + } + private void initData() { - //濡傛灉鐢ㄦ埛鑷畾浜哻ontentStr1鍜宑ontentStr2 - if (!TextUtils.isEmpty(contentStr1)) { - viewBinding.hdlChinaTv.setText(contentStr1); - } - if (!TextUtils.isEmpty(contentStr2)) { - viewBinding.hdlBahrainTv.setText(contentStr2); - } - - } - - /** - * 鑷畾涔�"鍐呭"鏂囨湰 - * - * @param content 鍐呭 - */ - public void setLineContent1(String content) { - if (TextUtils.isEmpty(content)) { - return; - } - contentStr1 = content; - if (viewBinding != null) { - viewBinding.hdlChinaTv.setText(contentStr1); + 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); + } } } /** - * 鑷畾涔�"鍐呭"鏂囨湰 + * 浜屾纭鎻愮ず妗� * - * @param content 鍐呭 + * @param position 绱㈠紩鍊� + * @param itemData 閫変腑鏁版嵁 */ - public void setLineContent2(String content) { - if (TextUtils.isEmpty(content)) { - return; - } - contentStr2 = content; - if (viewBinding != null) { - viewBinding.hdlBahrainTv.setText(contentStr2); - } - } + private void languageSelectionDialog(int position, LanguageAdapter.ItemData itemData) { - public String geHDLChinaText() { - return viewBinding.hdlChinaTv.getText().toString(); - } - - ; - - public String getHDLBahrainText() { - return viewBinding.hdlBahrainTv.getText().toString(); - - } - - private void initEvent() { - - viewBinding.hdlCancelLl.setOnClickListener(new View.OnClickListener() { + ConfirmationCancelDialog dialog = new ConfirmationCancelDialog(this.mContext); + dialog.setContent(this.mContext.getString(R.string.loading_app_restart)); + dialog.show(); + dialog.isHideTitle(true); + dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { @Override - public void onClick(View v) { - if (onNoOnclickListener != null) { - onNoOnclickListener.Cancel(); + public void Confirm() { + dialog.dismiss(); + if (itemOnclickListener != null) { + itemOnclickListener.onClick(position, itemData); } - dismiss(); } }); - viewBinding.hdlChinaLl.setOnClickListener(new View.OnClickListener() { + dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { @Override - public void onClick(View v) { - if (onHDLChinaListener != null) { - onHDLChinaListener.HDLChina(); + 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); + } } - + listDialogAdapter.notifyDataSetChanged(); + dialog.dismiss(); } }); - viewBinding.hdlBahrainLl.setOnClickListener(new View.OnClickListener() { + dialog.setOnDismissListener(new OnDismissListener() { @Override - public void onClick(View v) { - if (onHDLBahrainListener != null) { - onHDLBahrainListener.HDLBahrain(); + 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); + } } - + listDialogAdapter.notifyDataSetChanged(); } }); - } - public void setNoOnListener(onNoListener onclickListener) { - this.onNoOnclickListener = onclickListener; - } - - public void setOnHDLChinaOnListener(onHDLChinaListener onHDLChinaListener) { - this.onHDLChinaListener = onHDLChinaListener; - } - - public void setOnHDLBahrainListener(onHDLBahrainListener onHDLBahrainListener) { - this.onHDLBahrainListener = onHDLBahrainListener; - } - - public interface onNoListener { - void Cancel(); - } - - public interface onHDLChinaListener { - void HDLChina(); - } - - public interface onHDLBahrainListener { - void HDLBahrain(); - } } -- Gitblit v1.8.0