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;
    }
}