Add Delete for Me sync support.

This commit is contained in:
Cody Henthorne
2024-05-21 15:11:06 -04:00
parent 1c66da7873
commit a81a675d59
40 changed files with 2274 additions and 198 deletions

View File

@@ -70,6 +70,7 @@ public final class SettingsValues extends SignalStoreValues {
private static final String CENSORSHIP_CIRCUMVENTION_ENABLED = "settings.censorshipCircumventionEnabled";
private static final String KEEP_MUTED_CHATS_ARCHIVED = "settings.keepMutedChatsArchived";
private static final String USE_COMPACT_NAVIGATION_BAR = "settings.useCompactNavigationBar";
private static final String THREAD_TRIM_SYNC_TO_LINKED_DEVICES = "settings.storage.syncThreadTrimDeletes";
public static final int BACKUP_DEFAULT_HOUR = 2;
public static final int BACKUP_DEFAULT_MINUTE = 0;
@@ -123,7 +124,8 @@ public final class SettingsValues extends SignalStoreValues {
UNIVERSAL_EXPIRE_TIMER,
SENT_MEDIA_QUALITY,
KEEP_MUTED_CHATS_ARCHIVED,
USE_COMPACT_NAVIGATION_BAR);
USE_COMPACT_NAVIGATION_BAR,
THREAD_TRIM_SYNC_TO_LINKED_DEVICES);
}
public @NonNull LiveData<String> getOnConfigurationSettingChanged() {
@@ -162,6 +164,18 @@ public final class SettingsValues extends SignalStoreValues {
putInteger(THREAD_TRIM_LENGTH, length);
}
public boolean shouldSyncThreadTrimDeletes() {
if (!getStore().containsKey(THREAD_TRIM_SYNC_TO_LINKED_DEVICES)) {
setSyncThreadTrimDeletes(!isTrimByLengthEnabled() && getKeepMessagesDuration() == KeepMessagesDuration.FOREVER);
}
return getBoolean(THREAD_TRIM_SYNC_TO_LINKED_DEVICES, true);
}
public void setSyncThreadTrimDeletes(boolean syncDeletes) {
putBoolean(THREAD_TRIM_SYNC_TO_LINKED_DEVICES, syncDeletes);
}
public void setSignalBackupDirectory(@NonNull Uri uri) {
putString(SIGNAL_BACKUP_DIRECTORY, uri.toString());
putString(SIGNAL_LATEST_BACKUP_DIRECTORY, uri.toString());

View File

@@ -25,6 +25,7 @@ public class UiHints extends SignalStoreValues {
private static final String HAS_COMPLETED_USERNAME_ONBOARDING = "uihints.has_completed_username_onboarding";
private static final String HAS_SEEN_DOUBLE_TAP_EDIT_EDUCATION_SHEET = "uihints.has_seen_double_tap_edit_education_sheet";
private static final String DISMISSED_CONTACTS_PERMISSION_BANNER = "uihints.dismissed_contacts_permission_banner";
private static final String HAS_SEEN_DELETE_SYNC_EDUCATION_SHEET = "uihints.has_seen_delete_sync_education_sheet";
UiHints(@NonNull KeyValueStore store) {
super(store);
@@ -176,4 +177,12 @@ public class UiHints extends SignalStoreValues {
public boolean getDismissedContactsPermissionBanner() {
return getBoolean(DISMISSED_CONTACTS_PERMISSION_BANNER, false);
}
public void setHasSeenDeleteSyncEducationSheet(boolean seen) {
putBoolean(HAS_SEEN_DELETE_SYNC_EDUCATION_SHEET, seen);
}
public boolean getHasSeenDeleteSyncEducationSheet() {
return getBoolean(HAS_SEEN_DELETE_SYNC_EDUCATION_SHEET, false);
}
}