Always preserve payments entropy when setting state

This commit is contained in:
Nora Trapp 2021-11-30 12:53:51 -08:00
parent bde230dd49
commit cbd424636e

View File

@ -157,10 +157,15 @@ public class PaymentsHelperImpl: NSObject, PaymentsHelperSwift {
updateStorageService: Bool,
transaction: SDSAnyWriteTransaction) {
let oldPaymentsState = self.paymentsState
var newPaymentsState = newPaymentsState
guard !newPaymentsState.isEnabled || canEnablePayments else {
owsFailDebug("Payments cannot be enabled.")
return
if newPaymentsState.isEnabled && !self.canEnablePayments {
// If we cannot enable payments, ensure that any new entropy is always preserved.
if let paymentsEntropy = newPaymentsState.paymentsEntropy {
newPaymentsState = .disabledWithPaymentsEntropy(paymentsEntropy: paymentsEntropy)
} else {
newPaymentsState = .disabled
}
}
guard newPaymentsState != oldPaymentsState else {
Logger.verbose("Ignoring redundant change.")