导航菜单

页面标题

页面副标题

微商客 v2.1.2 - DyToHostCommentActivity.java 源代码

正在查看: 微商客 v2.1.2 应用的 DyToHostCommentActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.jianzhen.wsk.ui.hk;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.recyclerview.widget.RecyclerView;
import com.auxiliary.library.core.NodeExecutor;
import com.auxiliary.library.node.ViewNode;
import com.auxiliary.library.node.WhileNode;
import com.auxiliary.library.node.base.INode;
import com.auxiliary.library.node.base.PageNode;
import com.auxiliary.library.service.AuxiliaryService;
import com.auxiliary.library.service.IAccessibility;
import com.auxiliary.library.util.ClassUtil;
import com.auxiliary.library.util.ViewNodeUtil;
import com.auxiliary.library.widget.ExecutorWindow;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.google.android.flexbox.FlexboxLayoutManager;
import com.jianzhen.wsk.BaseActivity;
import com.jianzhen.wsk.R;
import com.jianzhen.wsk.dialog.BaseBottomSheetDialog;
import com.jianzhen.wsk.dialog.FilterKeyDialog;
import com.jianzhen.wsk.dialog.HitDialog;
import com.jianzhen.wsk.dialog.NumDialog;
import com.jianzhen.wsk.dialog.TimeDialog;
import com.jianzhen.wsk.dialog.YearVipTipDialog;
import com.jianzhen.wsk.net.api.Constant;
import com.jianzhen.wsk.ui.FunctionPermissionManageActivity;
import com.jianzhen.wsk.utils.ScriptLoadUtil;
import com.jianzhen.wsk.utils.SharedPreferencesUtil;
import com.jianzhen.wsk.utils.Utils;
import com.umeng.analytics.MobclickAgent;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class DyToHostCommentActivity extends BaseActivity implements View.OnClickListener, BaseBottomSheetDialog.OnConfirmListener, NodeExecutor.IFilter, BaseQuickAdapter.OnItemClickListener {
    public static final String HISTORY = "wsk_history";
    public static final String TAG = "wsk_dy_comment";
    public static boolean isNotYearVip;
    public static int progressNum;
    private ExecutorWindow mExecutorWindow;
    private FilterKeyDialog mKeyFilterDialog;
    private EditText mMessageEdit;
    private EditText mNumEdit;
    private SharedPreferences mPreferences;
    private EditText mSearchEdit;
    private final String funcId = "10029";
    private Adapter mAdapter = new Adapter();
    private final Param mParam = new Param();
    private boolean isRun = false;
    private String jsonStr = "";

    public static class Param {
        public String word = "";
        public List<String> filterKey = new ArrayList();
        public int num = 0;
        public String message = "";
        public boolean isHostComment = false;
    }

    @Override
    protected int getLayoutId() {
        return R.layout.activity_dy_host_to_comment;
    }

    @Override
    protected boolean isSetBaseTitle() {
        return true;
    }

    @Override
    protected void initTitle() {
        setBaseTitle(this, "抖音批量评论");
    }

    @Override
    protected void initPageView() {
        isNotYearVip = getIntent().getBooleanExtra("isNotYearVip", false);
        TextView textView = (TextView) findViewById(R.id.not_year_vip_tip);
        textView.setVisibility(isNotYearVip ? 0 : 8);
        textView.setText("非年会员用户最多可获客" + Constant.hkNum + "人");
        this.mSearchEdit = (EditText) findViewById(R.id.ed_search_key);
        this.mMessageEdit = (EditText) findViewById(R.id.ed_message);
        this.mNumEdit = (EditText) findViewById(R.id.et_num);
        RecyclerView findViewById = findViewById(R.id.rv_history);
        FlexboxLayoutManager flexboxLayoutManager = new FlexboxLayoutManager(this);
        flexboxLayoutManager.setFlexDirection(0);
        flexboxLayoutManager.setFlexWrap(1);
        findViewById.setLayoutManager(flexboxLayoutManager);
        findViewById.setAdapter(this.mAdapter);
        SharedPreferences sharedPreferences = getSharedPreferences("wsk_history", 0);
        this.mPreferences = sharedPreferences;
        this.mAdapter.addData((Collection) new ArrayList(sharedPreferences.getStringSet("wsk_dy_comment", new HashSet())));
        this.mAdapter.setOnItemClickListener(this);
        new Bundle().putString(TimeDialog.TIME, "[3000,5000]");
        Bundle bundle = new Bundle();
        bundle.putString(FilterKeyDialog.FILTER_KEY, FilterKeyDialog.FILTER);
        FilterKeyDialog filterKeyDialog = new FilterKeyDialog(this, bundle);
        this.mKeyFilterDialog = filterKeyDialog;
        filterKeyDialog.setOnConfirmListener(this);
        findViewById(R.id.tv_start).setOnClickListener(this);
        getDyJson();
        String string = SharedPreferencesUtil.getString(this, "dyVersionCode", "");
        String str = Utils.getAppVersion(this, "com.ss.android.ugc.aweme") + "";
        if (!string.isEmpty() && !str.equals(string)) {
            new AlertDialog.Builder(this).setTitle("温馨提示").setMessage("您的抖音已升级至最新版,技术团队正全力适配中,期间部分功能体验可能会受影响。如遇任何问题,请联系客服!").setPositiveButton("知道了", (DialogInterface.OnClickListener) null).create().show();
        }
        SharedPreferencesUtil.putString(this, "dyVersionCode", str);
        if (!SharedPreferencesUtil.getBoolean(this, "dyToolsAgreement", false)) {
            Utils.showToolsAgreementTip(this, "抖音", "dyToolsAgreement");
        }
        findViewById(R.id.num_tip).setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view) {
                DyToHostCommentActivity.this.lambda$initPageView$0(view);
            }
        });
        findViewById(R.id.industry_tip).setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view) {
                DyToHostCommentActivity.this.lambda$initPageView$1(view);
            }
        });
    }

    public void lambda$initPageView$0(View view) {
        Utils.showTip(this, 3);
    }

    public void lambda$initPageView$1(View view) {
        Utils.showTip(this, 2);
    }

    @Override
    public void onConfirm(BaseBottomSheetDialog baseBottomSheetDialog, List<String> list) {
        if (baseBottomSheetDialog == this.mKeyFilterDialog) {
            this.mParam.filterKey = list;
        }
    }

    public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int i) {
        this.mSearchEdit.setText(baseQuickAdapter.getItem(i).toString());
    }

    @Override
    public void onClick(View view) {
        if (view.getId() == 2131363313) {
            if (isNotYearVip && this.isRun) {
                new YearVipTipDialog(this).show();
                return;
            }
            this.mParam.word = this.mSearchEdit.getText().toString();
            this.mParam.message = this.mMessageEdit.getText().toString();
            if (this.mParam.word.isEmpty()) {
                Toast.makeText((Context) this, (CharSequence) "请输入搜索行业", 0).show();
                return;
            }
            if (this.mParam.message.isEmpty()) {
                Toast.makeText((Context) this, (CharSequence) "请输入评论内容", 0).show();
                return;
            }
            if (this.mNumEdit.getText().toString().isEmpty()) {
                Toast.makeText((Context) this, (CharSequence) "请输入评论条数", 0).show();
                return;
            }
            this.mParam.num = Integer.parseInt(this.mNumEdit.getText().toString());
            if (this.mAdapter.getData().size() > 10) {
                this.mAdapter.remove(r5.getData().size() - 1);
            }
            this.mAdapter.addData(this.mParam.word);
            this.mPreferences.edit().putStringSet("wsk_dy_comment", new HashSet(this.mAdapter.getData())).apply();
            new HitDialog(this, this, "请确保手机安装有抖音,并已经完成登录!如未登录请先登录账号以后在进行操作。", "为确保程序稳定运行,建议将抖音升级为最新版本后使用。").show();
            return;
        }
        if (view.getId() == 2131361965) {
            if (backFromApplyPermission()) {
                MobclickAgent.onEvent(this, "start_script_10029");
                Utils.openDy(this);
                try {
                    ExecutorWindow loadDy = ScriptLoadUtil.loadDy(AuxiliaryService.getAccessibility(), "10029", "douyin_to_comment");
                    this.mExecutorWindow = loadDy;
                    loadDy.setArgs(this.mParam);
                    this.mExecutorWindow.setIFilter(new NodeExecutor.IFilter() {
                        public final List onFilter(NodeExecutor nodeExecutor, INode iNode, List list, Object obj) {
                            return DyToHostCommentActivity.this.onFilter(nodeExecutor, iNode, list, obj);
                        }
                    });
                    this.mExecutorWindow.setCallback(new DyCallback(getApplication(), this.mExecutorWindow));
                    this.mExecutorWindow.showFloatWindow();
                    this.mExecutorWindow.setIProgress(new DyCallback(getApplication(), this.mExecutorWindow));
                    this.mExecutorWindow.addStatusCallback(new NodeExecutor.StatusCallback() {
                        public void onFail(NodeExecutor nodeExecutor, Throwable th) {
                        }

                        public void onPause(NodeExecutor nodeExecutor) {
                        }

                        public void onResume(NodeExecutor nodeExecutor) {
                        }

                        public void onStart(NodeExecutor nodeExecutor) {
                            DyToHostCommentActivity.progressNum = 0;
                        }

                        public void onFinish(NodeExecutor nodeExecutor, boolean z) {
                            if (DyToHostCommentActivity.isNotYearVip) {
                                DyToHostCommentActivity.this.mExecutorWindow.setFinishMessage("抖音评论获客任务完成,本次获客数量为" + (DyToHostCommentActivity.progressNum / 2) + "人,你的免费体验已结束,继续使用请返回应用,开通会员!", true);
                            } else {
                                DyToHostCommentActivity.this.mExecutorWindow.setFinishMessage("抖音评论获客任务完成,本次获客数量为" + (DyToHostCommentActivity.progressNum / 2) + "人", true);
                            }
                            DyToHostCommentActivity.this.addFuncLimitCount("10029");
                            DyToHostCommentActivity.this.isRun = true;
                        }
                    });
                    return;
                } catch (Exception unused) {
                    Toast.makeText((Context) this, (CharSequence) "请先启动辅助服务", 0).show();
                    return;
                }
            }
            startIntent(this, FunctionPermissionManageActivity.class);
        }
    }

    public List<AccessibilityNodeInfo> onFilter(NodeExecutor nodeExecutor, INode iNode, List<AccessibilityNodeInfo> list, Object obj) {
        if ("while_node".equals(iNode.getNodeType()) && "video".equals(((WhileNode) iNode).getTag())) {
            String str = (String) ClassUtil.getFieldValue(obj, "word");
            ArrayList arrayList = new ArrayList();
            for (AccessibilityNodeInfo accessibilityNodeInfo : list) {
                CharSequence text = accessibilityNodeInfo.getText();
                if (text != null && text.toString().contains(str)) {
                    arrayList.add(accessibilityNodeInfo);
                }
            }
            return arrayList;
        }
        List list2 = (List) ClassUtil.getFieldValue(obj, "filterKey");
        ArrayList arrayList2 = new ArrayList();
        for (AccessibilityNodeInfo accessibilityNodeInfo2 : list) {
            CharSequence contentDescription = accessibilityNodeInfo2.getContentDescription();
            if (contentDescription != null) {
                String obj2 = contentDescription.toString();
                Iterator it = list2.iterator();
                while (true) {
                    if (!it.hasNext()) {
                        break;
                    }
                    if (obj2.contains((String) it.next())) {
                        arrayList2.add(accessibilityNodeInfo2);
                        break;
                    }
                }
            }
        }
        final ViewNode viewNode = new ViewNode();
        viewNode.setClassName("android.widget.FrameLayout");
        return (List) arrayList2.stream().filter(new Predicate() {
            @Override
            public final boolean test(Object obj3) {
                return DyToHostCommentActivity.lambda$onFilter$2(viewNode, (AccessibilityNodeInfo) obj3);
            }
        }).map(new Function() {
            @Override
            public final Object apply(Object obj3) {
                AccessibilityNodeInfo findOneNode;
                findOneNode = ViewNodeUtil.findOneNode((AccessibilityNodeInfo) obj3, viewNode);
                return findOneNode;
            }
        }).collect(Collectors.toList());
    }

    static boolean lambda$onFilter$2(ViewNode viewNode, AccessibilityNodeInfo accessibilityNodeInfo) {
        return ViewNodeUtil.findOneNode(accessibilityNodeInfo, viewNode) != null;
    }

    private static class DyCallback extends NodeExecutor.DefaultCallback implements NodeExecutor.IProgress {
        private ExecutorWindow mExecutorWindow;

        public DyCallback(Context context, ExecutorWindow executorWindow) {
            super(context);
            this.mExecutorWindow = executorWindow;
        }

        public boolean onNodeNotFound(PageNode pageNode, ViewNode viewNode, NodeExecutor nodeExecutor) {
            if (pageNode.getPageName() != null && pageNode.getPageName().equals("抖音搜索页")) {
                this.mExecutorWindow.setMessageShow("请先点击右上角放大镜进入搜索页面,再点击悬浮窗“继续”按钮进行下一步!");
            }
            return super.onNodeNotFound(pageNode, viewNode, nodeExecutor);
        }

        public boolean onPageFound(IAccessibility iAccessibility, PageNode pageNode, NodeExecutor nodeExecutor) {
            if ("用户手动选择或自动选择一个视频".equals(pageNode.getPageName())) {
                nodeExecutor.pause();
                this.mExecutorWindow.setMessageShow("您可以自主选取任意视频后点击悬浮窗“继续”,也可以直接点击“继续”,系统将自动按预设搜索条件顺序选取视频,随后进入抖音客户获取流程。");
                return super.onPageFound(iAccessibility, pageNode, nodeExecutor);
            }
            if ("输入评论发送".equals(pageNode.getPageName())) {
                DyToHostCommentActivity.progressNum++;
                this.mExecutorWindow.setProgress("当前已获客" + (DyToHostCommentActivity.progressNum / 2) + "/" + ((Integer) ClassUtil.getFieldValue(nodeExecutor.getArgs(), NumDialog.NUM)));
            }
            return super.onPageFound(iAccessibility, pageNode, nodeExecutor);
        }

        public boolean onProgress(IAccessibility iAccessibility, INode iNode, Object[] objArr, int i, NodeExecutor nodeExecutor) {
            if ("while_node".equals(iNode.getNodeType()) && "video".equals(((WhileNode) iNode).getTag())) {
                Integer num = (Integer) ClassUtil.getFieldValue(nodeExecutor.getArgs(), NumDialog.NUM);
                if (DyToHostCommentActivity.progressNum / 2 >= (num == null ? 1 : num.intValue())) {
                    this.mExecutorWindow.setFinishMessage("抖音评论获客任务完成,本次获客数量为" + num + "人", true);
                }
                if (DyToHostCommentActivity.isNotYearVip && DyToHostCommentActivity.progressNum / 2 >= Constant.hkNum) {
                    this.mExecutorWindow.setFinishMessage("抖音评论获客任务完成,本次获客数量为" + num + "人", true);
                }
            } else {
                this.mExecutorWindow.setProgress("当前进度...");
            }
            return true;
        }
    }

    private static class Adapter extends BaseQuickAdapter<String, BaseViewHolder> {
        public Adapter() {
            super(R.layout.item_dy_comment_history);
        }

        public void convert(BaseViewHolder baseViewHolder, String str) {
            ((TextView) baseViewHolder.itemView).setText(str);
        }

        public void addData(String str) {
            if (getData().contains(str)) {
                return;
            }
            super.addData(str);
        }
    }

    protected void onResume() {
        super.onResume();
        ExecutorWindow executorWindow = this.mExecutorWindow;
        if (executorWindow != null) {
            executorWindow.hideFloatWindow();
            this.mExecutorWindow.stop();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        ExecutorWindow executorWindow = this.mExecutorWindow;
        if (executorWindow != null) {
            executorWindow.hideFloatWindow();
            this.mExecutorWindow.stop();
        }
    }

    private void getDyJson() {
        new Thread() {
            @Override
            public void run() {
                super.run();
                try {
                    Response execute = new OkHttpClient().newCall(new Request.Builder().url("http://cdn.usfriend.cn/douyin/douyin_to_comment_host.json").build()).execute();
                    String str = "";
                    if (execute.body() != null) {
                        str = execute.body().string();
                    }
                    DyToHostCommentActivity.this.jsonStr = str;
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
}