Add username education screen.

This commit is contained in:
Alex Hart
2023-02-01 13:39:53 -04:00
committed by Greyson Parrelli
parent dae69744c2
commit 4f387cf8d9
16 changed files with 774 additions and 386 deletions

View File

@@ -12,7 +12,8 @@ import java.util.List;
public final class PhoneNumberPrivacyValues extends SignalStoreValues {
public static final String SHARING_MODE = "phoneNumberPrivacy.sharingMode";
public static final String LISTING_MODE = "phoneNumberPrivacy.listingMode";
public static final String LISTING_MODE = "phoneNumberPrivacy.listingMode";
public static final String LISTING_TIMESTAMP = "phoneNumberPrivacy.listingMode.timestamp";
private static final Collection<CertificateType> REGULAR_CERTIFICATE = Collections.singletonList(CertificateType.UUID_AND_E164);
private static final Collection<CertificateType> PRIVACY_CERTIFICATE = Collections.singletonList(CertificateType.UUID_ONLY);
@@ -32,7 +33,7 @@ public final class PhoneNumberPrivacyValues extends SignalStoreValues {
@Override
@NonNull List<String> getKeysToIncludeInBackup() {
return Arrays.asList(SHARING_MODE, LISTING_MODE);
return Arrays.asList(SHARING_MODE, LISTING_MODE, LISTING_TIMESTAMP);
}
public @NonNull PhoneNumberSharingMode getPhoneNumberSharingMode() {
@@ -56,7 +57,15 @@ public final class PhoneNumberPrivacyValues extends SignalStoreValues {
}
public void setPhoneNumberListingMode(@NonNull PhoneNumberListingMode phoneNumberListingMode) {
putInteger(LISTING_MODE, phoneNumberListingMode.serialize());
getStore()
.beginWrite()
.putInteger(LISTING_MODE, phoneNumberListingMode.serialize())
.putLong(LISTING_TIMESTAMP, System.currentTimeMillis())
.apply();
}
public long getPhoneNumberListingModeTimestamp() {
return getLong(LISTING_TIMESTAMP, 0);
}
/**

View File

@@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.keyvalue;
import androidx.annotation.NonNull;
import java.util.Collections;
import java.util.Arrays;
import java.util.List;
public class UiHints extends SignalStoreValues {
@@ -14,7 +14,7 @@ public class UiHints extends SignalStoreValues {
private static final String HAS_SET_OR_SKIPPED_USERNAME_CREATION = "uihints.has_set_or_skipped_username_creation";
private static final String NEVER_DISPLAY_PULL_TO_FILTER_TIP = "uihints.never_display_pull_to_filter_tip";
private static final String HAS_SEEN_SCHEDULED_MESSAGES_INFO_ONCE = "uihints.has_seen_scheduled_messages_info_once";
private static final String HAS_SEEN_USERNAME_EDUCATION = "uihints.has_seen_username_education";
UiHints(@NonNull KeyValueStore store) {
super(store);
}
@@ -26,7 +26,7 @@ public class UiHints extends SignalStoreValues {
@Override
@NonNull List<String> getKeysToIncludeInBackup() {
return Collections.singletonList(NEVER_DISPLAY_PULL_TO_FILTER_TIP);
return Arrays.asList(NEVER_DISPLAY_PULL_TO_FILTER_TIP, HAS_SEEN_USERNAME_EDUCATION);
}
public void markHasSeenGroupSettingsMenuToast() {
@@ -61,6 +61,19 @@ public class UiHints extends SignalStoreValues {
putBoolean(HAS_SET_OR_SKIPPED_USERNAME_CREATION, true);
}
public void markHasSeenUsernameEducation() {
putBoolean(HAS_SEEN_USERNAME_EDUCATION, true);
}
public boolean hasSeenUsernameEducation() {
return getBoolean(HAS_SEEN_USERNAME_EDUCATION, false);
}
public void clearHasSeenUsernameEducation() {
putBoolean(HAS_SEEN_USERNAME_EDUCATION, false);
}
public void resetNeverDisplayPullToRefreshCount() {
putInteger(NEVER_DISPLAY_PULL_TO_FILTER_TIP, 0);
}