OurPlay v5.5.9版本的 MD5 值为:d4e139798f4c2243a1145c8af5e21046
以下内容为反编译后的 PermissionPromptUtil.java 源代码,内容仅作参考
package com.excelliance.kxqp.ui;
import android.app.Dialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Paint;
import android.os.Build;
import android.os.Process;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.text.style.StyleSpan;
import android.text.style.URLSpan;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.excean.bytedancebi.bean.BiEventParamFirstStartAppProcess;
import com.excelliance.kxqp.GameUtilBuild;
import com.excelliance.kxqp.gs.util.w;
import com.excelliance.kxqp.helper.InitHelper;
import com.excelliance.kxqp.util.resource.ResourceUtil;
import com.tencent.open.SocialConstants;
public class PermissionPromptUtil {
private static final String PRIVACY_PROTOCOL_URL = "https://h5.ourplay.com.cn/privacy-new/";
private static final String SERVICE_PROTOCOL_URL = "https://h5.ourplay.com.cn/html/agreement/index.html";
private static final String TAG = "PermissionAndPrivacy";
private static PermissionPromptUtil mUtils;
private boolean isCheck = false;
private boolean isChidTarget = false;
private Dialog mDialog;
private PermissionPromptUtil() {
}
public static PermissionPromptUtil getInstance() {
if (mUtils == null) {
mUtils = new PermissionPromptUtil();
}
return mUtils;
}
public void show(final Context context) {
String e;
this.mDialog = new Dialog(context, ResourceUtil.getIdOfStyle(context, "pop_custom_dialog_theme"));
View layout = ResourceUtil.getLayout(context, "dialog_permission_privacy");
this.mDialog.setContentView(layout);
this.mDialog.setCancelable(false);
Window window = this.mDialog.getWindow();
int identifier = context.getResources().getIdentifier("dialog_bg_color", "color", context.getPackageName());
if (window != null) {
window.setBackgroundDrawableResource(identifier);
WindowManager.LayoutParams attributes = window.getAttributes();
attributes.width = -1;
window.setWindowAnimations(ResourceUtil.getIdOfStyle(context, "dialogWindowAnim"));
attributes.height = -1;
attributes.gravity = 17;
window.setAttributes(attributes);
}
TextView textView = (TextView) layout.findViewById(ResourceUtil.getId(context, "privacy_text"));
String e2 = w.e(context, "privacy_protocol");
if (e2 == null) {
e2 = "《OurPlay隐私协议》";
}
String e3 = w.e(context, "service_protocol");
if (e3 == null) {
e3 = "《OurPlay用户服务协议》";
}
this.isChidTarget = isTargetChid(context);
if (this.isChidTarget) {
e = w.e(context, "protocol_string");
} else {
e = w.e(context, "protocol_string_default");
}
if (e == null) {
e = "请您详细阅读并同意%1s及%2s内所有条款及内容。";
}
String format = String.format(e, e2, e3);
SpannableString spannableString = new SpannableString(format);
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(@NonNull View view) {
Intent intent = new Intent();
intent.setComponent(new ComponentName(context.getPackageName(), "com.excelliance.kxqp.gs.ui.question.CommonWebViewActivity"));
intent.putExtra(SocialConstants.PARAM_URL, PermissionPromptUtil.PRIVACY_PROTOCOL_URL);
context.startActivity(intent);
}
@Override
public void updateDrawState(@NonNull TextPaint textPaint) {
super.updateDrawState(textPaint);
textPaint.setUnderlineText(true);
textPaint.setStrokeWidth(2.0f);
textPaint.setStyle(Paint.Style.FILL_AND_STROKE);
textPaint.setColor(w.l(context, "new_main_color"));
}
};
int indexOf = format.indexOf("《");
if (indexOf >= 0 && indexOf < format.length() - 1) {
spannableString.setSpan(clickableSpan, indexOf, e2.length() + indexOf, 17);
}
ClickableSpan clickableSpan2 = new ClickableSpan() {
@Override
public void onClick(@NonNull View view) {
Intent intent = new Intent();
intent.setComponent(new ComponentName(context.getPackageName(), "com.excelliance.kxqp.gs.ui.question.CommonWebViewActivity"));
intent.putExtra(SocialConstants.PARAM_URL, PermissionPromptUtil.SERVICE_PROTOCOL_URL);
context.startActivity(intent);
}
@Override
public void updateDrawState(@NonNull TextPaint textPaint) {
super.updateDrawState(textPaint);
textPaint.setUnderlineText(true);
textPaint.setStrokeWidth(2.0f);
textPaint.setStyle(Paint.Style.FILL_AND_STROKE);
textPaint.setColor(w.l(context, "new_main_color"));
}
};
int lastIndexOf = format.lastIndexOf("《");
if (lastIndexOf >= 0 && lastIndexOf < format.length() - 1) {
spannableString.setSpan(clickableSpan2, lastIndexOf, e3.length() + lastIndexOf, 17);
}
textView.setHighlightColor(context.getResources().getColor(android.R.color.transparent));
textView.setText(spannableString);
textView.setMovementMethod(LinkMovementMethod.getInstance());
Button button = (Button) layout.findViewById(ResourceUtil.getId(context, "btn_agree_continue"));
if (button != null) {
if (Build.VERSION.SDK_INT >= 16) {
button.setBackground(w.k(context, "bg_custom_dialog_button2_new_store"));
} else {
button.setBackgroundDrawable(w.k(context, "bg_custom_dialog_button2_new_store"));
}
button.setText(w.e(context, "agree"));
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
InitHelper.putPrivacyAgreed(context.getApplicationContext(), true);
PermissionPromptUtil.this.mDialog.dismiss();
com.excelliance.kxqp.helper.a.a().a(BiEventParamFirstStartAppProcess.OPERATE_OPTION.VALUE_OPERATE_OPTION_AGREE, BiEventParamFirstStartAppProcess.OPERATE_OPTION_VALUE.VALUE_OPERATE_OPTION_AGREE_CLICK_ADREE);
}
});
CheckBox checkBox = (CheckBox) layout.findViewById(ResourceUtil.getId(context, "agree_cb"));
if (checkBox != null) {
checkBox.setVisibility(8);
}
((Button) layout.findViewById(ResourceUtil.getId(context, "btn_disagree"))).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
com.excelliance.kxqp.helper.a.a().a(BiEventParamFirstStartAppProcess.OPERATE_OPTION.VALUE_OPERATE_OPTION_AGREE, BiEventParamFirstStartAppProcess.OPERATE_OPTION_VALUE.VALUE_OPERATE_OPTION_AGREE_CLICK_CANCEL);
Process.killProcess(Process.myPid());
}
});
TextView textView2 = (TextView) layout.findViewById(ResourceUtil.getId(context, "permission_privacy_tv"));
textView2.setText(Html.fromHtml(w.e(context, "permission_paragraph_majia_1")));
textView2.setMovementMethod(LinkMovementMethod.getInstance());
CharSequence text = textView2.getText();
if (text instanceof Spannable) {
int length = text.length();
Spannable spannable = (Spannable) textView2.getText();
URLSpan[] uRLSpanArr = (URLSpan[]) spannable.getSpans(0, length, URLSpan.class);
StyleSpan[] styleSpanArr = (StyleSpan[]) spannable.getSpans(0, length, StyleSpan.class);
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(text);
spannableStringBuilder.clearSpans();
for (final URLSpan uRLSpan : uRLSpanArr) {
spannableStringBuilder.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View view) {
Intent intent = new Intent();
intent.setComponent(new ComponentName(context.getPackageName(), "com.excelliance.kxqp.gs.ui.question.CommonWebViewActivity"));
intent.putExtra(SocialConstants.PARAM_URL, uRLSpan.getURL());
context.startActivity(intent);
}
@Override
public void updateDrawState(@NonNull TextPaint textPaint) {
super.updateDrawState(textPaint);
textPaint.setColor(w.l(context, "new_main_color"));
}
}, spannable.getSpanStart(uRLSpan), spannable.getSpanEnd(uRLSpan), 33);
}
for (StyleSpan styleSpan : styleSpanArr) {
spannableStringBuilder.setSpan(new StyleSpan(1), spannable.getSpanStart(styleSpan), spannable.getSpanEnd(styleSpan), 33);
}
textView2.setText(spannableStringBuilder);
}
showDialog();
}
public void setDismissListener(DialogInterface.OnDismissListener onDismissListener) {
if (this.mDialog != null) {
this.mDialog.setOnDismissListener(onDismissListener);
}
}
private void showDialog() {
try {
if (this.mDialog == null || this.mDialog.isShowing()) {
return;
}
this.mDialog.show();
} catch (Exception e) {
Log.e(TAG, "showDialog()", e);
this.mDialog = null;
}
}
public void dismissDialog() {
try {
if (this.mDialog == null || !this.mDialog.isShowing()) {
return;
}
this.mDialog.dismiss();
this.mDialog = null;
} catch (Exception e) {
Log.e(TAG, "dismissDialog()", e);
this.mDialog = null;
}
}
public boolean isTargetChid(Context context) {
int mainChId = GameUtilBuild.getMainChId(context);
int subChId = GameUtilBuild.getSubChId(context);
Log.d(TAG, "isTargetChid MainChid:" + mainChId + " subChid:" + subChId);
return mainChId == 610022 && subChId == 3;
}
}