正在查看: 微商客 v2.1.2 应用的 DyToHostCommentActivity.java JAVA 源代码文件
本页面展示 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();
}
}