mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-15 07:28:30 +00:00
Compare commits
122 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9b9734f82a | ||
|
|
fe437b5234 | ||
|
|
59bb505a3e | ||
|
|
28d8d62cbd | ||
|
|
cb05608422 | ||
|
|
e384a37fab | ||
|
|
9a04cd9e3b | ||
|
|
dd396eb75a | ||
|
|
611b52780e | ||
|
|
20a05220ea | ||
|
|
38e8f24c20 | ||
|
|
58d2c92102 | ||
|
|
f90ba45940 | ||
|
|
1ecf42bfd3 | ||
|
|
ed56c21e5b | ||
|
|
a0c55baf39 | ||
|
|
3b3ef0d545 | ||
|
|
78e7f99344 | ||
|
|
d709d67f54 | ||
|
|
6d30fd11a7 | ||
|
|
4a39c7950f | ||
|
|
3dd5ad2a8a | ||
|
|
d7b7727aa6 | ||
|
|
0199cd24ef | ||
|
|
8513e8c4f9 | ||
|
|
5d2d9017f1 | ||
|
|
879e8f98bd | ||
|
|
2c6524f6c0 | ||
|
|
c9bd81d332 | ||
|
|
2d29b02cea | ||
|
|
c0a279fcc5 | ||
|
|
1a612fab0b | ||
|
|
63e821634a | ||
|
|
62d951b438 | ||
|
|
8d749c404f | ||
|
|
d5b2f4fdd3 | ||
|
|
fae4ca91bd | ||
|
|
6e92ff5096 | ||
|
|
61522cd682 | ||
|
|
74dbd0814a | ||
|
|
05751a5b79 | ||
|
|
7741844055 | ||
|
|
09c07f0707 | ||
|
|
c565db812e | ||
|
|
00b72c9263 | ||
|
|
5c415139fd | ||
|
|
6d944c0f8c | ||
|
|
6744a79325 | ||
|
|
472d86acc0 | ||
|
|
c1ee7a53b5 | ||
|
|
8d44640377 | ||
|
|
cbcbe3f564 | ||
|
|
698923423f | ||
|
|
bc6114f6e0 | ||
|
|
21d91bb2cf | ||
|
|
bda9664cb9 | ||
|
|
9c055a35a9 | ||
|
|
bf794c41da | ||
|
|
de698c8a1a | ||
|
|
f972382f5e | ||
|
|
73b0331884 | ||
|
|
2248abb749 | ||
|
|
13435c0b54 | ||
|
|
5575f75118 | ||
|
|
4ce3c2309c | ||
|
|
cd7ee1a042 | ||
|
|
cd087113e3 | ||
|
|
36b6122b0f | ||
|
|
a74651d915 | ||
|
|
c274805eb0 | ||
|
|
d86d88f313 | ||
|
|
265e875a78 | ||
|
|
8353ad4962 | ||
|
|
9369cafd38 | ||
|
|
989cda6662 | ||
|
|
0570aaeb6e | ||
|
|
5a19117850 | ||
|
|
ff726ec4d2 | ||
|
|
0cd93986bd | ||
|
|
bc7ba5f2c6 | ||
|
|
1ddde6ab92 | ||
|
|
e9f2580bb8 | ||
|
|
b9dc2d3969 | ||
|
|
7e27203bd8 | ||
|
|
5a582c12d8 | ||
|
|
cd925d5f53 | ||
|
|
853a37920c | ||
|
|
2aa0b3700f | ||
|
|
35190ebb63 | ||
|
|
d74350b708 | ||
|
|
bd3e4f9f87 | ||
|
|
7370756344 | ||
|
|
7894377d1d | ||
|
|
6416df241f | ||
|
|
85408f2b12 | ||
|
|
b698daa4cf | ||
|
|
3a035a1b33 | ||
|
|
a11888ff71 | ||
|
|
423b8c942c | ||
|
|
26739491a5 | ||
|
|
6bf39c5102 | ||
|
|
daac3bd143 | ||
|
|
028242826e | ||
|
|
99d9c670b6 | ||
|
|
bc592cc4e2 | ||
|
|
04707b00e7 | ||
|
|
d44abfaeac | ||
|
|
6c30f3d573 | ||
|
|
2e70ed14dd | ||
|
|
7823d4f49f | ||
|
|
7bd3482367 | ||
|
|
709adf05aa | ||
|
|
524736c5b2 | ||
|
|
f53ae66fc9 | ||
|
|
0c102b061c | ||
|
|
ee198e47c8 | ||
|
|
75c2931c8d | ||
|
|
2bb4edecd7 | ||
|
|
b79d9af7ae | ||
|
|
5c50372021 | ||
|
|
d0d32c8f33 | ||
|
|
2aaaa1791e |
19
.github/workflows/docker.yml
vendored
19
.github/workflows/docker.yml
vendored
@@ -1,21 +1,20 @@
|
|||||||
name: Reproducible Build Check
|
name: Check reproducible-build Dockerfile
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 5 * * *'
|
- cron: "0 5 * * *"
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read # to fetch code (actions/checkout)
|
contents: read # to fetch code (actions/checkout)
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
- name: Build image
|
- name: Build image
|
||||||
run: cd reproducible-builds && docker build -t signal-android . && cd ..
|
run: |
|
||||||
|
cd reproducible-builds
|
||||||
- name: Test build
|
docker build -t signal-android .
|
||||||
run: docker run --rm -v $(pwd):/project -w /project signal-android ./gradlew clean assemblePlayProdRelease
|
- name: Test build
|
||||||
|
run: docker run --memory=12g --rm -v "$(pwd)":/project -w /project signal-android ./gradlew --no-daemon --max-workers=1 -Dorg.gradle.jvmargs="-Xmx4g -XX:MaxMetaspaceSize=512m" -Dkotlin.compiler.execution.strategy=in-process bundlePlayProdRelease
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ plugins {
|
|||||||
alias(libs.plugins.ktlint)
|
alias(libs.plugins.ktlint)
|
||||||
alias(libs.plugins.compose.compiler)
|
alias(libs.plugins.compose.compiler)
|
||||||
alias(libs.plugins.kotlinx.serialization)
|
alias(libs.plugins.kotlinx.serialization)
|
||||||
|
alias(benchmarkLibs.plugins.baselineprofile)
|
||||||
id("androidx.navigation.safeargs")
|
id("androidx.navigation.safeargs")
|
||||||
id("kotlin-parcelize")
|
id("kotlin-parcelize")
|
||||||
id("com.squareup.wire")
|
id("com.squareup.wire")
|
||||||
@@ -29,8 +30,8 @@ plugins {
|
|||||||
|
|
||||||
apply(from = "static-ips.gradle.kts")
|
apply(from = "static-ips.gradle.kts")
|
||||||
|
|
||||||
val canonicalVersionCode = 1642
|
val canonicalVersionCode = 1648
|
||||||
val canonicalVersionName = "7.72.0"
|
val canonicalVersionName = "7.74.0"
|
||||||
val currentHotfixVersion = 0
|
val currentHotfixVersion = 0
|
||||||
val maxHotfixVersions = 100
|
val maxHotfixVersions = 100
|
||||||
|
|
||||||
@@ -60,6 +61,8 @@ val selectableVariants = listOf(
|
|||||||
"playProdSpinner",
|
"playProdSpinner",
|
||||||
"playProdCanary",
|
"playProdCanary",
|
||||||
"playProdPerf",
|
"playProdPerf",
|
||||||
|
"playProdMocked",
|
||||||
|
"playProdNonMinifiedMocked",
|
||||||
"playProdBenchmark",
|
"playProdBenchmark",
|
||||||
"playProdInstrumentation",
|
"playProdInstrumentation",
|
||||||
"playProdRelease",
|
"playProdRelease",
|
||||||
@@ -70,7 +73,9 @@ val selectableVariants = listOf(
|
|||||||
"playStagingInstrumentation",
|
"playStagingInstrumentation",
|
||||||
"playStagingRelease",
|
"playStagingRelease",
|
||||||
"websiteProdSpinner",
|
"websiteProdSpinner",
|
||||||
"websiteProdRelease"
|
"websiteProdRelease",
|
||||||
|
"githubProdSpinner",
|
||||||
|
"githubProdRelease"
|
||||||
)
|
)
|
||||||
|
|
||||||
wire {
|
wire {
|
||||||
@@ -174,7 +179,8 @@ android {
|
|||||||
"META-INF/LICENSE-notice.md",
|
"META-INF/LICENSE-notice.md",
|
||||||
"META-INF/proguard/androidx-annotations.pro",
|
"META-INF/proguard/androidx-annotations.pro",
|
||||||
"**/*.dylib",
|
"**/*.dylib",
|
||||||
"**/*.dll"
|
"**/*.dll",
|
||||||
|
"**/*.proto"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -356,6 +362,16 @@ android {
|
|||||||
buildConfigField("boolean", "TRACING_ENABLED", "true")
|
buildConfigField("boolean", "TRACING_ENABLED", "true")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
create("mocked") {
|
||||||
|
initWith(getByName("debug"))
|
||||||
|
isDefault = false
|
||||||
|
isDebuggable = false
|
||||||
|
isMinifyEnabled = true
|
||||||
|
matchingFallbacks += "debug"
|
||||||
|
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Benchmark\"")
|
||||||
|
buildConfigField("boolean", "TRACING_ENABLED", "true")
|
||||||
|
}
|
||||||
|
|
||||||
create("canary") {
|
create("canary") {
|
||||||
initWith(getByName("debug"))
|
initWith(getByName("debug"))
|
||||||
isDefault = false
|
isDefault = false
|
||||||
@@ -381,6 +397,13 @@ android {
|
|||||||
buildConfigField("String", "BUILD_DISTRIBUTION_TYPE", "\"website\"")
|
buildConfigField("String", "BUILD_DISTRIBUTION_TYPE", "\"website\"")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
create("github") {
|
||||||
|
dimension = "distribution"
|
||||||
|
buildConfigField("boolean", "MANAGES_APP_UPDATES", "false")
|
||||||
|
buildConfigField("String", "APK_UPDATE_MANIFEST_URL", "null")
|
||||||
|
buildConfigField("String", "BUILD_DISTRIBUTION_TYPE", "\"github\"")
|
||||||
|
}
|
||||||
|
|
||||||
create("nightly") {
|
create("nightly") {
|
||||||
dimension = "distribution"
|
dimension = "distribution"
|
||||||
versionNameSuffix = "-nightly-untagged-${getGitHash()}"
|
versionNameSuffix = "-nightly-untagged-${getGitHash()}"
|
||||||
@@ -447,6 +470,7 @@ android {
|
|||||||
ignoreWarnings = true
|
ignoreWarnings = true
|
||||||
quiet = true
|
quiet = true
|
||||||
disable += "LintError"
|
disable += "LintError"
|
||||||
|
lintConfig = rootProject.file("lint.xml")
|
||||||
}
|
}
|
||||||
|
|
||||||
androidComponents {
|
androidComponents {
|
||||||
@@ -461,7 +485,7 @@ android {
|
|||||||
|
|
||||||
// Starting with minSdk 23, Android leaves native libraries uncompressed, which is fine for the Play Store, but not for our self-distributed APKs.
|
// Starting with minSdk 23, Android leaves native libraries uncompressed, which is fine for the Play Store, but not for our self-distributed APKs.
|
||||||
// This reverts it to the legacy behavior, compressing the native libraries, and drastically reducing the APK file size.
|
// This reverts it to the legacy behavior, compressing the native libraries, and drastically reducing the APK file size.
|
||||||
if (variant.name.contains("website", ignoreCase = true)) {
|
if (variant.name.contains("website", ignoreCase = true) || variant.name.contains("github", ignoreCase = true)) {
|
||||||
variant.packaging.jniLibs.useLegacyPackaging.set(true)
|
variant.packaging.jniLibs.useLegacyPackaging.set(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -496,6 +520,18 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
getByName("mocked") {
|
||||||
|
java.srcDir("$projectDir/src/benchmarkShared/java")
|
||||||
|
manifest.srcFile("$projectDir/src/benchmarkShared/AndroidManifest.xml")
|
||||||
|
}
|
||||||
|
|
||||||
|
getByName("benchmark") {
|
||||||
|
java.srcDir("$projectDir/src/benchmarkShared/java")
|
||||||
|
manifest.srcFile("$projectDir/src/benchmarkShared/AndroidManifest.xml")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
applicationVariants.configureEach {
|
applicationVariants.configureEach {
|
||||||
outputs.configureEach {
|
outputs.configureEach {
|
||||||
if (this is com.android.build.gradle.internal.api.BaseVariantOutputImpl) {
|
if (this is com.android.build.gradle.internal.api.BaseVariantOutputImpl) {
|
||||||
@@ -505,6 +541,20 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
baselineProfile {
|
||||||
|
warnings {
|
||||||
|
disabledVariants = false
|
||||||
|
}
|
||||||
|
|
||||||
|
mergeIntoMain = true
|
||||||
|
|
||||||
|
variants.create("mocked") {
|
||||||
|
from(project(":baseline-profile"))
|
||||||
|
}
|
||||||
|
|
||||||
|
dexLayoutOptimization = false
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
lintChecks(project(":lintchecks"))
|
lintChecks(project(":lintchecks"))
|
||||||
ktlintRuleset(libs.ktlint.twitter.compose)
|
ktlintRuleset(libs.ktlint.twitter.compose)
|
||||||
@@ -523,9 +573,11 @@ dependencies {
|
|||||||
implementation(project(":lib:qr"))
|
implementation(project(":lib:qr"))
|
||||||
implementation(project(":lib:sticky-header-grid"))
|
implementation(project(":lib:sticky-header-grid"))
|
||||||
implementation(project(":lib:photoview"))
|
implementation(project(":lib:photoview"))
|
||||||
|
implementation(project(":lib:blurhash"))
|
||||||
implementation(project(":core:ui"))
|
implementation(project(":core:ui"))
|
||||||
implementation(project(":core:models"))
|
implementation(project(":core:models"))
|
||||||
implementation(project(":core:models-jvm"))
|
implementation(project(":core:models-jvm"))
|
||||||
|
implementation(project(":feature:camera"))
|
||||||
|
|
||||||
implementation(libs.androidx.fragment.ktx)
|
implementation(libs.androidx.fragment.ktx)
|
||||||
implementation(libs.androidx.appcompat) {
|
implementation(libs.androidx.appcompat) {
|
||||||
@@ -628,6 +680,7 @@ dependencies {
|
|||||||
implementation(libs.kotlinx.serialization.json)
|
implementation(libs.kotlinx.serialization.json)
|
||||||
|
|
||||||
implementation(project(":lib:billing"))
|
implementation(project(":lib:billing"))
|
||||||
|
implementation(project(":feature:media-send"))
|
||||||
|
|
||||||
"spinnerImplementation"(project(":lib:spinner"))
|
"spinnerImplementation"(project(":lib:spinner"))
|
||||||
|
|
||||||
|
|||||||
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.
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