Set discoverable account attribute.

This commit is contained in:
Alan Evans
2020-09-04 16:59:24 -03:00
committed by Cody Henthorne
parent bcd27355f9
commit 43ed9e7310
8 changed files with 45 additions and 14 deletions

View File

@@ -71,18 +71,22 @@ public class RefreshAttributesJob extends BaseJob {
registrationLockV1 = TextSecurePreferences.getDeprecatedV1RegistrationLockPin(context);
}
boolean phoneNumberDiscoverable = SignalStore.phoneNumberPrivacy().getPhoneNumberListingMode().isDiscoverable();
SignalServiceProfile.Capabilities capabilities = AppCapabilities.getCapabilities(kbsValues.hasPin() && !kbsValues.hasOptedOut());
Log.i(TAG, "Calling setAccountAttributes() reglockV1? " + !TextUtils.isEmpty(registrationLockV1) + ", reglockV2? " + !TextUtils.isEmpty(registrationLockV2) + ", pin? " + kbsValues.hasPin() +
"\n Phone number discoverable : " + phoneNumberDiscoverable +
"\n Capabilities:" +
"\n Storage? " + capabilities.isStorage() +
"\n GV2? " + capabilities.isGv2() +
"\n UUID? " + capabilities.isUuid()) ;
"\n UUID? " + capabilities.isUuid());
SignalServiceAccountManager signalAccountManager = ApplicationDependencies.getSignalServiceAccountManager();
signalAccountManager.setAccountAttributes(null, registrationId, fetchesMessages,
registrationLockV1, registrationLockV2,
unidentifiedAccessKey, universalUnidentifiedAccess,
capabilities);
capabilities,
phoneNumberDiscoverable);
}
@Override

View File

@@ -81,6 +81,14 @@ public final class PhoneNumberPrivacyValues extends SignalStoreValues {
*/
public enum PhoneNumberListingMode {
LISTED,
UNLISTED
UNLISTED;
public boolean isDiscoverable() {
return this == LISTED;
}
public boolean isUnlisted() {
return this == UNLISTED;
}
}
}

View File

@@ -599,6 +599,7 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
phoneNumberPrivacyValues.setPhoneNumberListingMode(phoneNumberListingMode);
Log.i(TAG, String.format("PhoneNumberListingMode changed to %s. Scheduling storage value sync", phoneNumberListingMode));
StorageSyncHelper.scheduleSyncForDataChange();
ApplicationDependencies.getJobManager().add(new RefreshAttributesJob());
initializePhoneNumberPrivacyWhoCanFindSummary();
})
.setNegativeButton(android.R.string.cancel, null)

View File

@@ -20,6 +20,7 @@ import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.jobmanager.JobManager;
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
import org.thoughtcrime.securesms.jobs.RotateCertificateJob;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.pin.PinState;
import org.thoughtcrime.securesms.push.AccountManagerFactory;
@@ -220,7 +221,8 @@ public final class CodeVerificationRequest {
registrationLockV2,
unidentifiedAccessKey,
universalUnidentifiedAccess,
AppCapabilities.getCapabilities(true));
AppCapabilities.getCapabilities(true),
SignalStore.phoneNumberPrivacy().getPhoneNumberListingMode().isDiscoverable());
UUID uuid = UuidUtil.parseOrThrow(response.getUuid());
boolean hasPin = response.isStorageCapable();

View File

@@ -399,7 +399,7 @@ public final class StorageSyncHelper {
.setReadReceiptsEnabled(TextSecurePreferences.isReadReceiptsEnabled(context))
.setSealedSenderIndicatorsEnabled(TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(context))
.setLinkPreviewsEnabled(SignalStore.settings().isLinkPreviewsEnabled())
.setUnlistedPhoneNumber(SignalStore.phoneNumberPrivacy().getPhoneNumberListingMode() == PhoneNumberPrivacyValues.PhoneNumberListingMode.UNLISTED)
.setUnlistedPhoneNumber(SignalStore.phoneNumberPrivacy().getPhoneNumberListingMode().isUnlisted())
.setPhoneNumberSharingMode(localToRemotePhoneNumberSharingMode(SignalStore.phoneNumberPrivacy().getPhoneNumberSharingMode()))
.build();