mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-17 15:33:30 +01:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a2a708a24a | ||
|
|
f19e060b1c | ||
|
|
94265ac5ed | ||
|
|
e4894c55cf |
@@ -18,16 +18,3 @@ ktlint_standard_statement-wrapping = disabled
|
|||||||
internal:ktlint-suppression = disabled
|
internal:ktlint-suppression = disabled
|
||||||
ktlint_standard_unnecessary-parentheses-before-trailing-lambda = disabled
|
ktlint_standard_unnecessary-parentheses-before-trailing-lambda = disabled
|
||||||
ktlint_standard_value-parameter-comment = disabled
|
ktlint_standard_value-parameter-comment = disabled
|
||||||
ktlint_standard_class-signature = disabled
|
|
||||||
ktlint_standard_function-expression-body = disabled
|
|
||||||
|
|
||||||
# Disable ktlint on generated source code, see
|
|
||||||
# https://github.com/JLLeitschuh/ktlint-gradle/issues/746
|
|
||||||
[**/build/generated/source/**]
|
|
||||||
ktlint = disabled
|
|
||||||
|
|
||||||
[build/generated/*/main/**]
|
|
||||||
ktlint = disabled
|
|
||||||
|
|
||||||
[**/build/generated-sources/**]
|
|
||||||
ktlint = disabled
|
|
||||||
6
.github/workflows/android.yml
vendored
6
.github/workflows/android.yml
vendored
@@ -16,19 +16,19 @@ jobs:
|
|||||||
runs-on: ubuntu-latest-8-cores
|
runs-on: ubuntu-latest-8-cores
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
- name: set up JDK 17
|
- name: set up JDK 17
|
||||||
uses: actions/setup-java@v4
|
uses: actions/setup-java@v3
|
||||||
with:
|
with:
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
java-version: 17
|
java-version: 17
|
||||||
cache: gradle
|
cache: gradle
|
||||||
|
|
||||||
- name: Validate Gradle Wrapper
|
- name: Validate Gradle Wrapper
|
||||||
uses: gradle/wrapper-validation-action@v3
|
uses: gradle/wrapper-validation-action@v1
|
||||||
|
|
||||||
- name: Build with Gradle
|
- name: Build with Gradle
|
||||||
run: ./gradlew qa
|
run: ./gradlew qa
|
||||||
|
|||||||
2
.github/workflows/diffuse.yml
vendored
2
.github/workflows/diffuse.yml
vendored
@@ -8,7 +8,7 @@ permissions:
|
|||||||
pull-requests: write # to comment on PR
|
pull-requests: write # to comment on PR
|
||||||
|
|
||||||
env:
|
env:
|
||||||
NDK_VERSION: '28.0.13004108'
|
NDK_VERSION: '27.2.12479018'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
assemble-base:
|
assemble-base:
|
||||||
|
|||||||
1
.idea/codeStyles/Project.xml
generated
1
.idea/codeStyles/Project.xml
generated
@@ -16,7 +16,6 @@
|
|||||||
<option name="ALIGN_MULTILINE_TEXT_BLOCKS" value="true" />
|
<option name="ALIGN_MULTILINE_TEXT_BLOCKS" value="true" />
|
||||||
<option name="IMPORT_LAYOUT_TABLE">
|
<option name="IMPORT_LAYOUT_TABLE">
|
||||||
<value>
|
<value>
|
||||||
<package name="" withSubpackages="true" static="false" module="true" />
|
|
||||||
<package name="android" withSubpackages="true" static="false" />
|
<package name="android" withSubpackages="true" static="false" />
|
||||||
<emptyLine />
|
<emptyLine />
|
||||||
<package name="androidx" withSubpackages="true" static="false" />
|
<package name="androidx" withSubpackages="true" static="false" />
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
java openjdk-17.0.2
|
java 17.0.2
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ The form and manner of this distribution makes it eligible for export under the
|
|||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Copyright 2013-2025 Signal Messenger, LLC
|
Copyright 2013-2024 Signal Messenger, LLC
|
||||||
|
|
||||||
Licensed under the GNU AGPLv3: https://www.gnu.org/licenses/agpl-3.0.html
|
Licensed under the GNU AGPLv3: https://www.gnu.org/licenses/agpl-3.0.html
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
@file:Suppress("UnstableApiUsage")
|
|
||||||
|
|
||||||
import com.android.build.api.dsl.ManagedVirtualDevice
|
import com.android.build.api.dsl.ManagedVirtualDevice
|
||||||
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.FileInputStream
|
import java.io.FileInputStream
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
@@ -12,7 +11,6 @@ plugins {
|
|||||||
alias(libs.plugins.jetbrains.kotlin.android)
|
alias(libs.plugins.jetbrains.kotlin.android)
|
||||||
alias(libs.plugins.ktlint)
|
alias(libs.plugins.ktlint)
|
||||||
alias(libs.plugins.compose.compiler)
|
alias(libs.plugins.compose.compiler)
|
||||||
alias(libs.plugins.kotlinx.serialization)
|
|
||||||
id("androidx.navigation.safeargs")
|
id("androidx.navigation.safeargs")
|
||||||
id("kotlin-parcelize")
|
id("kotlin-parcelize")
|
||||||
id("com.squareup.wire")
|
id("com.squareup.wire")
|
||||||
@@ -22,16 +20,14 @@ plugins {
|
|||||||
|
|
||||||
apply(from = "static-ips.gradle.kts")
|
apply(from = "static-ips.gradle.kts")
|
||||||
|
|
||||||
val canonicalVersionCode = 1601
|
val canonicalVersionCode = 1522
|
||||||
val canonicalVersionName = "7.61.1"
|
val canonicalVersionName = "7.37.5"
|
||||||
val currentHotfixVersion = 0
|
val currentHotfixVersion = 2
|
||||||
val maxHotfixVersions = 100
|
val maxHotfixVersions = 100
|
||||||
|
|
||||||
val keystores: Map<String, Properties?> = mapOf("debug" to loadKeystoreProperties("keystore.debug.properties"))
|
val keystores: Map<String, Properties?> = mapOf("debug" to loadKeystoreProperties("keystore.debug.properties"))
|
||||||
|
|
||||||
val selectableVariants = listOf(
|
val selectableVariants = listOf(
|
||||||
"nightlyBackupRelease",
|
|
||||||
"nightlyBackupSpinner",
|
|
||||||
"nightlyProdSpinner",
|
"nightlyProdSpinner",
|
||||||
"nightlyProdPerf",
|
"nightlyProdPerf",
|
||||||
"nightlyProdRelease",
|
"nightlyProdRelease",
|
||||||
@@ -73,8 +69,6 @@ wire {
|
|||||||
protoPath {
|
protoPath {
|
||||||
srcDir("${project.rootDir}/libsignal-service/src/main/protowire")
|
srcDir("${project.rootDir}/libsignal-service/src/main/protowire")
|
||||||
}
|
}
|
||||||
// Handled by libsignal
|
|
||||||
prune("signalservice.DecryptionErrorMessage")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ktlint {
|
ktlint {
|
||||||
@@ -96,7 +90,6 @@ android {
|
|||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
jvmTarget = signalKotlinJvmTarget
|
jvmTarget = signalKotlinJvmTarget
|
||||||
freeCompilerArgs = listOf("-Xjvm-default=all")
|
freeCompilerArgs = listOf("-Xjvm-default=all")
|
||||||
suppressWarnings = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
keystores["debug"]?.let { properties ->
|
keystores["debug"]?.let { properties ->
|
||||||
@@ -215,10 +208,8 @@ android {
|
|||||||
buildConfigField("String[]", "SIGNAL_CDSI_IPS", rootProject.extra["cdsi_ips"] as String)
|
buildConfigField("String[]", "SIGNAL_CDSI_IPS", rootProject.extra["cdsi_ips"] as String)
|
||||||
buildConfigField("String[]", "SIGNAL_SVR2_IPS", rootProject.extra["svr2_ips"] as String)
|
buildConfigField("String[]", "SIGNAL_SVR2_IPS", rootProject.extra["svr2_ips"] as String)
|
||||||
buildConfigField("String", "SIGNAL_AGENT", "\"OWA\"")
|
buildConfigField("String", "SIGNAL_AGENT", "\"OWA\"")
|
||||||
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY_LEGACY", "\"9314436a9a144992bb3680770ea5fd7934a7ffd29257844a33763a238903d570\"")
|
buildConfigField("String", "SVR2_MRENCLAVE", "\"9314436a9a144992bb3680770ea5fd7934a7ffd29257844a33763a238903d570\"")
|
||||||
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"093be9ea32405e85ae28dbb48eb668aebeb7dbe29517b9b86ad4bec4dfe0e6a6\"")
|
buildConfigField("String", "UNIDENTIFIED_SENDER_TRUST_ROOT", "\"BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF\"")
|
||||||
buildConfigField("String", "SVR2_MRENCLAVE", "\"29cd63c87bea751e3bfd0fbd401279192e2e5c99948b4ee9437eafc4968355fb\"")
|
|
||||||
buildConfigField("String[]", "UNIDENTIFIED_SENDER_TRUST_ROOTS", "new String[]{ \"BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF\", \"BUkY0I+9+oPgDCn4+Ac6Iu813yvqkDr/ga8DzLxFxuk6\"}")
|
|
||||||
buildConfigField("String", "ZKGROUP_SERVER_PUBLIC_PARAMS", "\"AMhf5ywVwITZMsff/eCyudZx9JDmkkkbV6PInzG4p8x3VqVJSFiMvnvlEKWuRob/1eaIetR31IYeAbm0NdOuHH8Qi+Rexi1wLlpzIo1gstHWBfZzy1+qHRV5A4TqPp15YzBPm0WSggW6PbSn+F4lf57VCnHF7p8SvzAA2ZZJPYJURt8X7bbg+H3i+PEjH9DXItNEqs2sNcug37xZQDLm7X36nOoGPs54XsEGzPdEV+itQNGUFEjY6X9Uv+Acuks7NpyGvCoKxGwgKgE5XyJ+nNKlyHHOLb6N1NuHyBrZrgtY/JYJHRooo5CEqYKBqdFnmbTVGEkCvJKxLnjwKWf+fEPoWeQFj5ObDjcKMZf2Jm2Ae69x+ikU5gBXsRmoF94GXTLfN0/vLt98KDPnxwAQL9j5V1jGOY8jQl6MLxEs56cwXN0dqCnImzVH3TZT1cJ8SW1BRX6qIVxEzjsSGx3yxF3suAilPMqGRp4ffyopjMD1JXiKR2RwLKzizUe5e8XyGOy9fplzhw3jVzTRyUZTRSZKkMLWcQ/gv0E4aONNqs4P+NameAZYOD12qRkxosQQP5uux6B2nRyZ7sAV54DgFyLiRcq1FvwKw2EPQdk4HDoePrO/RNUbyNddnM/mMgj4FW65xCoT1LmjrIjsv/Ggdlx46ueczhMgtBunx1/w8k8V+l8LVZ8gAT6wkU5J+DPQalQguMg12Jzug3q4TbdHiGCmD9EunCwOmsLuLJkz6EcSYXtrlDEnAM+hicw7iergYLLlMXpfTdGxJCWJmP4zqUFeTTmsmhsjGBt7NiEB/9pFFEB3pSbf4iiUukw63Eo8Aqnf4iwob6X1QviCWuc8t0LUlT9vALgh/f2DPVOOmR0RW6bgRvc7DSF20V/omg+YBw==\"")
|
buildConfigField("String", "ZKGROUP_SERVER_PUBLIC_PARAMS", "\"AMhf5ywVwITZMsff/eCyudZx9JDmkkkbV6PInzG4p8x3VqVJSFiMvnvlEKWuRob/1eaIetR31IYeAbm0NdOuHH8Qi+Rexi1wLlpzIo1gstHWBfZzy1+qHRV5A4TqPp15YzBPm0WSggW6PbSn+F4lf57VCnHF7p8SvzAA2ZZJPYJURt8X7bbg+H3i+PEjH9DXItNEqs2sNcug37xZQDLm7X36nOoGPs54XsEGzPdEV+itQNGUFEjY6X9Uv+Acuks7NpyGvCoKxGwgKgE5XyJ+nNKlyHHOLb6N1NuHyBrZrgtY/JYJHRooo5CEqYKBqdFnmbTVGEkCvJKxLnjwKWf+fEPoWeQFj5ObDjcKMZf2Jm2Ae69x+ikU5gBXsRmoF94GXTLfN0/vLt98KDPnxwAQL9j5V1jGOY8jQl6MLxEs56cwXN0dqCnImzVH3TZT1cJ8SW1BRX6qIVxEzjsSGx3yxF3suAilPMqGRp4ffyopjMD1JXiKR2RwLKzizUe5e8XyGOy9fplzhw3jVzTRyUZTRSZKkMLWcQ/gv0E4aONNqs4P+NameAZYOD12qRkxosQQP5uux6B2nRyZ7sAV54DgFyLiRcq1FvwKw2EPQdk4HDoePrO/RNUbyNddnM/mMgj4FW65xCoT1LmjrIjsv/Ggdlx46ueczhMgtBunx1/w8k8V+l8LVZ8gAT6wkU5J+DPQalQguMg12Jzug3q4TbdHiGCmD9EunCwOmsLuLJkz6EcSYXtrlDEnAM+hicw7iergYLLlMXpfTdGxJCWJmP4zqUFeTTmsmhsjGBt7NiEB/9pFFEB3pSbf4iiUukw63Eo8Aqnf4iwob6X1QviCWuc8t0LUlT9vALgh/f2DPVOOmR0RW6bgRvc7DSF20V/omg+YBw==\"")
|
||||||
buildConfigField("String", "GENERIC_SERVER_PUBLIC_PARAMS", "\"AByD873dTilmOSG0TjKrvpeaKEsUmIO8Vx9BeMmftwUs9v7ikPwM8P3OHyT0+X3EUMZrSe9VUp26Wai51Q9I8mdk0hX/yo7CeFGJyzoOqn8e/i4Ygbn5HoAyXJx5eXfIbqpc0bIxzju4H/HOQeOpt6h742qii5u/cbwOhFZCsMIbElZTaeU+BWMBQiZHIGHT5IE0qCordQKZ5iPZom0HeFa8Yq0ShuEyAl0WINBiY6xE3H/9WnvzXBbMuuk//eRxXgzO8ieCeK8FwQNxbfXqZm6Ro1cMhCOF3u7xoX83QhpN\"")
|
buildConfigField("String", "GENERIC_SERVER_PUBLIC_PARAMS", "\"AByD873dTilmOSG0TjKrvpeaKEsUmIO8Vx9BeMmftwUs9v7ikPwM8P3OHyT0+X3EUMZrSe9VUp26Wai51Q9I8mdk0hX/yo7CeFGJyzoOqn8e/i4Ygbn5HoAyXJx5eXfIbqpc0bIxzju4H/HOQeOpt6h742qii5u/cbwOhFZCsMIbElZTaeU+BWMBQiZHIGHT5IE0qCordQKZ5iPZom0HeFa8Yq0ShuEyAl0WINBiY6xE3H/9WnvzXBbMuuk//eRxXgzO8ieCeK8FwQNxbfXqZm6Ro1cMhCOF3u7xoX83QhpN\"")
|
||||||
buildConfigField("String", "BACKUP_SERVER_PUBLIC_PARAMS", "\"AJwNSU55fsFCbgaxGRD11wO1juAs8Yr5GF8FPlGzzvdJJIKH5/4CC7ZJSOe3yL2vturVaRU2Cx0n751Vt8wkj1bozK3CBV1UokxV09GWf+hdVImLGjXGYLLhnI1J2TWEe7iWHyb553EEnRb5oxr9n3lUbNAJuRmFM7hrr0Al0F0wrDD4S8lo2mGaXe0MJCOM166F8oYRQqpFeEHfiLnxA1O8ZLh7vMdv4g9jI5phpRBTsJ5IjiJrWeP0zdIGHEssUeprDZ9OUJ14m0v61eYJMKsf59Bn+mAT2a7YfB+Don9O\"")
|
buildConfigField("String", "BACKUP_SERVER_PUBLIC_PARAMS", "\"AJwNSU55fsFCbgaxGRD11wO1juAs8Yr5GF8FPlGzzvdJJIKH5/4CC7ZJSOe3yL2vturVaRU2Cx0n751Vt8wkj1bozK3CBV1UokxV09GWf+hdVImLGjXGYLLhnI1J2TWEe7iWHyb553EEnRb5oxr9n3lUbNAJuRmFM7hrr0Al0F0wrDD4S8lo2mGaXe0MJCOM166F8oYRQqpFeEHfiLnxA1O8ZLh7vMdv4g9jI5phpRBTsJ5IjiJrWeP0zdIGHEssUeprDZ9OUJ14m0v61eYJMKsf59Bn+mAT2a7YfB+Don9O\"")
|
||||||
@@ -238,7 +229,7 @@ android {
|
|||||||
buildConfigField("String", "STRIPE_BASE_URL", "\"https://api.stripe.com/v1\"")
|
buildConfigField("String", "STRIPE_BASE_URL", "\"https://api.stripe.com/v1\"")
|
||||||
buildConfigField("String", "STRIPE_PUBLISHABLE_KEY", "\"pk_live_6cmGZopuTsV8novGgJJW9JpC00vLIgtQ1D\"")
|
buildConfigField("String", "STRIPE_PUBLISHABLE_KEY", "\"pk_live_6cmGZopuTsV8novGgJJW9JpC00vLIgtQ1D\"")
|
||||||
buildConfigField("boolean", "TRACING_ENABLED", "false")
|
buildConfigField("boolean", "TRACING_ENABLED", "false")
|
||||||
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "false")
|
buildConfigField("boolean", "MESSAGE_BACKUP_RESTORE_ENABLED", "false")
|
||||||
|
|
||||||
ndk {
|
ndk {
|
||||||
abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
|
abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
|
||||||
@@ -293,7 +284,6 @@ android {
|
|||||||
manifestPlaceholders["mapsKey"] = getMapsKey()
|
manifestPlaceholders["mapsKey"] = getMapsKey()
|
||||||
|
|
||||||
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Debug\"")
|
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Debug\"")
|
||||||
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "true")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getByName("release") {
|
getByName("release") {
|
||||||
@@ -378,7 +368,6 @@ android {
|
|||||||
buildConfigField("boolean", "MANAGES_APP_UPDATES", "true")
|
buildConfigField("boolean", "MANAGES_APP_UPDATES", "true")
|
||||||
buildConfigField("String", "APK_UPDATE_MANIFEST_URL", "\"${apkUpdateManifestUrl}\"")
|
buildConfigField("String", "APK_UPDATE_MANIFEST_URL", "\"${apkUpdateManifestUrl}\"")
|
||||||
buildConfigField("String", "BUILD_DISTRIBUTION_TYPE", "\"nightly\"")
|
buildConfigField("String", "BUILD_DISTRIBUTION_TYPE", "\"nightly\"")
|
||||||
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "true")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
create("prod") {
|
create("prod") {
|
||||||
@@ -402,10 +391,8 @@ android {
|
|||||||
buildConfigField("String", "SIGNAL_CDN3_URL", "\"https://cdn3-staging.signal.org\"")
|
buildConfigField("String", "SIGNAL_CDN3_URL", "\"https://cdn3-staging.signal.org\"")
|
||||||
buildConfigField("String", "SIGNAL_CDSI_URL", "\"https://cdsi.staging.signal.org\"")
|
buildConfigField("String", "SIGNAL_CDSI_URL", "\"https://cdsi.staging.signal.org\"")
|
||||||
buildConfigField("String", "SIGNAL_SVR2_URL", "\"https://svr2.staging.signal.org\"")
|
buildConfigField("String", "SIGNAL_SVR2_URL", "\"https://svr2.staging.signal.org\"")
|
||||||
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY_LEGACY", "\"38e01eff4fe357dc0b0e8ef7a44b4abc5489fbccba3a78780f3872c277f62bf3\"")
|
buildConfigField("String", "SVR2_MRENCLAVE", "\"38e01eff4fe357dc0b0e8ef7a44b4abc5489fbccba3a78780f3872c277f62bf3\"")
|
||||||
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"2e8cefe6e3f389d8426adb24e9b7fb7adf10902c96f06f7bbcee36277711ed91\"")
|
buildConfigField("String", "UNIDENTIFIED_SENDER_TRUST_ROOT", "\"BbqY1DzohE4NUZoVF+L18oUPrK3kILllLEJh2UnPSsEx\"")
|
||||||
buildConfigField("String", "SVR2_MRENCLAVE", "\"a75542d82da9f6914a1e31f8a7407053b99cc99a0e7291d8fbd394253e19b036\"")
|
|
||||||
buildConfigField("String[]", "UNIDENTIFIED_SENDER_TRUST_ROOTS", "new String[]{\"BbqY1DzohE4NUZoVF+L18oUPrK3kILllLEJh2UnPSsEx\", \"BYhU6tPjqP46KGZEzRs1OL4U39V5dlPJ/X09ha4rErkm\"}")
|
|
||||||
buildConfigField("String", "ZKGROUP_SERVER_PUBLIC_PARAMS", "\"ABSY21VckQcbSXVNCGRYJcfWHiAMZmpTtTELcDmxgdFbtp/bWsSxZdMKzfCp8rvIs8ocCU3B37fT3r4Mi5qAemeGeR2X+/YmOGR5ofui7tD5mDQfstAI9i+4WpMtIe8KC3wU5w3Inq3uNWVmoGtpKndsNfwJrCg0Hd9zmObhypUnSkfYn2ooMOOnBpfdanRtrvetZUayDMSC5iSRcXKpdlukrpzzsCIvEwjwQlJYVPOQPj4V0F4UXXBdHSLK05uoPBCQG8G9rYIGedYsClJXnbrgGYG3eMTG5hnx4X4ntARBgELuMWWUEEfSK0mjXg+/2lPmWcTZWR9nkqgQQP0tbzuiPm74H2wMO4u1Wafe+UwyIlIT9L7KLS19Aw8r4sPrXZSSsOZ6s7M1+rTJN0bI5CKY2PX29y5Ok3jSWufIKcgKOnWoP67d5b2du2ZVJjpjfibNIHbT/cegy/sBLoFwtHogVYUewANUAXIaMPyCLRArsKhfJ5wBtTminG/PAvuBdJ70Z/bXVPf8TVsR292zQ65xwvWTejROW6AZX6aqucUjlENAErBme1YHmOSpU6tr6doJ66dPzVAWIanmO/5mgjNEDeK7DDqQdB1xd03HT2Qs2TxY3kCK8aAb/0iM0HQiXjxZ9HIgYhbtvGEnDKW5ILSUydqH/KBhW4Pb0jZWnqN/YgbWDKeJxnDbYcUob5ZY5Lt5ZCMKuaGUvCJRrCtuugSMaqjowCGRempsDdJEt+cMaalhZ6gczklJB/IbdwENW9KeVFPoFNFzhxWUIS5ML9riVYhAtE6JE5jX0xiHNVIIPthb458cfA8daR0nYfYAUKogQArm0iBezOO+mPk5vCNWI+wwkyFCqNDXz/qxl1gAntuCJtSfq9OC3NkdhQlgYQ==\"")
|
buildConfigField("String", "ZKGROUP_SERVER_PUBLIC_PARAMS", "\"ABSY21VckQcbSXVNCGRYJcfWHiAMZmpTtTELcDmxgdFbtp/bWsSxZdMKzfCp8rvIs8ocCU3B37fT3r4Mi5qAemeGeR2X+/YmOGR5ofui7tD5mDQfstAI9i+4WpMtIe8KC3wU5w3Inq3uNWVmoGtpKndsNfwJrCg0Hd9zmObhypUnSkfYn2ooMOOnBpfdanRtrvetZUayDMSC5iSRcXKpdlukrpzzsCIvEwjwQlJYVPOQPj4V0F4UXXBdHSLK05uoPBCQG8G9rYIGedYsClJXnbrgGYG3eMTG5hnx4X4ntARBgELuMWWUEEfSK0mjXg+/2lPmWcTZWR9nkqgQQP0tbzuiPm74H2wMO4u1Wafe+UwyIlIT9L7KLS19Aw8r4sPrXZSSsOZ6s7M1+rTJN0bI5CKY2PX29y5Ok3jSWufIKcgKOnWoP67d5b2du2ZVJjpjfibNIHbT/cegy/sBLoFwtHogVYUewANUAXIaMPyCLRArsKhfJ5wBtTminG/PAvuBdJ70Z/bXVPf8TVsR292zQ65xwvWTejROW6AZX6aqucUjlENAErBme1YHmOSpU6tr6doJ66dPzVAWIanmO/5mgjNEDeK7DDqQdB1xd03HT2Qs2TxY3kCK8aAb/0iM0HQiXjxZ9HIgYhbtvGEnDKW5ILSUydqH/KBhW4Pb0jZWnqN/YgbWDKeJxnDbYcUob5ZY5Lt5ZCMKuaGUvCJRrCtuugSMaqjowCGRempsDdJEt+cMaalhZ6gczklJB/IbdwENW9KeVFPoFNFzhxWUIS5ML9riVYhAtE6JE5jX0xiHNVIIPthb458cfA8daR0nYfYAUKogQArm0iBezOO+mPk5vCNWI+wwkyFCqNDXz/qxl1gAntuCJtSfq9OC3NkdhQlgYQ==\"")
|
||||||
buildConfigField("String", "GENERIC_SERVER_PUBLIC_PARAMS", "\"AHILOIrFPXX9laLbalbA9+L1CXpSbM/bTJXZGZiuyK1JaI6dK5FHHWL6tWxmHKYAZTSYmElmJ5z2A5YcirjO/yfoemE03FItyaf8W1fE4p14hzb5qnrmfXUSiAIVrhaXVwIwSzH6RL/+EO8jFIjJ/YfExfJ8aBl48CKHgu1+A6kWynhttonvWWx6h7924mIzW0Czj2ROuh4LwQyZypex4GuOPW8sgIT21KNZaafgg+KbV7XM1x1tF3XA17B4uGUaDbDw2O+nR1+U5p6qHPzmJ7ggFjSN6Utu+35dS1sS0P9N\"")
|
buildConfigField("String", "GENERIC_SERVER_PUBLIC_PARAMS", "\"AHILOIrFPXX9laLbalbA9+L1CXpSbM/bTJXZGZiuyK1JaI6dK5FHHWL6tWxmHKYAZTSYmElmJ5z2A5YcirjO/yfoemE03FItyaf8W1fE4p14hzb5qnrmfXUSiAIVrhaXVwIwSzH6RL/+EO8jFIjJ/YfExfJ8aBl48CKHgu1+A6kWynhttonvWWx6h7924mIzW0Czj2ROuh4LwQyZypex4GuOPW8sgIT21KNZaafgg+KbV7XM1x1tF3XA17B4uGUaDbDw2O+nR1+U5p6qHPzmJ7ggFjSN6Utu+35dS1sS0P9N\"")
|
||||||
buildConfigField("String", "BACKUP_SERVER_PUBLIC_PARAMS", "\"AHYrGb9IfugAAJiPKp+mdXUx+OL9zBolPYHYQz6GI1gWjpEu5me3zVNSvmYY4zWboZHif+HG1sDHSuvwFd0QszSwuSF4X4kRP3fJREdTZ5MCR0n55zUppTwfHRW2S4sdQ0JGz7YDQIJCufYSKh0pGNEHL6hv79Agrdnr4momr3oXdnkpVBIp3HWAQ6IbXQVSG18X36GaicI1vdT0UFmTwU2KTneluC2eyL9c5ff8PcmiS+YcLzh0OKYQXB5ZfQ06d6DiINvDQLy75zcfUOniLAj0lGJiHxGczin/RXisKSR8\"")
|
buildConfigField("String", "BACKUP_SERVER_PUBLIC_PARAMS", "\"AHYrGb9IfugAAJiPKp+mdXUx+OL9zBolPYHYQz6GI1gWjpEu5me3zVNSvmYY4zWboZHif+HG1sDHSuvwFd0QszSwuSF4X4kRP3fJREdTZ5MCR0n55zUppTwfHRW2S4sdQ0JGz7YDQIJCufYSKh0pGNEHL6hv79Agrdnr4momr3oXdnkpVBIp3HWAQ6IbXQVSG18X36GaicI1vdT0UFmTwU2KTneluC2eyL9c5ff8PcmiS+YcLzh0OKYQXB5ZfQ06d6DiINvDQLy75zcfUOniLAj0lGJiHxGczin/RXisKSR8\"")
|
||||||
@@ -417,17 +404,7 @@ android {
|
|||||||
|
|
||||||
buildConfigField("String", "BUILD_ENVIRONMENT_TYPE", "\"Staging\"")
|
buildConfigField("String", "BUILD_ENVIRONMENT_TYPE", "\"Staging\"")
|
||||||
buildConfigField("String", "STRIPE_PUBLISHABLE_KEY", "\"pk_test_sngOd8FnXNkpce9nPXawKrJD00kIDngZkD\"")
|
buildConfigField("String", "STRIPE_PUBLISHABLE_KEY", "\"pk_test_sngOd8FnXNkpce9nPXawKrJD00kIDngZkD\"")
|
||||||
}
|
buildConfigField("boolean", "MESSAGE_BACKUP_RESTORE_ENABLED", "true")
|
||||||
|
|
||||||
create("backup") {
|
|
||||||
initWith(getByName("staging"))
|
|
||||||
|
|
||||||
dimension = "environment"
|
|
||||||
|
|
||||||
applicationIdSuffix = ".backup"
|
|
||||||
|
|
||||||
buildConfigField("boolean", "MANAGES_APP_UPDATES", "true")
|
|
||||||
buildConfigField("String", "BUILD_ENVIRONMENT_TYPE", "\"Backup\"")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -435,8 +412,6 @@ android {
|
|||||||
abortOnError = true
|
abortOnError = true
|
||||||
baseline = file("lint-baseline.xml")
|
baseline = file("lint-baseline.xml")
|
||||||
checkReleaseBuilds = false
|
checkReleaseBuilds = false
|
||||||
ignoreWarnings = true
|
|
||||||
quiet = true
|
|
||||||
disable += "LintError"
|
disable += "LintError"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -501,7 +476,6 @@ dependencies {
|
|||||||
implementation(project(":device-transfer"))
|
implementation(project(":device-transfer"))
|
||||||
implementation(project(":image-editor"))
|
implementation(project(":image-editor"))
|
||||||
implementation(project(":donations"))
|
implementation(project(":donations"))
|
||||||
implementation(project(":debuglogs-viewer"))
|
|
||||||
implementation(project(":contacts"))
|
implementation(project(":contacts"))
|
||||||
implementation(project(":qr"))
|
implementation(project(":qr"))
|
||||||
implementation(project(":sticky-header-grid"))
|
implementation(project(":sticky-header-grid"))
|
||||||
@@ -509,6 +483,7 @@ dependencies {
|
|||||||
implementation(project(":core-ui"))
|
implementation(project(":core-ui"))
|
||||||
|
|
||||||
implementation(libs.androidx.fragment.ktx)
|
implementation(libs.androidx.fragment.ktx)
|
||||||
|
implementation(libs.androidx.fragment.compose)
|
||||||
implementation(libs.androidx.appcompat) {
|
implementation(libs.androidx.appcompat) {
|
||||||
version {
|
version {
|
||||||
strictly("1.6.1")
|
strictly("1.6.1")
|
||||||
@@ -558,7 +533,6 @@ dependencies {
|
|||||||
}
|
}
|
||||||
implementation(libs.google.play.services.maps)
|
implementation(libs.google.play.services.maps)
|
||||||
implementation(libs.google.play.services.auth)
|
implementation(libs.google.play.services.auth)
|
||||||
implementation(libs.google.signin)
|
|
||||||
implementation(libs.bundles.media3)
|
implementation(libs.bundles.media3)
|
||||||
implementation(libs.conscrypt.android)
|
implementation(libs.conscrypt.android)
|
||||||
implementation(libs.signal.aesgcmprovider)
|
implementation(libs.signal.aesgcmprovider)
|
||||||
@@ -602,11 +576,9 @@ dependencies {
|
|||||||
implementation(libs.rxjava3.rxandroid)
|
implementation(libs.rxjava3.rxandroid)
|
||||||
implementation(libs.rxjava3.rxkotlin)
|
implementation(libs.rxjava3.rxkotlin)
|
||||||
implementation(libs.rxdogtag)
|
implementation(libs.rxdogtag)
|
||||||
implementation(libs.androidx.credentials)
|
|
||||||
implementation(libs.androidx.credentials.compat)
|
|
||||||
implementation(libs.kotlinx.serialization.json)
|
|
||||||
|
|
||||||
implementation(project(":billing"))
|
"playImplementation"(project(":billing"))
|
||||||
|
"nightlyImplementation"(project(":billing"))
|
||||||
|
|
||||||
"spinnerImplementation"(project(":spinner"))
|
"spinnerImplementation"(project(":spinner"))
|
||||||
|
|
||||||
@@ -636,10 +608,6 @@ dependencies {
|
|||||||
testImplementation(testLibs.mockk)
|
testImplementation(testLibs.mockk)
|
||||||
testImplementation(testFixtures(project(":libsignal-service")))
|
testImplementation(testFixtures(project(":libsignal-service")))
|
||||||
testImplementation(testLibs.espresso.core)
|
testImplementation(testLibs.espresso.core)
|
||||||
testImplementation(testLibs.kotlinx.coroutines.test)
|
|
||||||
testImplementation(libs.androidx.compose.ui.test.junit4)
|
|
||||||
|
|
||||||
"perfImplementation"(libs.androidx.compose.ui.test.manifest)
|
|
||||||
|
|
||||||
androidTestImplementation(platform(libs.androidx.compose.bom))
|
androidTestImplementation(platform(libs.androidx.compose.bom))
|
||||||
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
|
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
|
||||||
@@ -665,25 +633,39 @@ fun assertIsGitRepo() {
|
|||||||
fun getLastCommitTimestamp(): String {
|
fun getLastCommitTimestamp(): String {
|
||||||
assertIsGitRepo()
|
assertIsGitRepo()
|
||||||
|
|
||||||
return providers.exec {
|
ByteArrayOutputStream().use { os ->
|
||||||
commandLine("git", "log", "-1", "--pretty=format:%ct")
|
exec {
|
||||||
}.standardOutput.asText.get() + "000"
|
executable = "git"
|
||||||
|
args = listOf("log", "-1", "--pretty=format:%ct")
|
||||||
|
standardOutput = os
|
||||||
|
}
|
||||||
|
|
||||||
|
return os.toString() + "000"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getGitHash(): String {
|
fun getGitHash(): String {
|
||||||
assertIsGitRepo()
|
assertIsGitRepo()
|
||||||
|
|
||||||
return providers.exec {
|
val stdout = ByteArrayOutputStream()
|
||||||
commandLine("git", "rev-parse", "HEAD")
|
exec {
|
||||||
}.standardOutput.asText.get().trim().substring(0, 12)
|
commandLine = listOf("git", "rev-parse", "HEAD")
|
||||||
|
standardOutput = stdout
|
||||||
|
}
|
||||||
|
|
||||||
|
return stdout.toString().trim().substring(0, 12)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getCurrentGitTag(): String? {
|
fun getCurrentGitTag(): String? {
|
||||||
assertIsGitRepo()
|
assertIsGitRepo()
|
||||||
|
|
||||||
val output = providers.exec {
|
val stdout = ByteArrayOutputStream()
|
||||||
commandLine("git", "tag", "--points-at", "HEAD")
|
exec {
|
||||||
}.standardOutput.asText.get().trim()
|
commandLine = listOf("git", "tag", "--points-at", "HEAD")
|
||||||
|
standardOutput = stdout
|
||||||
|
}
|
||||||
|
|
||||||
|
val output: String = stdout.toString().trim()
|
||||||
|
|
||||||
return if (output.isNotEmpty()) {
|
return if (output.isNotEmpty()) {
|
||||||
val tags = output.split("\n").toList()
|
val tags = output.split("\n").toList()
|
||||||
@@ -703,10 +685,19 @@ tasks.withType<Test>().configureEach {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gradle.taskGraph.whenReady {
|
project.tasks.configureEach {
|
||||||
if (gradle.startParameter.taskNames.any { it.contains("nightly", ignoreCase = true) }) {
|
if (name.lowercase().contains("nightly") && name != "checkNightlyParams") {
|
||||||
if (!file("${project.rootDir}/nightly-url.txt").exists()) {
|
dependsOn(tasks.getByName("checkNightlyParams"))
|
||||||
throw GradleException("Missing required file: nightly-url.txt")
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register("checkNightlyParams") {
|
||||||
|
doFirst {
|
||||||
|
if (project.gradle.startParameter.taskNames.any { it.lowercase().contains("nightly") }) {
|
||||||
|
|
||||||
|
if (!file("${project.rootDir}/nightly-url.txt").exists()) {
|
||||||
|
throw GradleException("Cannot find 'nightly-url.txt' for nightly build! It must exist in the root of this project and contain the location of the nightly manifest.")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -738,18 +729,13 @@ fun getMapsKey(): String {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun Project.languageList(): List<String> {
|
fun Project.languageList(): List<String> {
|
||||||
// In API 35, language codes for Hebrew and Indonesian now use the ISO 639-1 code ("he" and "id").
|
|
||||||
// However, the value resources still only support the outdated code ("iw" and "in") so we have
|
|
||||||
// to manually indicate that we support these languages.
|
|
||||||
val updatedLanguageCodes = listOf("he", "id")
|
|
||||||
|
|
||||||
return fileTree("src/main/res") { include("**/strings.xml") }
|
return fileTree("src/main/res") { include("**/strings.xml") }
|
||||||
.map { stringFile -> stringFile.parentFile.name }
|
.map { stringFile -> stringFile.parentFile.name }
|
||||||
.map { valuesFolderName -> valuesFolderName.replace("values-", "") }
|
.map { valuesFolderName -> valuesFolderName.replace("values-", "") }
|
||||||
.filter { valuesFolderName -> valuesFolderName != "values" }
|
.filter { valuesFolderName -> valuesFolderName != "values" }
|
||||||
.map { languageCode -> languageCode.replace("-r", "_") }
|
.map { languageCode -> languageCode.replace("-r", "_") }
|
||||||
.distinct()
|
.distinct()
|
||||||
.sorted() + updatedLanguageCodes + "en"
|
.sorted() + "en"
|
||||||
}
|
}
|
||||||
|
|
||||||
fun String.capitalize(): String {
|
fun String.capitalize(): String {
|
||||||
|
|||||||
38016
app/lint-baseline.xml
38016
app/lint-baseline.xml
File diff suppressed because one or more lines are too long
@@ -43,8 +43,4 @@
|
|||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
<issue id="OptionalUsedAsFieldOrParameterType" severity="ignore" />
|
<issue id="OptionalUsedAsFieldOrParameterType" severity="ignore" />
|
||||||
<issue id="SameParameterValue" severity="ignore" />
|
|
||||||
|
|
||||||
<!-- Disables check for digital asset linking in manifest. It's not needed, since we are not using CredentialManager for passkey support. -->
|
|
||||||
<issue id="CredManMissingDal" severity="ignore" />
|
|
||||||
</lint>
|
</lint>
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user