mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-21 02:08:40 +00:00
Allow retries for redemption from server failure. Add internal preference to enqueue job.
This commit is contained in:
committed by
Greyson Parrelli
parent
0bac08dcc4
commit
00a8565e91
@@ -24,8 +24,11 @@ import org.thoughtcrime.securesms.jobs.RefreshOwnProfileJob
|
||||
import org.thoughtcrime.securesms.jobs.RemoteConfigRefreshJob
|
||||
import org.thoughtcrime.securesms.jobs.RotateProfileKeyJob
|
||||
import org.thoughtcrime.securesms.jobs.StorageForcePushJob
|
||||
import org.thoughtcrime.securesms.jobs.SubscriptionReceiptRequestResponseJob
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.payments.DataExportUtil
|
||||
import org.thoughtcrime.securesms.util.ConversationUtil
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags
|
||||
import org.thoughtcrime.securesms.util.concurrent.SimpleTask
|
||||
|
||||
class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__internal_preferences) {
|
||||
@@ -317,6 +320,17 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (FeatureFlags.donorBadges() && SignalStore.donationsValues().getSubscriber() != null) {
|
||||
sectionHeaderPref(R.string.preferences__internal_badges)
|
||||
|
||||
clickPref(
|
||||
title = DSLSettingsText.from(R.string.preferences__internal_badges_enqueue_redemption),
|
||||
onClick = {
|
||||
enqueueSubscriptionRedemption()
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -399,4 +413,8 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
|
||||
LocalMetricsDatabase.getInstance(ApplicationDependencies.getApplication()).clear()
|
||||
Toast.makeText(context, "Cleared all local metrics state.", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
|
||||
private fun enqueueSubscriptionRedemption() {
|
||||
SubscriptionReceiptRequestResponseJob.enqueueSubscriptionContinuation()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,8 +125,8 @@ public class BoostReceiptRequestResponseJob extends BaseJob {
|
||||
if (response.getStatus() == 204) {
|
||||
Log.w(TAG, "User does not have receipts available to exchange. Exiting.", response.getApplicationError().get());
|
||||
} else {
|
||||
Log.w(TAG, "Encountered a permanent failure: " + response.getStatus(), response.getApplicationError().get());
|
||||
throw new Exception(response.getApplicationError().get());
|
||||
Log.w(TAG, "Encountered a server failure: " + response.getStatus(), response.getApplicationError().get());
|
||||
throw new RetryableException();
|
||||
}
|
||||
} else if (response.getResult().isPresent()) {
|
||||
ReceiptCredential receiptCredential = getReceiptCredential(response.getResult().get());
|
||||
|
||||
@@ -140,8 +140,8 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob {
|
||||
if (response.getStatus() == 204) {
|
||||
Log.w(TAG, "User does not have receipts available to exchange. Exiting.", response.getApplicationError().get());
|
||||
} else {
|
||||
Log.w(TAG, "Encountered a permanent failure: " + response.getStatus(), response.getApplicationError().get());
|
||||
throw new Exception(response.getApplicationError().get());
|
||||
Log.w(TAG, "Encountered a server failure response: " + response.getStatus(), response.getApplicationError().get());
|
||||
throw new RetryableException();
|
||||
}
|
||||
} else if (response.getResult().isPresent()) {
|
||||
ReceiptCredential receiptCredential = getReceiptCredential(response.getResult().get());
|
||||
@@ -215,6 +215,12 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob {
|
||||
boolean isExpirationInTheFuture = receiptCredential.getReceiptExpirationTime() > now;
|
||||
boolean isExpirationWithinAMonth = receiptCredential.getReceiptExpirationTime() < monthFromNow;
|
||||
|
||||
Log.d(TAG, "Credential validation: isSameLevel(" + isSameLevel +
|
||||
") isExpirationAfterSub(" + isExpirationAfterSub +
|
||||
") isExpiration86400(" + isExpiration86400 +
|
||||
") isExpirationInTheFuture(" + isExpirationInTheFuture +
|
||||
") isExpirationWithinAMonth(" + isExpirationWithinAMonth + ")");
|
||||
|
||||
return isSameLevel && isExpirationAfterSub && isExpiration86400 && isExpirationInTheFuture && isExpirationWithinAMonth;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user