122 lines
3.2 KiB
Java
122 lines
3.2 KiB
Java
package com.handuan.os.dialog;
|
|
|
|
import android.content.Context;
|
|
import android.os.Bundle;
|
|
import android.text.TextUtils;
|
|
import android.view.View;
|
|
import android.widget.TextView;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.appcompat.app.AlertDialog;
|
|
|
|
import com.handuan.os.R;
|
|
|
|
public class PermissionsDialog extends AlertDialog {
|
|
private Context mContext;
|
|
|
|
private TextView tv_title;
|
|
private TextView tv_content;
|
|
private TextView tv_cancel;
|
|
private TextView tv_confirm;
|
|
|
|
private String mTitle;
|
|
private String mContent;
|
|
private String mDeniedtext;
|
|
private String mGrantedtext;
|
|
|
|
public void setTitle(String title) {
|
|
mTitle = title;
|
|
}
|
|
|
|
public void setContent(String content) {
|
|
mContent = content;
|
|
}
|
|
|
|
public void setDeniedtext(String deniedtext) {
|
|
mDeniedtext = deniedtext;
|
|
}
|
|
|
|
public void setGrantedtext(String grantedtext) {
|
|
mGrantedtext = grantedtext;
|
|
}
|
|
|
|
public PermissionsDialog(@NonNull Context context) {
|
|
super(context, R.style.CustomDialog);
|
|
this.mContext = context;
|
|
}
|
|
|
|
public PermissionsDialog(@NonNull Context context, int themeResId) {
|
|
super(context, themeResId);
|
|
this.mContext = context;
|
|
}
|
|
|
|
public PermissionsDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {
|
|
super(context, cancelable, cancelListener);
|
|
this.mContext = context;
|
|
}
|
|
|
|
public void setPermissionsCallback(PermissionsCallback callback) {
|
|
this.mPermissionsCallback = callback;
|
|
}
|
|
|
|
private PermissionsCallback mPermissionsCallback;
|
|
|
|
public interface PermissionsCallback {
|
|
void onGranted();
|
|
|
|
void onDenied();
|
|
}
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.dialog_permissions);
|
|
setCanceledOnTouchOutside(false);
|
|
tv_title = findViewById(R.id.tv_title);
|
|
tv_content = findViewById(R.id.tv_content);
|
|
tv_cancel = findViewById(R.id.tv_cancel);
|
|
tv_confirm = findViewById(R.id.tv_confirm);
|
|
|
|
tv_cancel.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
if (mPermissionsCallback != null) {
|
|
mPermissionsCallback.onDenied();
|
|
}
|
|
}
|
|
});
|
|
|
|
tv_confirm.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
if (mPermissionsCallback != null) {
|
|
mPermissionsCallback.onGranted();
|
|
}
|
|
}
|
|
});
|
|
setText();
|
|
}
|
|
|
|
@Override
|
|
public void show() {
|
|
super.show();
|
|
setText();
|
|
}
|
|
|
|
private void setText() {
|
|
if (!TextUtils.isEmpty(mTitle)) {
|
|
tv_title.setText(mTitle);
|
|
}
|
|
if (!TextUtils.isEmpty(mContent)) {
|
|
tv_content.setText(mContent);
|
|
}
|
|
if (!TextUtils.isEmpty(mDeniedtext)) {
|
|
tv_cancel.setText(mDeniedtext);
|
|
}
|
|
if (!TextUtils.isEmpty(mGrantedtext)) {
|
|
tv_confirm.setText(mGrantedtext);
|
|
}
|
|
}
|
|
}
|