Really really delay SMS processing until sqlcipher migration completes
Blocking the SMS job on the screen lock isn't enough, since then the job races against the migration. Fixes #7390pull/1/head
parent
a0a9e412b4
commit
18aa202695
@ -0,0 +1,31 @@
|
|||||||
|
package org.thoughtcrime.securesms.jobs.requirements;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
|
import org.whispersystems.jobqueue.dependencies.ContextDependent;
|
||||||
|
import org.whispersystems.jobqueue.requirements.Requirement;
|
||||||
|
|
||||||
|
public class SqlCipherMigrationRequirement implements Requirement, ContextDependent {
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
private static final String TAG = SqlCipherMigrationRequirement.class.getSimpleName();
|
||||||
|
|
||||||
|
private transient Context context;
|
||||||
|
|
||||||
|
public SqlCipherMigrationRequirement(@NonNull Context context) {
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setContext(Context context) {
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPresent() {
|
||||||
|
return !TextSecurePreferences.getNeedsSqlCipherMigration(context);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package org.thoughtcrime.securesms.jobs.requirements;
|
||||||
|
|
||||||
|
|
||||||
|
import org.greenrobot.eventbus.EventBus;
|
||||||
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
import org.whispersystems.jobqueue.requirements.RequirementListener;
|
||||||
|
import org.whispersystems.jobqueue.requirements.RequirementProvider;
|
||||||
|
|
||||||
|
public class SqlCipherMigrationRequirementProvider implements RequirementProvider {
|
||||||
|
|
||||||
|
private RequirementListener listener;
|
||||||
|
|
||||||
|
public SqlCipherMigrationRequirementProvider() {
|
||||||
|
EventBus.getDefault().register(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setListener(RequirementListener listener) {
|
||||||
|
this.listener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
|
public void onEvent(SqlCipherNeedsMigrationEvent event) {
|
||||||
|
if (listener != null) listener.onRequirementStatusChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class SqlCipherNeedsMigrationEvent {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue