From 593303fa91fd541844b204ec913c462d7855a31e Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期五, 01 十二月 2023 18:24:44 +0800
Subject: [PATCH] 2023年12月01日18:24:35
---
app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java | 241 ++++++++++++++++++++++++++---------------------
1 files changed, 132 insertions(+), 109 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..cd25868 100644
--- a/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java
+++ b/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java
@@ -2,24 +2,46 @@
import android.app.Dialog;
import android.content.Context;
+import android.content.Intent;
import android.os.Bundle;
-import android.text.TextUtils;
+import android.view.Gravity;
+import android.view.MotionEvent;
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.HDLApp;
import com.hdl.photovoltaic.R;
+import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.DialogListBinding;
+import com.hdl.photovoltaic.ui.StartActivity;
+import com.hdl.photovoltaic.ui.adapter.LanguageAdapter;
+import com.hdl.photovoltaic.utils.AppManagerUtils;
+import com.hdl.photovoltaic.utils.LocalManageUtil;
+import com.hdl.photovoltaic.widget.adapter.ListDialogAdapter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 鍔ㄦ�佸垪琛ㄥ脊绐�
+ */
public class ListDialog extends Dialog {
- private onNoListener onNoOnclickListener;
- private onHDLChinaListener onHDLChinaListener;
- private onHDLBahrainListener onHDLBahrainListener;
private DialogListBinding viewBinding;
- private String contentStr1, contentStr2;
+
+ private ListDialogAdapter listDialogAdapter;
+ private final Context mContext;
+ private List<ListDialogAdapter.DialogItemData> list;
+
+ private ListDialogAdapter.OnclickListener itemOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣�
public ListDialog(@NonNull Context context) {
- super(context, R.style.Custom_Dialog);
+ super(context, R.style.Custom_List_Dialog);
+ this.mContext = context;
}
@Override
@@ -27,121 +49,122 @@
super.onCreate(savedInstanceState);
viewBinding = DialogListBinding.inflate(getLayoutInflater());
setContentView(viewBinding.getRoot());
+ setDialogTouchOutsideCloseable(this);
initData();
- initEvent();
-
- }
-
- /**
- * 鍒濆鍖栫晫闈㈡帶浠剁殑鏄剧ず鏁版嵁
- */
- 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);
- }
- }
-
- /**
- * 鑷畾涔�"鍐呭"鏂囨湰
- *
- * @param content 鍐呭
- */
- public void setLineContent2(String content) {
- if (TextUtils.isEmpty(content)) {
- return;
- }
- contentStr2 = content;
- if (viewBinding != null) {
- viewBinding.hdlBahrainTv.setText(contentStr2);
- }
- }
-
- 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() {
+ 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(View v) {
- if (onNoOnclickListener != null) {
- onNoOnclickListener.Cancel();
+ public void onClick(int position, ListDialogAdapter.DialogItemData itemData) {
+ for (int i = 0; i < list.size(); i++) {
+ ListDialogAdapter.DialogItemData data = list.get(i);
+ data.setState(false);
+ }
+ list.get(position).setState(true);
+ listDialogAdapter.notifyDataSetChanged();
+ languageSelectionDialog(position, itemData);
+ }
+ });
+
+ }
+
+ public void setItemOnclickListener(ListDialogAdapter.OnclickListener onclickListener) {
+ this.itemOnclickListener = onclickListener;
+ }
+
+ private void initData() {
+ list = new ArrayList<>();
+ ListDialogAdapter.DialogItemData zh = new ListDialogAdapter.DialogItemData();
+ zh.setState(false);
+ zh.setTitle("绠�浣撲腑鏂�");
+ zh.setLanguage(LocalManageUtil.zh);
+ list.add(zh);
+ ListDialogAdapter.DialogItemData en = new ListDialogAdapter.DialogItemData();
+ en.setState(false);
+ en.setTitle("English");
+ en.setLanguage(LocalManageUtil.en);
+ list.add(en);
+
+ for (int i = 0; i < list.size(); i++) {
+ ListDialogAdapter.DialogItemData itemData = list.get(i);
+ if (itemData.getLanguage().equals(UserConfigManage.getInstance().getCurrentAppLanguage())) {
+ //鍒濆鍖栦箣鍓嶇姸鎬�
+ itemData.setState(true);
+ }
+ }
+ }
+
+ /**
+ * 浜屾纭鎻愮ず妗�
+ *
+ * @param position 绱㈠紩鍊�
+ * @param itemData 閫変腑鏁版嵁
+ */
+ private void languageSelectionDialog(int position, ListDialogAdapter.DialogItemData itemData) {
+ ConfirmationCancelDialog dialog = new ConfirmationCancelDialog(this.mContext);
+ dialog.setTitle(this.mContext.getString(R.string.loading_title_tip));
+ dialog.setContent(this.mContext.getString(R.string.loading_app_restart));
+ dialog.show();
+ dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
+ @Override
+ public void Confirm() {
+ if (itemOnclickListener != null) {
+ itemOnclickListener.onClick(position, itemData);
}
dismiss();
+ UserConfigManage.getInstance().setCurrentAppLanguage(itemData.getLanguage());
+ UserConfigManage.getInstance().Save();
+ AppManagerUtils.getAppManager().finishAllActivity();
+ Intent intent = new Intent();
+ intent.setClass(HDLApp.getInstance(), StartActivity.class);
+ mContext.startActivity(intent);
}
});
- 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() {
+ dialog.dismiss();
}
});
- viewBinding.hdlBahrainLl.setOnClickListener(new View.OnClickListener() {
+ }
+
+ //瑙e喅dialog.setCanceledOnTouchOutside(true) 涓嶇敓鏁堥棶棰�
+ public void setDialogTouchOutsideCloseable(Dialog dialog) {
+ viewBinding.getRoot().setOnTouchListener(new View.OnTouchListener() {
@Override
- public void onClick(View v) {
- if (onHDLBahrainListener != null) {
- onHDLBahrainListener.HDLBahrain();
- }
+ public boolean onTouch(View v, MotionEvent event) {
+ int top = viewBinding.dialogParent.getTop();
+ int left = viewBinding.dialogParent.getLeft();
+ int bottom = viewBinding.dialogParent.getBottom();
+ int right = viewBinding.dialogParent.getRight();
+ int y = (int) event.getY();
+ int x = (int) event.getX();
+ if (event.getAction() == MotionEvent.ACTION_UP) {
+ if (top < y && y < bottom) {
+ } else {
+ dismiss();
+ }
+
+ if (left < x && x < right) {
+
+ } else {
+ dismiss();
+ }
+
+
+ }
+ return true;
}
});
-
-
+// Window window = dialog.getWindow();
+// WindowManager.LayoutParams params = window.getAttributes();
+// params.width = ViewGroup.LayoutParams.MATCH_PARENT;
+// params.height = ViewGroup.LayoutParams.MATCH_PARENT;
+// window.setAttributes(params);
+// //绌虹櫧澶勪笉鑳藉彇娑堝姩鐢�
+// setCanceledOnTouchOutside(true);
}
-
- 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