mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-25 09:17:44 +00:00
0d06d50a65
Also, switch to Builder for JobManager construction.
40 lines
1.2 KiB
Java
40 lines
1.2 KiB
Java
package org.thoughtcrime.securesms.jobs;
|
|
|
|
import android.content.Context;
|
|
|
|
import org.thoughtcrime.securesms.crypto.MasterSecret;
|
|
import org.thoughtcrime.securesms.service.KeyCachingService;
|
|
import org.whispersystems.jobqueue.JobParameters;
|
|
|
|
public abstract class MasterSecretJob extends ContextJob {
|
|
|
|
public MasterSecretJob(Context context, JobParameters parameters) {
|
|
super(context, parameters);
|
|
}
|
|
|
|
@Override
|
|
public void onRun() throws Exception {
|
|
MasterSecret masterSecret = getMasterSecret();
|
|
onRun(masterSecret);
|
|
}
|
|
|
|
@Override
|
|
public boolean onShouldRetry(Exception exception) {
|
|
if (exception instanceof RequirementNotMetException) return true;
|
|
return onShouldRetryThrowable(exception);
|
|
}
|
|
|
|
public abstract void onRun(MasterSecret masterSecret) throws Exception;
|
|
public abstract boolean onShouldRetryThrowable(Exception exception);
|
|
|
|
private MasterSecret getMasterSecret() throws RequirementNotMetException {
|
|
MasterSecret masterSecret = KeyCachingService.getMasterSecret(context);
|
|
|
|
if (masterSecret == null) throw new RequirementNotMetException();
|
|
else return masterSecret;
|
|
}
|
|
|
|
protected static class RequirementNotMetException extends Exception {}
|
|
|
|
}
|