+ final var payments = remote.payments != null && remote.payments.entropy.size() > 0
+ ? remote.payments
+ : local.payments;
+
+ final ByteString donationSubscriberId;
+ final String donationSubscriberCurrencyCode;
+
+ if (remote.subscriberId.size() > 0) {
+ donationSubscriberId = remote.subscriberId;
+ donationSubscriberCurrencyCode = remote.subscriberCurrencyCode;
+ } else {
+ donationSubscriberId = local.subscriberId;
+ donationSubscriberCurrencyCode = local.subscriberCurrencyCode;
+ }
+
+ final ByteString backupsSubscriberId;
+ final IAPSubscriptionId backupsPurchaseToken;
+
+ final var remoteBackupSubscriberData = remote.backupSubscriberData;
+ if (remoteBackupSubscriberData != null && remoteBackupSubscriberData.subscriberId.size() > 0) {
+ backupsSubscriberId = remoteBackupSubscriberData.subscriberId;
+ backupsPurchaseToken = IAPSubscriptionId.Companion.from(remoteBackupSubscriberData);
+ } else {
+ backupsSubscriberId = local.backupSubscriberData != null
+ ? local.backupSubscriberData.subscriberId
+ : ByteString.EMPTY;
+ backupsPurchaseToken = IAPSubscriptionId.Companion.from(local.backupSubscriberData);
+ }
+