From 4cd6e3cea73a57f9a4c73232b27c9054ac599b05 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 12 十二月 2023 14:51:03 +0800
Subject: [PATCH] 2023年12月12日14:50:56
---
app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java | 63 +++++++++++++++++++++----------
1 files changed, 43 insertions(+), 20 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 cd25868..db80f22 100644
--- a/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java
+++ b/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java
@@ -3,6 +3,8 @@
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MotionEvent;
@@ -10,12 +12,14 @@
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
+import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.hdl.photovoltaic.HDLApp;
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.StartActivity;
@@ -30,12 +34,12 @@
/**
* 鍔ㄦ�佸垪琛ㄥ脊绐�
*/
-public class ListDialog extends Dialog {
+public class ListDialog extends BaseDialog {
private DialogListBinding viewBinding;
private ListDialogAdapter listDialogAdapter;
private final Context mContext;
- private List<ListDialogAdapter.DialogItemData> list;
+ private List<LanguageAdapter.ItemData> list;
private ListDialogAdapter.OnclickListener itemOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣�
@@ -45,11 +49,28 @@
}
@Override
+ protected void onStart() {
+ super.onStart();
+ // 鑾峰彇绐楀彛瀵硅薄
+ Window dialogWindow = this.getWindow();
+ if (dialogWindow != null) {
+ // 鑾峰彇瀵硅瘽妗嗗綋鍓嶇殑鍙傛暟鍊�
+ WindowManager.LayoutParams p = dialogWindow.getAttributes();
+ p.width = LinearLayout.LayoutParams.MATCH_PARENT;
+ p.height = LinearLayout.LayoutParams.WRAP_CONTENT;
+ p.gravity = Gravity.TOP;
+ // 璁剧疆鍒板睘鎬ч厤缃腑
+ dialogWindow.setAttributes(p);
+ }
+ }
+
+ @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
viewBinding = DialogListBinding.inflate(getLayoutInflater());
setContentView(viewBinding.getRoot());
- setDialogTouchOutsideCloseable(this);
+ this.setCanceledOnTouchOutside(true);
+// setDialogTouchOutsideCloseable(this);
initData();
LinearLayoutManager linearLayout = new LinearLayoutManager(mContext);
listDialogAdapter = new ListDialogAdapter(this.list, mContext);
@@ -57,13 +78,17 @@
viewBinding.logicRcv.setAdapter(listDialogAdapter);
listDialogAdapter.setItemOnclickListener(new ListDialogAdapter.OnclickListener() {
@Override
- public void onClick(int position, ListDialogAdapter.DialogItemData itemData) {
+ public void onClick(int position, LanguageAdapter.ItemData itemData) {
for (int i = 0; i < list.size(); i++) {
- ListDialogAdapter.DialogItemData data = list.get(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);
}
});
@@ -75,20 +100,9 @@
}
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);
-
+ list = LocalManageUtil.getLanguageList();
for (int i = 0; i < list.size(); i++) {
- ListDialogAdapter.DialogItemData itemData = list.get(i);
+ LanguageAdapter.ItemData itemData = list.get(i);
if (itemData.getLanguage().equals(UserConfigManage.getInstance().getCurrentAppLanguage())) {
//鍒濆鍖栦箣鍓嶇姸鎬�
itemData.setState(true);
@@ -102,7 +116,7 @@
* @param position 绱㈠紩鍊�
* @param itemData 閫変腑鏁版嵁
*/
- private void languageSelectionDialog(int position, ListDialogAdapter.DialogItemData itemData) {
+ private void languageSelectionDialog(int position, LanguageAdapter.ItemData 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));
@@ -125,12 +139,21 @@
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);
+ }
+ }
+ listDialogAdapter.notifyDataSetChanged();
dialog.dismiss();
}
});
}
- //瑙e喅dialog.setCanceledOnTouchOutside(true) 涓嶇敓鏁堥棶棰�
+
public void setDialogTouchOutsideCloseable(Dialog dialog) {
viewBinding.getRoot().setOnTouchListener(new View.OnTouchListener() {
@Override
--
Gitblit v1.8.0