From 3179371d3cb7e067937ae073c74a57bead023ba0 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 25 八月 2025 10:26:54 +0800
Subject: [PATCH] 2025年08月25日10:26:52
---
app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java | 100 ++++++++++++++++----------------------------------
1 files changed, 32 insertions(+), 68 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 db80f22..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,35 +1,30 @@
package com.hdl.photovoltaic.widget;
+import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Context;
-import android.content.Intent;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
+import android.content.DialogInterface;
import android.os.Bundle;
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 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;
import com.hdl.photovoltaic.ui.adapter.LanguageAdapter;
-import com.hdl.photovoltaic.utils.AppManagerUtils;
import com.hdl.photovoltaic.utils.LocalManageUtil;
+import com.hdl.photovoltaic.utils.UnitConversionUtils;
import com.hdl.photovoltaic.widget.adapter.ListDialogAdapter;
-import java.util.ArrayList;
import java.util.List;
+
/**
* 鍔ㄦ�佸垪琛ㄥ脊绐�
@@ -44,33 +39,28 @@
private ListDialogAdapter.OnclickListener itemOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣�
public ListDialog(@NonNull Context context) {
- super(context, R.style.Custom_List_Dialog);
+ super(context, R.style.Custom_Dialog);
this.mContext = context;
}
- @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);
+
+ 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());
- this.setCanceledOnTouchOutside(true);
-// setDialogTouchOutsideCloseable(this);
initData();
LinearLayoutManager linearLayout = new LinearLayoutManager(mContext);
listDialogAdapter = new ListDialogAdapter(this.list, mContext);
@@ -117,23 +107,18 @@
* @param 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));
dialog.show();
+ dialog.isHideTitle(true);
dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
@Override
public void Confirm() {
+ dialog.dismiss();
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);
}
});
dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
@@ -151,43 +136,22 @@
dialog.dismiss();
}
});
- }
-
-
- public void setDialogTouchOutsideCloseable(Dialog dialog) {
- viewBinding.getRoot().setOnTouchListener(new View.OnTouchListener() {
+ dialog.setOnDismissListener(new OnDismissListener() {
@Override
- 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();
+ 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);
}
-
- if (left < x && x < right) {
-
- } else {
- dismiss();
- }
-
-
}
- return true;
+ listDialogAdapter.notifyDataSetChanged();
}
});
-// 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);
+
}
+
+
}
--
Gitblit v1.8.0