Skip to content

Instantly share code, notes, and snippets.

@phamquyhai
Created December 5, 2016 07:25
Show Gist options
  • Save phamquyhai/2003501ad7c47eb6c85191d67b8d3d23 to your computer and use it in GitHub Desktop.
Save phamquyhai/2003501ad7c47eb6c85191d67b8d3d23 to your computer and use it in GitHub Desktop.
Auto Chatwork
package asia.fivejuly.chatwork;
import android.accessibilityservice.AccessibilityService;
import android.os.Bundle;
import android.support.v4.view.accessibility.AccessibilityEventCompat;
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
import android.support.v4.view.accessibility.AccessibilityRecordCompat;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import java.util.List;
import java.util.Random;
/**
* Created by haipq on 12/5/16.
*/
public class ChatWorkAccessibilityService extends AccessibilityService {
private static final String[] MSG = new String[] {
"Hồi xưa mình đẹp trai lắm\n" +
"Bây giờ đỡ nhiều rồi. ",
"Tình chỉ đẹp khi còn dang dở\n" +
"Lấy nhau về nham nhở lắm em ơi.",
"Đời trai nghèo không xu dính túi\n" +
"Biết khi nào được xơ múi gái xinh.",
"Dân thường chơi đẹp\n" +
"Đè bẹp dân chơi.",
"Hãy cho tôi tâm hồn của đá\n" +
"Để lạnh giá với tình yêu.",
"Sống phải có phong cách\n" +
"Lớn phải có lông nách.",
"Ngu không phải cái tội mà cái tội là không biết mình ngu."
};
@Override
public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(accessibilityEvent);
AccessibilityNodeInfoCompat nodeInfoCompat = record.getSource();
Log("nodeInfoCompat " + nodeInfoCompat);
if (nodeInfoCompat == null || !ChatWorkApplication.isEnable) return;
// Tự động cấp quyền android M
List<AccessibilityNodeInfoCompat> list = nodeInfoCompat
.findAccessibilityNodeInfosByViewId("com.android.packageinstaller:id/permission_allow_button");
for (AccessibilityNodeInfoCompat node : list) {
Log("AccessibilityEvent: permission_allow_button " + node);
node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
// Chatwork
if (nodeInfoCompat.getPackageName().equals("jp.ecstudio.chatworkandroid")) {
Log(" Selected Chatwork App");
list = nodeInfoCompat
.findAccessibilityNodeInfosByViewId("jp.ecstudio.chatworkandroid:id/timeline_toolbar");
for (AccessibilityNodeInfoCompat node : list) {
Log(" Selected Header Box " + node.getText());
List<AccessibilityNodeInfoCompat> editTexts =
nodeInfoCompat.findAccessibilityNodeInfosByViewId("jp.ecstudio.chatworkandroid:id/edit_message");
for (AccessibilityNodeInfoCompat edittext : editTexts) {
Log(" Selected Editext " + edittext);
Bundle arguments = new Bundle();
arguments.putCharSequence(
AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,
MSG[new Random().nextInt(MSG.length)]);
edittext.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments);
}
List<AccessibilityNodeInfoCompat> buttonSends =
nodeInfoCompat.findAccessibilityNodeInfosByViewId("jp.ecstudio.chatworkandroid:id/action_select_task_and_send");
for (AccessibilityNodeInfoCompat send : buttonSends) {
Log(" Selected buttonSend " + send);
send.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
}
}
}
private void Log(String str) {
Log.d(ChatWorkAccessibilityService.class.getCanonicalName(),str);
}
@Override
public void onInterrupt() {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment