114 lines
4.0 KiB
Java
114 lines
4.0 KiB
Java
package com.uiui.aios.dialog;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.graphics.Color;
|
|
import android.net.Uri;
|
|
import android.os.Bundle;
|
|
import android.text.Spannable;
|
|
import android.text.SpannableString;
|
|
import android.text.Spanned;
|
|
import android.text.method.LinkMovementMethod;
|
|
import android.text.style.ClickableSpan;
|
|
import android.text.style.ForegroundColorSpan;
|
|
import android.view.View;
|
|
import android.widget.TextView;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.appcompat.app.AlertDialog;
|
|
|
|
import com.uiui.aios.R;
|
|
import com.uiui.aios.activity.PolicyActivity;
|
|
|
|
public class PrivacyPolicyDialog extends AlertDialog {
|
|
private Context mContext;
|
|
private TextView tv_content;
|
|
private TextView tv_cancel;
|
|
private TextView tv_confirm;
|
|
|
|
public PrivacyPolicyDialog(@NonNull Context context) {
|
|
super(context, R.style.CustomDialog);
|
|
this.mContext = context;
|
|
}
|
|
|
|
public PrivacyPolicyDialog(@NonNull Context context, int themeResId) {
|
|
super(context, themeResId);
|
|
this.mContext = context;
|
|
}
|
|
|
|
public PrivacyPolicyDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {
|
|
super(context, cancelable, cancelListener);
|
|
this.mContext = context;
|
|
}
|
|
|
|
public void setPrivacyPolicyCallback(PrivacyPolicyCallback callback) {
|
|
this.privacyPolicyCallback = callback;
|
|
}
|
|
|
|
private PrivacyPolicyCallback privacyPolicyCallback;
|
|
|
|
public interface PrivacyPolicyCallback {
|
|
void onCancel();
|
|
|
|
void onConfirm();
|
|
}
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.dialog_privacy_policy);
|
|
tv_content = findViewById(R.id.tv_content);
|
|
tv_cancel = findViewById(R.id.tv_cancel);
|
|
tv_confirm = findViewById(R.id.tv_confirm);
|
|
SpannableString spannableString = new SpannableString(mContext.getResources().getString(R.string.privacy_agreement_content));
|
|
spannableString.setSpan(new ClickableSpan() {
|
|
@Override
|
|
public void onClick(@NonNull View widget) {
|
|
Intent intent = new Intent(mContext, PolicyActivity.class);
|
|
intent.putExtra("content",R.raw.privacy_policy);
|
|
mContext.startActivity(intent);
|
|
}
|
|
}, 115, 121, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
spannableString.setSpan(new ForegroundColorSpan(Color.BLUE), 115, 121, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
spannableString.setSpan(new ClickableSpan() {
|
|
@Override
|
|
public void onClick(@NonNull View widget) {
|
|
Intent intent = new Intent(mContext, PolicyActivity.class);
|
|
intent.putExtra("content",R.raw.user_agreement);
|
|
mContext.startActivity(intent);
|
|
}
|
|
}, 122, 128, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
spannableString.setSpan(new ForegroundColorSpan(Color.BLUE), 122, 128, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
|
// spannableString.setSpan(new ClickableSpan() {
|
|
// @Override
|
|
// public void onClick(@NonNull View widget) {
|
|
//
|
|
// }
|
|
// }, 129, 137, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
// spannableString.setSpan(new ForegroundColorSpan(Color.BLUE), 129, 137, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
|
tv_content.setText(spannableString);
|
|
tv_content.setMovementMethod(LinkMovementMethod.getInstance());
|
|
|
|
tv_cancel.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
if (privacyPolicyCallback != null) {
|
|
privacyPolicyCallback.onCancel();
|
|
}
|
|
}
|
|
});
|
|
|
|
tv_confirm.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
if (privacyPolicyCallback != null) {
|
|
privacyPolicyCallback.onConfirm();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|