Include captcha info in support email template.

This commit is contained in:
Greyson Parrelli
2026-03-31 15:29:03 -04:00
parent aeb9054a63
commit 1f02fba696
4 changed files with 19 additions and 1 deletions

View File

@@ -47,6 +47,7 @@ class MiscellaneousValues internal constructor(store: KeyValueStore) : SignalSto
private const val HAS_KEY_TRANSPARENCY_FAILURE = "misc.has_key_transparency_failure"
private const val HAS_SEEN_KEY_TRANSPARENCY_FAILURE = "misc.has_seen_key_transparency_failure"
private const val CAMERA_FACING_FRONT = "misc.camera_facing_front"
private const val CAPTCHA_LAST_VIEWED_AT = "misc.captcha_last_viewed_at"
private const val COMPLETED_COLLAPSED_EVENTS_MIGRATION = "misc.completed_collapsed_events_migration"
}
@@ -318,4 +319,9 @@ class MiscellaneousValues internal constructor(store: KeyValueStore) : SignalSto
var isCameraFacingFront: Boolean by booleanValue(CAMERA_FACING_FRONT, true)
var completedCollapsedEventsMigration: Boolean by booleanValue(COMPLETED_COLLAPSED_EVENTS_MIGRATION, false)
/**
* The last time the user viewed the captcha/recaptcha proof activity.
*/
var captchaLastViewedAt: Long by longValue(CAPTCHA_LAST_VIEWED_AT, 0)
}

View File

@@ -69,6 +69,7 @@ public class RecaptchaProofActivity extends PassphraseRequiredActivity {
}
});
SignalStore.misc().setCaptchaLastViewedAt(System.currentTimeMillis());
webView.loadUrl(BuildConfig.RECAPTCHA_PROOF_URL);
}

View File

@@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
public final class SupportEmailUtil {
@@ -68,7 +69,9 @@ public final class SupportEmailUtil {
"\n" +
context.getString(R.string.SupportEmailUtil_registration_lock) + " " + getRegistrationLockEnabled() +
"\n" +
context.getString(R.string.SupportEmailUtil_locale) + " " + Locale.getDefault().toString();
context.getString(R.string.SupportEmailUtil_locale) + " " + Locale.getDefault().toString() +
"\n" +
context.getString(R.string.SupportEmailUtil_challenge_received) + " " + getChallengeReceived();
}
private static CharSequence getDeviceInfo() {
@@ -90,4 +93,11 @@ public final class SupportEmailUtil {
private static CharSequence getRegistrationLockEnabled() {
return String.valueOf(SignalStore.svr().isRegistrationLockEnabled());
}
private static String getChallengeReceived() {
long captchaLastViewedAt = SignalStore.misc().getCaptchaLastViewedAt();
boolean receivedRecently = captchaLastViewedAt > 0 && (System.currentTimeMillis() - captchaLastViewedAt) <= TimeUnit.DAYS.toMillis(3);
return receivedRecently ? "yes" : "no";
}
}

View File

@@ -3081,6 +3081,7 @@
<string name="SupportEmailUtil_signal_package" translatable="false">Signal package:</string>
<string name="SupportEmailUtil_registration_lock">Registration lock:</string>
<string name="SupportEmailUtil_locale" translatable="false">Locale:</string>
<string name="SupportEmailUtil_challenge_received" translatable="false">Challenge Received:</string>
<!-- ThreadRecord -->
<string name="ThreadRecord_group_updated">Group updated</string>