package com.demo.app.ui.dialog; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; import com.demo.app.R; import com.demo.lib.common.util.SystemCommon; import com.demo.lib.common.util.common.StringUtils; /** * 权限请求之前的弹框 */ public class PermissionAuthNotifyDialog extends Dialog { private static String TAG = "UserProtocolDialog"; public PermissionAuthNotifyDialog(Context context) { super(context); this.setCancelable(false); } public PermissionAuthNotifyDialog(Context context, int theme) { super(context, theme); this.setCancelable(false); } public static class Builder { private Activity context; private String positiveButtonText; private OnClickListener positiveButtonClickListener; public Builder(Activity context) { this.context = context; } public Builder setPositiveButton(String positiveButtonText, OnClickListener listener) { this.positiveButtonText = positiveButtonText; this.positiveButtonClickListener = listener; return this; } public PermissionAuthNotifyDialog create() { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); final PermissionAuthNotifyDialog dialog = new PermissionAuthNotifyDialog(context, R.style.Dialog); dialog.setCanceledOnTouchOutside(false); final View layout = inflater.inflate(R.layout.dialog_auth_notify, null); dialog.addContentView(layout, new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); TextView tv_positive = layout.findViewById(R.id.tv_positive); // set the confirm button if (positiveButtonClickListener != null) { if (!StringUtils.isEmpty(positiveButtonText)) tv_positive.setText(positiveButtonText); tv_positive.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { positiveButtonClickListener.onClick(dialog, DialogInterface.BUTTON_POSITIVE); } }); } dialog.setContentView(layout); android.view.WindowManager.LayoutParams params = dialog.getWindow() .getAttributes(); params.width = (int) ((SystemCommon.getScreenWidth(context) * 3) / 4); params.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT; dialog.getWindow().setAttributes(params); return dialog; } } }