From 95c0bc6052259f70fa377d5b26fcaaff146c0c30 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 27 Feb 2026 14:48:59 -0400 Subject: [PATCH] Update internal and local backup access. --- .../java/org/thoughtcrime/securesms/util/Environment.kt | 7 ++++++- .../java/org/thoughtcrime/securesms/util/RemoteConfig.kt | 2 +- .../securesms/groups/GroupManagerV2Test_edit.kt | 2 ++ build.gradle.kts | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/Environment.kt b/app/src/main/java/org/thoughtcrime/securesms/util/Environment.kt index f0465c3845..5bf9fb6091 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/Environment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/Environment.kt @@ -13,6 +13,11 @@ object Environment { const val IS_WEBSITE: Boolean = BuildConfig.BUILD_DISTRIBUTION_TYPE == "website" const val IS_INSTRUMENTATION: Boolean = BuildConfig.BUILD_VARIANT_TYPE == "Instrumentation" || BuildConfig.BUILD_VARIANT_TYPE == "Benchmark" const val IS_BENCHMARK: Boolean = BuildConfig.BUILD_VARIANT_TYPE == "Benchmark" + const val IS_PERF: Boolean = BuildConfig.BUILD_VARIANT_TYPE == "Perf" + + fun isInternal(): Boolean { + return !IS_INSTRUMENTATION && (BuildConfig.DEBUG || IS_NIGHTLY || IS_PERF || IS_STAGING) + } object Backups { @JvmStatic @@ -22,7 +27,7 @@ object Environment { @JvmStatic fun isNewFormatSupportedForLocalBackup(): Boolean { - return BuildConfig.DEBUG || IS_NIGHTLY + return isInternal() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt b/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt index e8fce78370..9a12e02ee5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt @@ -590,7 +590,7 @@ object RemoteConfig { key = "android.internalUser", hotSwappable = true ) { value -> - value.asBoolean(false) || Environment.IS_NIGHTLY || Environment.IS_STAGING + value.asBoolean(false) || Environment.isInternal() } /** The raw client expiration JSON string. */ diff --git a/app/src/test/java/org/thoughtcrime/securesms/groups/GroupManagerV2Test_edit.kt b/app/src/test/java/org/thoughtcrime/securesms/groups/GroupManagerV2Test_edit.kt index aa0f5ee7f6..baa0b143d8 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/groups/GroupManagerV2Test_edit.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/groups/GroupManagerV2Test_edit.kt @@ -8,6 +8,7 @@ import assertk.assertions.isNull import io.mockk.every import io.mockk.mockk import io.mockk.mockkObject +import io.mockk.mockkStatic import io.mockk.slot import io.mockk.unmockkAll import io.mockk.verify @@ -80,6 +81,7 @@ class GroupManagerV2Test_edit { @Before fun setUp() { mockkObject(RemoteConfig) + mockkStatic(RemoteConfig::class) mockkObject(SignalStore) every { RemoteConfig.internalUser } returns false diff --git a/build.gradle.kts b/build.gradle.kts index 6bc49d742c..10ce6c4166 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -79,7 +79,7 @@ tasks.register("qa") { // Wire up QA dependencies after all projects are evaluated gradle.projectsEvaluated { - val appTestTask = tasks.findByPath(":Signal-Android:testPlayProdPerfUnitTest") + val appTestTask = tasks.findByPath(":Signal-Android:testPlayProdReleaseUnitTest") val appLintTask = tasks.findByPath(":Signal-Android:lintPlayProdRelease") tasks.named("qa") {