|
|
@ -19,7 +19,6 @@ package org.thoughtcrime.securesms.jobmanager;
|
|
|
|
import org.thoughtcrime.securesms.jobmanager.requirements.NetworkBackoffRequirement;
|
|
|
|
import org.thoughtcrime.securesms.jobmanager.requirements.NetworkBackoffRequirement;
|
|
|
|
import org.thoughtcrime.securesms.jobmanager.requirements.NetworkRequirement;
|
|
|
|
import org.thoughtcrime.securesms.jobmanager.requirements.NetworkRequirement;
|
|
|
|
import org.thoughtcrime.securesms.jobmanager.requirements.Requirement;
|
|
|
|
import org.thoughtcrime.securesms.jobmanager.requirements.Requirement;
|
|
|
|
import org.thoughtcrime.securesms.jobs.requirements.MasterSecretRequirement;
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.jobs.requirements.NetworkOrServiceRequirement;
|
|
|
|
import org.thoughtcrime.securesms.jobs.requirements.NetworkOrServiceRequirement;
|
|
|
|
import org.thoughtcrime.securesms.jobs.requirements.SqlCipherMigrationRequirement;
|
|
|
|
import org.thoughtcrime.securesms.jobs.requirements.SqlCipherMigrationRequirement;
|
|
|
|
|
|
|
|
|
|
|
@ -36,7 +35,6 @@ public class JobParameters implements Serializable {
|
|
|
|
|
|
|
|
|
|
|
|
private final List<Requirement> requirements;
|
|
|
|
private final List<Requirement> requirements;
|
|
|
|
private final boolean requiresNetwork;
|
|
|
|
private final boolean requiresNetwork;
|
|
|
|
private final boolean requiresMasterSecret;
|
|
|
|
|
|
|
|
private final boolean requiresSqlCipher;
|
|
|
|
private final boolean requiresSqlCipher;
|
|
|
|
private final int retryCount;
|
|
|
|
private final int retryCount;
|
|
|
|
private final long retryUntil;
|
|
|
|
private final long retryUntil;
|
|
|
@ -46,7 +44,6 @@ public class JobParameters implements Serializable {
|
|
|
|
private JobParameters(String groupId,
|
|
|
|
private JobParameters(String groupId,
|
|
|
|
boolean ignoreDuplicates,
|
|
|
|
boolean ignoreDuplicates,
|
|
|
|
boolean requiresNetwork,
|
|
|
|
boolean requiresNetwork,
|
|
|
|
boolean requiresMasterSecret,
|
|
|
|
|
|
|
|
boolean requiresSqlCipher,
|
|
|
|
boolean requiresSqlCipher,
|
|
|
|
int retryCount,
|
|
|
|
int retryCount,
|
|
|
|
long retryUntil)
|
|
|
|
long retryUntil)
|
|
|
@ -55,7 +52,6 @@ public class JobParameters implements Serializable {
|
|
|
|
this.ignoreDuplicates = ignoreDuplicates;
|
|
|
|
this.ignoreDuplicates = ignoreDuplicates;
|
|
|
|
this.requirements = Collections.emptyList();
|
|
|
|
this.requirements = Collections.emptyList();
|
|
|
|
this.requiresNetwork = requiresNetwork;
|
|
|
|
this.requiresNetwork = requiresNetwork;
|
|
|
|
this.requiresMasterSecret = requiresMasterSecret;
|
|
|
|
|
|
|
|
this.requiresSqlCipher = requiresSqlCipher;
|
|
|
|
this.requiresSqlCipher = requiresSqlCipher;
|
|
|
|
this.retryCount = retryCount;
|
|
|
|
this.retryCount = retryCount;
|
|
|
|
this.retryUntil = retryUntil;
|
|
|
|
this.retryUntil = retryUntil;
|
|
|
@ -69,10 +65,6 @@ public class JobParameters implements Serializable {
|
|
|
|
return requiresNetwork || hasNetworkRequirement(requirements);
|
|
|
|
return requiresNetwork || hasNetworkRequirement(requirements);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public boolean requiresMasterSecret() {
|
|
|
|
|
|
|
|
return requiresMasterSecret || hasMasterSecretRequirement(requirements);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean requiresSqlCipher() {
|
|
|
|
public boolean requiresSqlCipher() {
|
|
|
|
return requiresSqlCipher || hasSqlCipherRequirement(requirements);
|
|
|
|
return requiresSqlCipher || hasSqlCipherRequirement(requirements);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -92,18 +84,6 @@ public class JobParameters implements Serializable {
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private boolean hasMasterSecretRequirement(List<Requirement> requirements) {
|
|
|
|
|
|
|
|
if (requirements == null || requirements.size() == 0) return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Requirement requirement : requirements) {
|
|
|
|
|
|
|
|
if (requirement instanceof MasterSecretRequirement) {
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean hasSqlCipherRequirement(List<Requirement> requirements) {
|
|
|
|
private boolean hasSqlCipherRequirement(List<Requirement> requirements) {
|
|
|
|
if (requirements == null || requirements.size() == 0) return false;
|
|
|
|
if (requirements == null || requirements.size() == 0) return false;
|
|
|
|
|
|
|
|
|
|
|
@ -142,19 +122,12 @@ public class JobParameters implements Serializable {
|
|
|
|
private boolean ignoreDuplicates = false;
|
|
|
|
private boolean ignoreDuplicates = false;
|
|
|
|
private boolean requiresNetwork = false;
|
|
|
|
private boolean requiresNetwork = false;
|
|
|
|
private boolean requiresSqlCipher = false;
|
|
|
|
private boolean requiresSqlCipher = false;
|
|
|
|
private boolean requiresMasterSecret = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Builder withNetworkRequirement() {
|
|
|
|
public Builder withNetworkRequirement() {
|
|
|
|
requiresNetwork = true;
|
|
|
|
requiresNetwork = true;
|
|
|
|
return this;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Deprecated
|
|
|
|
|
|
|
|
public Builder withMasterSecretRequirement() {
|
|
|
|
|
|
|
|
requiresMasterSecret = true;
|
|
|
|
|
|
|
|
return this;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Deprecated
|
|
|
|
@Deprecated
|
|
|
|
public Builder withSqlCipherRequirement() {
|
|
|
|
public Builder withSqlCipherRequirement() {
|
|
|
|
requiresSqlCipher = true;
|
|
|
|
requiresSqlCipher = true;
|
|
|
@ -216,7 +189,7 @@ public class JobParameters implements Serializable {
|
|
|
|
* @return the JobParameters instance that describes a Job.
|
|
|
|
* @return the JobParameters instance that describes a Job.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public JobParameters create() {
|
|
|
|
public JobParameters create() {
|
|
|
|
return new JobParameters(groupId, ignoreDuplicates, requiresNetwork, requiresMasterSecret, requiresSqlCipher, retryCount, System.currentTimeMillis() + retryDuration);
|
|
|
|
return new JobParameters(groupId, ignoreDuplicates, requiresNetwork, requiresSqlCipher, retryCount, System.currentTimeMillis() + retryDuration);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|