Skip to content

Commit d9efa5a

Browse files
committed
refactor skip-by-position implementation
1 parent d14fcfb commit d9efa5a

File tree

2 files changed

+16
-21
lines changed

2 files changed

+16
-21
lines changed

app/src/main/java/com/zfdang/touchhelper/PackagePositionDescription.java

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,25 @@ public class PackagePositionDescription {
55
public String activityName;
66
public int x;
77
public int y;
8-
public int delay;
9-
public int period;
10-
public int number;
118

129
public PackagePositionDescription() {
1310
this.packageName = "";
1411
this.activityName = "";
1512
this.x = 0;
1613
this.y = 0;
17-
this.delay = 0;
18-
this.period = 0;
19-
this.number = 0;
2014
}
2115

22-
public PackagePositionDescription(String packageName, String activityName, int x, int y, int delay, int period, int number) {
16+
public PackagePositionDescription(String packageName, String activityName, int x, int y) {
2317
this.packageName = packageName;
2418
this.activityName = activityName;
2519
this.x = x;
2620
this.y = y;
27-
this.delay = delay;
28-
this.period = period;
29-
this.number = number;
3021
}
3122

3223
public PackagePositionDescription(PackagePositionDescription positionDescription) {
3324
this.packageName = positionDescription.packageName;
3425
this.activityName = positionDescription.activityName;
3526
this.x = positionDescription.x;
3627
this.y = positionDescription.y;
37-
this.delay = positionDescription.delay;
38-
this.period = positionDescription.period;
39-
this.number = positionDescription.number;
4028
}
4129
}

app/src/main/java/com/zfdang/touchhelper/TouchHelperServiceImpl.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ public class TouchHelperServiceImpl {
7575
private Set<PackageWidgetDescription> setWidgets;
7676
private PackagePositionDescription packagePositionDescription;
7777

78+
// try to click 5 times, first click after 300ms, and delayed for 500ms for future clicks
79+
static final int PackagePositionClickFirstDelay = 300;
80+
static final int PackagePositionClickRetryInterval = 500;
81+
static final int PackagePositionClickRetry = 5;
82+
7883
public TouchHelperServiceImpl(AccessibilityService service) {
7984
this.service = service;
8085
}
@@ -290,17 +295,22 @@ public void onAccessibilityEvent(AccessibilityEvent event) {
290295
}
291296

292297
// now to take different methods to skip ads
298+
299+
// first method is to skip ads by position in activity
293300
if (b_method_by_activity_position) {
294-
// Log.d(TAG, "method by position in STATE_CHANGED");
301+
// run this method for once only
302+
b_method_by_activity_position = false;
303+
295304
packagePositionDescription = mapPackagePositions.get(currentPackageName);
296305
if (packagePositionDescription != null) {
297-
// the following codes might be run multiple times
298306
ShowToastInIntentService("正在根据位置跳过广告...");
307+
308+
// try to click the position in the activity for multiple times
299309
executorService.scheduleAtFixedRate(new Runnable() {
300310
int num = 0;
301311
@Override
302312
public void run() {
303-
if (num < packagePositionDescription.number) {
313+
if (num < PackagePositionClickRetry) {
304314
if(currentActivityName.equals(packagePositionDescription.activityName)) {
305315
// current activity is null, or current activity is the target activity
306316
// Log.d(TAG, "Find skip-ad by position, simulate click now! ");
@@ -311,10 +321,7 @@ public void run() {
311321
throw new RuntimeException();
312322
}
313323
}
314-
}, packagePositionDescription.delay, packagePositionDescription.period, TimeUnit.MILLISECONDS);
315-
} else {
316-
// no customized positions for this package, don't try this method again
317-
b_method_by_activity_position = false;
324+
}, PackagePositionClickFirstDelay, PackagePositionClickRetryInterval, TimeUnit.MILLISECONDS);
318325
}
319326
}
320327

@@ -651,7 +658,7 @@ private void showActivityCustomizationDialog() {
651658

652659

653660
final PackageWidgetDescription widgetDescription = new PackageWidgetDescription();
654-
final PackagePositionDescription positionDescription = new PackagePositionDescription("", "", 0, 0, 500, 500, 6);
661+
final PackagePositionDescription positionDescription = new PackagePositionDescription("", "", 0, 0);
655662

656663
final LayoutInflater inflater = LayoutInflater.from(service);
657664
// activity customization view

0 commit comments

Comments
 (0)