package com.hdl.photovoltaic.widget;
|
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.view.Display;
|
import android.view.Gravity;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.WindowManager;
|
import android.widget.TextView;
|
|
import com.hdl.photovoltaic.R;
|
import com.hdl.photovoltaic.other.HdlCommonLogic;
|
import com.hdl.photovoltaic.utils.UnitConversionUtils;
|
|
import java.util.Objects;
|
|
|
public class PermissionExplanationDialog {
|
|
private Dialog portConflictPd;
|
private volatile static PermissionExplanationDialog mInstance;
|
|
public PermissionExplanationDialog() {
|
}
|
|
public static PermissionExplanationDialog getInstance() {
|
if (mInstance == null) {
|
synchronized (PermissionExplanationDialog.class) {
|
if (mInstance == null) {
|
mInstance = new PermissionExplanationDialog();
|
}
|
}
|
}
|
return mInstance;
|
}
|
|
public void showPortConflictPdDialog(Context context, String description, String purpose) {
|
|
if (portConflictPd != null) {
|
try {
|
portConflictPd.show();
|
} catch (Exception e) {
|
|
}
|
} else {
|
Dialog dialog = new Dialog(context, R.style.video_dialog);
|
View view = LayoutInflater.from(context).inflate(R.layout.dialog_permission_explanation, null);
|
dialog.setContentView(view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
|
WindowManager windowManager = Objects.requireNonNull(dialog.getWindow()).getWindowManager();
|
Display display = windowManager.getDefaultDisplay();
|
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
|
lp.width = (int) (display.getWidth() * 0.9); //设置宽度
|
dialog.getWindow().setGravity(Gravity.TOP);
|
lp.y = (int) UnitConversionUtils.dpToPx(context, 44);
|
|
dialog.getWindow().setAttributes(lp);
|
|
TextView tvDescription = view.findViewById(R.id.tv_description);
|
tvDescription.setText(description);
|
|
TextView tvPurpose = view.findViewById(R.id.tv_purpose);
|
tvPurpose.setText(purpose);
|
|
portConflictPd = dialog;
|
portConflictPd.show();
|
}
|
}
|
|
public void dismiss() {
|
try {
|
if (portConflictPd != null) {
|
portConflictPd.dismiss();
|
portConflictPd = null;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}
|