Add new My Story privacy settings.

This commit is contained in:
Cody Henthorne
2022-06-24 10:51:26 -04:00
parent ebc556801e
commit 9bc25132c3
58 changed files with 935 additions and 242 deletions

View File

@@ -102,9 +102,10 @@ public class ApplicationMigrations {
static final int PNI_IDENTITY_3 = 58;
static final int STORY_DISTRIBUTION_LIST_SYNC = 59;
static final int EMOJI_VERSION_7 = 60;
static final int MY_STORY_PRIVACY_MODE = 61;
}
public static final int CURRENT_VERSION = 60;
public static final int CURRENT_VERSION = 61;
/**
* This *must* be called after the {@link JobManager} has been instantiated, but *before* the call
@@ -446,6 +447,10 @@ public class ApplicationMigrations {
jobs.put(Version.EMOJI_VERSION_7, new EmojiDownloadMigrationJob());
}
if (lastSeenVersion < Version.MY_STORY_PRIVACY_MODE) {
jobs.put(Version.MY_STORY_PRIVACY_MODE, new SyncDistributionListsMigrationJob());
}
return jobs;
}

View File

@@ -0,0 +1,52 @@
package org.thoughtcrime.securesms.migrations;
import androidx.annotation.NonNull;
import org.thoughtcrime.securesms.database.SignalDatabase;
import org.thoughtcrime.securesms.jobmanager.Data;
import org.thoughtcrime.securesms.jobmanager.Job;
import org.thoughtcrime.securesms.storage.StorageSyncHelper;
/**
* Marks all distribution lists as needing to be synced with storage service.
*/
public final class SyncDistributionListsMigrationJob extends MigrationJob {
public static final String KEY = "SyncDistributionListsMigrationJob";
SyncDistributionListsMigrationJob() {
this(new Parameters.Builder().build());
}
private SyncDistributionListsMigrationJob(@NonNull Parameters parameters) {
super(parameters);
}
@Override
public boolean isUiBlocking() {
return false;
}
@Override
public @NonNull String getFactoryKey() {
return KEY;
}
@Override
public void performMigration() {
SignalDatabase.recipients().markNeedsSync(SignalDatabase.distributionLists().getAllListRecipients());
StorageSyncHelper.scheduleSyncForDataChange();
}
@Override
boolean shouldRetry(@NonNull Exception e) {
return false;
}
public static class Factory implements Job.Factory<SyncDistributionListsMigrationJob> {
@Override
public @NonNull SyncDistributionListsMigrationJob create(@NonNull Parameters parameters, @NonNull Data data) {
return new SyncDistributionListsMigrationJob(parameters);
}
}
}