kopia lustrzana https://github.com/ryukoposting/Signal-Android
Don't use ordinals when persisting PNP enum.
rodzic
60dcfb2fe6
commit
40ca16bd06
|
@ -26,7 +26,7 @@ public final class PhoneNumberPrivacyValues extends SignalStoreValues {
|
||||||
void onFirstEverAppLaunch() {
|
void onFirstEverAppLaunch() {
|
||||||
// TODO [ALAN] PhoneNumberPrivacy: During registration, set the attribute to so that new registrations start out as not listed
|
// TODO [ALAN] PhoneNumberPrivacy: During registration, set the attribute to so that new registrations start out as not listed
|
||||||
//getStore().beginWrite()
|
//getStore().beginWrite()
|
||||||
// .putInteger(LISTING_MODE, PhoneNumberListingMode.UNLISTED.ordinal())
|
// .putInteger(LISTING_MODE, PhoneNumberListingMode.UNLISTED.serialize())
|
||||||
// .apply();
|
// .apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,21 +36,27 @@ public final class PhoneNumberPrivacyValues extends SignalStoreValues {
|
||||||
}
|
}
|
||||||
|
|
||||||
public @NonNull PhoneNumberSharingMode getPhoneNumberSharingMode() {
|
public @NonNull PhoneNumberSharingMode getPhoneNumberSharingMode() {
|
||||||
if (!FeatureFlags.phoneNumberPrivacy()) return PhoneNumberSharingMode.EVERYONE;
|
if (!FeatureFlags.phoneNumberPrivacy()) {
|
||||||
return PhoneNumberSharingMode.values()[getInteger(SHARING_MODE, PhoneNumberSharingMode.EVERYONE.ordinal())];
|
return PhoneNumberSharingMode.EVERYONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return PhoneNumberSharingMode.deserialize(getInteger(SHARING_MODE, PhoneNumberSharingMode.EVERYONE.serialize()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPhoneNumberSharingMode(@NonNull PhoneNumberSharingMode phoneNumberSharingMode) {
|
public void setPhoneNumberSharingMode(@NonNull PhoneNumberSharingMode phoneNumberSharingMode) {
|
||||||
putInteger(SHARING_MODE, phoneNumberSharingMode.ordinal());
|
putInteger(SHARING_MODE, phoneNumberSharingMode.serialize());
|
||||||
}
|
}
|
||||||
|
|
||||||
public @NonNull PhoneNumberListingMode getPhoneNumberListingMode() {
|
public @NonNull PhoneNumberListingMode getPhoneNumberListingMode() {
|
||||||
if (!FeatureFlags.phoneNumberPrivacy()) return PhoneNumberListingMode.LISTED;
|
if (!FeatureFlags.phoneNumberPrivacy()) {
|
||||||
return PhoneNumberListingMode.values()[getInteger(LISTING_MODE, PhoneNumberListingMode.LISTED.ordinal())];
|
return PhoneNumberListingMode.LISTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
return PhoneNumberListingMode.deserialize(getInteger(LISTING_MODE, PhoneNumberListingMode.LISTED.serialize()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPhoneNumberListingMode(@NonNull PhoneNumberListingMode phoneNumberListingMode) {
|
public void setPhoneNumberListingMode(@NonNull PhoneNumberListingMode phoneNumberListingMode) {
|
||||||
putInteger(LISTING_MODE, phoneNumberListingMode.ordinal());
|
putInteger(LISTING_MODE, phoneNumberListingMode.serialize());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -73,21 +79,41 @@ public final class PhoneNumberPrivacyValues extends SignalStoreValues {
|
||||||
return FeatureFlags.phoneNumberPrivacy() ? BOTH_CERTIFICATES : REGULAR_CERTIFICATE;
|
return FeatureFlags.phoneNumberPrivacy() ? BOTH_CERTIFICATES : REGULAR_CERTIFICATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Serialized, do not change ordinal/order
|
|
||||||
*/
|
|
||||||
public enum PhoneNumberSharingMode {
|
public enum PhoneNumberSharingMode {
|
||||||
EVERYONE,
|
EVERYONE(0),
|
||||||
CONTACTS,
|
CONTACTS(1),
|
||||||
NOBODY
|
NOBODY(2);
|
||||||
|
|
||||||
|
private final int code;
|
||||||
|
|
||||||
|
PhoneNumberSharingMode(int code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int serialize() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PhoneNumberSharingMode deserialize(int code) {
|
||||||
|
for (PhoneNumberSharingMode value : PhoneNumberSharingMode.values()) {
|
||||||
|
if (value.code == code) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new IllegalArgumentException("Unrecognized code: " + code);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Serialized, do not change ordinal/order
|
|
||||||
*/
|
|
||||||
public enum PhoneNumberListingMode {
|
public enum PhoneNumberListingMode {
|
||||||
LISTED,
|
LISTED(0),
|
||||||
UNLISTED;
|
UNLISTED(1);
|
||||||
|
|
||||||
|
private final int code;
|
||||||
|
|
||||||
|
PhoneNumberListingMode(int code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isDiscoverable() {
|
public boolean isDiscoverable() {
|
||||||
return this == LISTED;
|
return this == LISTED;
|
||||||
|
@ -96,5 +122,19 @@ public final class PhoneNumberPrivacyValues extends SignalStoreValues {
|
||||||
public boolean isUnlisted() {
|
public boolean isUnlisted() {
|
||||||
return this == UNLISTED;
|
return this == UNLISTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int serialize() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PhoneNumberListingMode deserialize(int code) {
|
||||||
|
for (PhoneNumberListingMode value : PhoneNumberListingMode.values()) {
|
||||||
|
if (value.code == code) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new IllegalArgumentException("Unrecognized code: " + code);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue