Blur avatar photos from unknown senders when in message request state.

This commit is contained in:
Cody Henthorne
2021-04-23 14:42:51 -04:00
committed by GitHub
parent bf124b87fa
commit ad81b310e3
19 changed files with 546 additions and 113 deletions

View File

@@ -40,39 +40,40 @@ public class ApplicationMigrations {
private static final int LEGACY_CANONICAL_VERSION = 455;
public static final int CURRENT_VERSION = 31;
public static final int CURRENT_VERSION = 32;
private static final class Version {
static final int LEGACY = 1;
static final int RECIPIENT_ID = 2;
static final int RECIPIENT_SEARCH = 3;
static final int RECIPIENT_CLEANUP = 4;
static final int AVATAR_MIGRATION = 5;
static final int UUIDS = 6;
static final int CACHED_ATTACHMENTS = 7;
static final int STICKERS_LAUNCH = 8;
//static final int TEST_ARGON2 = 9;
static final int SWOON_STICKERS = 10;
static final int STORAGE_SERVICE = 11;
//static final int STORAGE_KEY_ROTATE = 12;
static final int REMOVE_AVATAR_ID = 13;
static final int STORAGE_CAPABILITY = 14;
static final int PIN_REMINDER = 15;
static final int VERSIONED_PROFILE = 16;
static final int PIN_OPT_OUT = 17;
static final int TRIM_SETTINGS = 18;
static final int THUMBNAIL_CLEANUP = 19;
static final int GV2 = 20;
static final int GV2_2 = 21;
static final int CDS = 22;
static final int BACKUP_NOTIFICATION = 23;
static final int GV1_MIGRATION = 24;
static final int USER_NOTIFICATION = 25;
static final int DAY_BY_DAY_STICKERS = 26;
static final int BLOB_LOCATION = 27;
static final int SYSTEM_NAME_SPLIT = 28;
static final int LEGACY = 1;
static final int RECIPIENT_ID = 2;
static final int RECIPIENT_SEARCH = 3;
static final int RECIPIENT_CLEANUP = 4;
static final int AVATAR_MIGRATION = 5;
static final int UUIDS = 6;
static final int CACHED_ATTACHMENTS = 7;
static final int STICKERS_LAUNCH = 8;
//static final int TEST_ARGON2 = 9;
static final int SWOON_STICKERS = 10;
static final int STORAGE_SERVICE = 11;
//static final int STORAGE_KEY_ROTATE = 12;
static final int REMOVE_AVATAR_ID = 13;
static final int STORAGE_CAPABILITY = 14;
static final int PIN_REMINDER = 15;
static final int VERSIONED_PROFILE = 16;
static final int PIN_OPT_OUT = 17;
static final int TRIM_SETTINGS = 18;
static final int THUMBNAIL_CLEANUP = 19;
static final int GV2 = 20;
static final int GV2_2 = 21;
static final int CDS = 22;
static final int BACKUP_NOTIFICATION = 23;
static final int GV1_MIGRATION = 24;
static final int USER_NOTIFICATION = 25;
static final int DAY_BY_DAY_STICKERS = 26;
static final int BLOB_LOCATION = 27;
static final int SYSTEM_NAME_SPLIT = 28;
// Versions 29, 30 accidentally skipped
static final int MUTE_SYNC = 31;
static final int MUTE_SYNC = 31;
static final int PROFILE_SHARING_UPDATE = 32;
}
/**
@@ -307,6 +308,10 @@ public class ApplicationMigrations {
jobs.put(Version.MUTE_SYNC, new StorageServiceMigrationJob());
}
if (lastSeenVersion < Version.PROFILE_SHARING_UPDATE) {
jobs.put(Version.PROFILE_SHARING_UPDATE, new ProfileSharingUpdateMigrationJob());
}
return jobs;
}

View File

@@ -0,0 +1,52 @@
package org.thoughtcrime.securesms.migrations;
import androidx.annotation.NonNull;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.jobmanager.Data;
import org.thoughtcrime.securesms.jobmanager.Job;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
/**
* Updates profile sharing flag to true if conversation is pre-message request enable time.
*/
public class ProfileSharingUpdateMigrationJob extends MigrationJob {
public static final String KEY = "ProfileSharingUpdateMigrationJob";
ProfileSharingUpdateMigrationJob() {
this(new Parameters.Builder().build());
}
private ProfileSharingUpdateMigrationJob(@NonNull Parameters parameters) {
super(parameters);
}
@Override
public boolean isUiBlocking() {
return true;
}
@Override
public @NonNull String getFactoryKey() {
return KEY;
}
@Override
public void performMigration() {
long messageRequestEnableTime = SignalStore.misc().getMessageRequestEnableTime();
DatabaseFactory.getRecipientDatabase(context).markPreMessageRequestRecipientsAsProfileSharingEnabled(messageRequestEnableTime);
}
@Override
boolean shouldRetry(@NonNull Exception e) {
return false;
}
public static class Factory implements Job.Factory<ProfileSharingUpdateMigrationJob> {
@Override
public @NonNull ProfileSharingUpdateMigrationJob create(@NonNull Parameters parameters, @NonNull Data data) {
return new ProfileSharingUpdateMigrationJob(parameters);
}
}
}