mirror of https://github.com/M66B/NetGuard.git
Cancel overalpping submits
This commit is contained in:
parent
e9bd13a17d
commit
c5e136d4bc
12
app/app.iml
12
app/app.iml
|
@ -42,12 +42,6 @@
|
|||
<sourceFolder url="file://$MODULE_DIR$/src/allDebug/jni" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/allDebug/renderscript" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/allDebug/shaders" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/all/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/all/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/all/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/all/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/all/debug" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/all/debug" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/testAllDebug/res" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/testAllDebug/resources" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/testAllDebug/assets" type="java-test-resource" />
|
||||
|
@ -56,6 +50,12 @@
|
|||
<sourceFolder url="file://$MODULE_DIR$/src/testAllDebug/jni" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/testAllDebug/rs" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/testAllDebug/shaders" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/all/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/all/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/all/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/all/debug" isTestSource="true" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/all/debug" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/all/debug" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/all/res" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/all/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/all/assets" type="java-resource" />
|
||||
|
|
|
@ -177,6 +177,35 @@ public class ServiceJob extends JobService {
|
|||
}
|
||||
|
||||
private static void submit(PersistableBundle bundle, Context context) {
|
||||
JobScheduler scheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
|
||||
|
||||
for (JobInfo pending : scheduler.getAllPendingJobs()) {
|
||||
String type = pending.getExtras().getString("type");
|
||||
if (type != null && type.equals(bundle.getString("type"))) {
|
||||
if (type.equals("rule")) {
|
||||
String pkg = pending.getExtras().getString("package");
|
||||
if (pkg != null && pkg.equals(bundle.getString("package"))) {
|
||||
Log.i(TAG, "Canceling id=" + pending.getId());
|
||||
scheduler.cancel(pending.getId());
|
||||
}
|
||||
} else if (type.equals("host")) {
|
||||
String pkg = pending.getExtras().getString("package");
|
||||
int version = pending.getExtras().getInt("version");
|
||||
int protocol = pending.getExtras().getInt("protocol");
|
||||
String daddr = pending.getExtras().getString("daddr");
|
||||
int dport = pending.getExtras().getInt("dport");
|
||||
if (pkg != null && pkg.equals(bundle.getString("package")) &&
|
||||
version == bundle.getInt("version") &&
|
||||
protocol == bundle.getInt("protocol") &&
|
||||
daddr != null && daddr.equals(bundle.getString("daddr")) &&
|
||||
dport == bundle.getInt("dport")) {
|
||||
Log.i(TAG, "Canceling id=" + pending.getId());
|
||||
scheduler.cancel(pending.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ComponentName serviceName = new ComponentName(context, ServiceJob.class);
|
||||
JobInfo job = new JobInfo.Builder(++id, serviceName)
|
||||
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
|
||||
|
@ -184,8 +213,6 @@ public class ServiceJob extends JobService {
|
|||
.setExtras(bundle)
|
||||
.setPersisted(true)
|
||||
.build();
|
||||
|
||||
JobScheduler scheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
|
||||
scheduler.schedule(job);
|
||||
|
||||
Log.i(TAG, "Scheduled job=" + job.getId());
|
||||
|
|
Loading…
Reference in New Issue