Compare commits

...

122 Commits

Author SHA1 Message Date
Michelle Tang
9b9734f82a Bump version to 7.74.0 2026-02-11 18:24:13 -05:00
Michelle Tang
fe437b5234 Update translations and other static files. 2026-02-11 18:14:12 -05:00
jeffrey-signal
59bb505a3e Support member labels in backups. 2026-02-11 18:08:57 -05:00
jeffrey-signal
28d8d62cbd Rotate receive member labels flag. 2026-02-11 18:08:57 -05:00
jeffrey-signal
cb05608422 Show member labels in quotes. 2026-02-11 18:08:57 -05:00
Michelle Tang
e384a37fab Fix beta label width. 2026-02-11 18:08:57 -05:00
Michelle Tang
9a04cd9e3b Move education sheet to safety numbers screen. 2026-02-11 18:08:57 -05:00
Cody Henthorne
dd396eb75a Fix group updates from others showing before messages made before the update. 2026-02-11 18:08:57 -05:00
Greyson Parrelli
611b52780e Fix sticker grid sometimes getting stuck on 2 columns. 2026-02-11 18:08:57 -05:00
Michelle Tang
20a05220ea Adjust strings. 2026-02-11 18:08:57 -05:00
Greyson Parrelli
38e8f24c20 Fix gif and stickers buttons disappearing after exiting edit. 2026-02-11 18:08:57 -05:00
Alex Hart
58d2c92102 Move the rest of the permissions classes. 2026-02-11 18:08:57 -05:00
Greyson Parrelli
f90ba45940 Make pinned chat limit remote configurable. 2026-02-11 18:08:57 -05:00
Tom Ritter
1ecf42bfd3 Fix the message edited label not always appearing.
Closes signalapp/Signal-Android#14582
2026-02-11 18:08:57 -05:00
Greyson Parrelli
ed56c21e5b Fix bug where image wasn't showing after send. 2026-02-11 18:08:57 -05:00
Greyson Parrelli
a0c55baf39 Show whose safety number changed in group chat summaries. 2026-02-10 11:34:24 -05:00
Greyson Parrelli
3b3ef0d545 Allow some context menu actions in search. 2026-02-10 11:30:05 -05:00
jeffrey-signal
78e7f99344 Add group member labels to conversation items. 2026-02-10 10:35:54 -05:00
jeffrey-signal
d709d67f54 Fix position of clearable text field remaining characters count. 2026-02-10 10:35:54 -05:00
jeffrey-signal
6d30fd11a7 Add description to edit member label screen. 2026-02-10 10:35:54 -05:00
Cody Henthorne
4a39c7950f Split performance benchmark and baseline profile into separate modules. 2026-02-10 10:35:54 -05:00
Greyson Parrelli
3dd5ad2a8a Fix video scrubber contrast with HDR video.
Co-authored-by: Milan Stevanovic <milan@signal.org>
2026-02-10 10:35:54 -05:00
jeffrey-signal
d7b7727aa6 Show member labels in conversation settings. 2026-02-10 10:35:54 -05:00
Cody Henthorne
0199cd24ef Remove proto files from APK. 2026-02-10 10:35:54 -05:00
jeffrey-signal
8513e8c4f9 Fix donation learn more sheet icon colors. 2026-02-10 10:35:54 -05:00
Greyson Parrelli
5d2d9017f1 Fix for some HDR transcoding issues.
Co-authored-by: Milan Stevanovic <milan@signal.org>
2026-02-10 10:35:54 -05:00
Alex Hart
879e8f98bd Ensure lint configuration is applied to all modules. 2026-02-10 10:35:54 -05:00
Greyson Parrelli
2c6524f6c0 Include battery info debuglog. 2026-02-10 10:35:54 -05:00
Greyson Parrelli
c9bd81d332 Show linked deviceId's for internal users. 2026-02-10 10:35:54 -05:00
Greyson Parrelli
2d29b02cea Add new sticker packs.
- My Daily Life 2
- Rocky Talk
- Cozy Season
- Chug the Mouse
- Croco's Feelings as blessed sticker packs
2026-02-10 10:35:54 -05:00
andrew-signal
c0a279fcc5 Bump to libsignal v0.87.1 2026-02-10 10:35:54 -05:00
Greyson Parrelli
1a612fab0b Update video demo app to minSdk 26. 2026-02-10 10:35:54 -05:00
Michelle Tang
63e821634a Adjust strings. 2026-02-10 10:35:54 -05:00
Alex Hart
62d951b438 Move additional fragments to core UI. 2026-02-10 10:35:54 -05:00
Greyson Parrelli
8d749c404f Refactor and improve video demo app. 2026-02-10 10:35:54 -05:00
jeffrey-signal
d5b2f4fdd3 Display member label on recipient details sheet. 2026-02-10 10:35:54 -05:00
Alex Hart
fae4ca91bd Ensure spans are accounted for when measuring text. 2026-02-10 10:35:54 -05:00
Alex Hart
6e92ff5096 Move fragments to core UI. 2026-02-10 10:35:54 -05:00
jeffrey-signal
61522cd682 Fix GroupTable.memberLabel() to return null for blank labels. 2026-02-10 10:35:54 -05:00
jeffrey-signal
74dbd0814a Add comment to clarify intentional fall-through in DeviceTransferSetUpFragment switch statement.
Resolves signalapp/Signal-Android##14437
2026-02-10 10:35:54 -05:00
Alex Hart
05751a5b79 Remove app module SignalTheme. 2026-02-10 10:35:54 -05:00
Alex Hart
7741844055 Add audio-indicator slot to use for single-remote-participant calls. 2026-02-10 10:35:54 -05:00
Cody Henthorne
09c07f0707 Fix benchmark tests. 2026-02-10 10:35:54 -05:00
Alex Hart
c565db812e Fix back button intermittently not working in conversation view.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-10 10:35:54 -05:00
Greyson Parrelli
00b72c9263 Clean up system for blessed sticker packs. 2026-02-10 10:35:54 -05:00
Alex Hart
5c415139fd Reshape entry point for V3 media screens. 2026-02-10 10:35:54 -05:00
jeffrey-signal
6d944c0f8c Add tests for MemberLabelViewModel. 2026-02-10 10:35:53 -05:00
Michelle Tang
6744a79325 Avoid showing KT for note to self. 2026-02-10 10:35:53 -05:00
Michelle Tang
472d86acc0 Bump version to 7.73.2 2026-02-09 16:33:14 -05:00
Michelle Tang
c1ee7a53b5 Update translations and other static files. 2026-02-09 16:29:47 -05:00
Greyson Parrelli
8d44640377 Prompt for microphone permission when recording video in new camera.
Previously, the new camera would silently record video without audio
when microphone permission was missing. Now it shows the same rationale
dialog and permanent denial flow as the old camera.
2026-02-09 15:52:03 -05:00
Greyson Parrelli
cbcbe3f564 Use OrientationEventListener to update CameraX target rotation. 2026-02-09 14:15:52 -05:00
Greyson Parrelli
698923423f Downsample gallery thumbnail to display size in camera HUD.
Was loading full size image, potentially causing OOM.
2026-02-09 12:01:40 -05:00
jeffrey-signal
bc6114f6e0 Bump version to 7.73.1 2026-02-06 19:10:12 -05:00
jeffrey-signal
21d91bb2cf Update translations and other static files. 2026-02-06 19:06:27 -05:00
Greyson Parrelli
bda9664cb9 Check audio permission before enabling audio in video recording. 2026-02-06 16:11:09 -05:00
Greyson Parrelli
9c055a35a9 Increase flash toggle button hitbox in new camera. 2026-02-06 15:59:18 -05:00
Greyson Parrelli
bf794c41da Maximize screen brightness during selfie flash in new camera. 2026-02-06 15:59:18 -05:00
Greyson Parrelli
de698c8a1a Enable torch during video recording in new camera. 2026-02-06 15:59:17 -05:00
Greyson Parrelli
f972382f5e Fix tap-to-focus using wrong coordinate space in new camera.
We were using raw coordinates. Now we transform them appropriately
to the correct coordinate space.
2026-02-06 15:35:47 -05:00
Greyson Parrelli
73b0331884 Fix video recording zoom starting at ultrawide instead of 1x. 2026-02-06 15:29:36 -05:00
Greyson Parrelli
2248abb749 Persist camera lens selection across sessions. 2026-02-06 15:18:50 -05:00
Greyson Parrelli
13435c0b54 Add double-tap gesture on viewfinder to switch cameras. 2026-02-06 15:17:08 -05:00
Greyson Parrelli
5575f75118 Block camera switching during video recording. 2026-02-06 15:17:04 -05:00
jeffrey-signal
4ce3c2309c Bump version to 7.73.0 2026-02-04 15:07:07 -05:00
jeffrey-signal
cd7ee1a042 Update translations and other static files. 2026-02-04 15:07:01 -05:00
Greyson Parrelli
cd087113e3 Ensure that notification heuristics are calculated in the background. 2026-02-04 12:28:01 -05:00
Alex Hart
36b6122b0f Move several Permissions dependencies to core. 2026-02-04 13:17:29 -04:00
Alex Hart
a74651d915 Move text styles to core UI. 2026-02-04 13:13:49 -04:00
Alex Hart
c274805eb0 Utilze localized description for calculating badge line count. 2026-02-04 11:39:01 -04:00
Jim Gustafson
d86d88f313 Update to RingRTC v2.64.1 2026-02-03 16:41:36 -05:00
Cody Henthorne
265e875a78 Fix baseline profile generation and update it. 2026-02-03 16:40:30 -05:00
Cody Henthorne
8353ad4962 Improve performance of first send to large group. 2026-02-03 15:26:27 -05:00
Alex Hart
9369cafd38 Update translations to support multiple modules. 2026-02-03 16:15:52 -04:00
Michelle Tang
989cda6662 Add internal setting to run KT. 2026-02-03 15:14:38 -05:00
Michelle Tang
0570aaeb6e Add more checks when doing KT. 2026-02-03 12:55:37 -05:00
Alex Hart
5a19117850 Move lru and bottomsheet util to core modules. 2026-02-03 13:23:43 -04:00
jeffrey-signal
ff726ec4d2 Don't send group update messages when member labels are changed. 2026-02-03 12:20:33 -05:00
Alex Hart
0cd93986bd Add media send feature module. 2026-02-03 11:25:57 -04:00
andrew-signal
bc7ba5f2c6 Bump to libsignal v0.87.0 2026-02-03 09:57:32 -05:00
Michelle Tang
1ddde6ab92 Enable key transparency for internal users. 2026-02-02 17:46:19 -05:00
Greyson Parrelli
e9f2580bb8 Rotate the cameraXModelBlocklist.
We think the new camera could solve all or most of our issues, so let's
start fresh.
2026-02-02 15:37:22 -05:00
Michelle Tang
b9dc2d3969 Add animations to key transparency. 2026-02-02 15:00:07 -05:00
Michelle Tang
7e27203bd8 Add KT to backups. 2026-02-02 14:55:32 -05:00
Alex Hart
5a582c12d8 Remove unused dependency in Util. 2026-02-02 15:22:39 -04:00
Michelle Tang
cd925d5f53 Self-check key transparency. 2026-02-02 14:12:16 -05:00
Alex Hart
853a37920c Cycle view focus if keyboard fails to open. 2026-02-02 12:59:40 -04:00
Alex Hart
2aa0b3700f Move blurhash to its own module. 2026-02-02 12:17:16 -04:00
BarbossHack
35190ebb63 Fix type comparison in reproducible script.
Resolves #14571
2026-02-02 10:19:44 -05:00
BarbossHack
d74350b708 Do not stop reproducible comparison at the first mismatch.
Resolves #14570
2026-02-02 10:14:20 -05:00
BarbossHack
bd3e4f9f87 Fix memory usage in reproducible-build GitHub workflow.
Resolves #14574
2026-02-02 10:10:04 -05:00
BarbossHack
7370756344 Fix type and type annotations issues in reproducible script.
Resolves #14573
2026-02-02 10:06:27 -05:00
Greyson Parrelli
7894377d1d Add a github distribution variant. 2026-02-02 09:56:01 -05:00
Greyson Parrelli
6416df241f Add basic re-reg support to regV5. 2026-01-31 22:21:41 -05:00
Alex Hart
85408f2b12 Convert PartUriParser into Kotlin. 2026-01-31 22:21:41 -05:00
Alex Hart
b698daa4cf Convert SentMediaQuality to kotlin. 2026-01-31 22:21:41 -05:00
Alex Hart
3a035a1b33 Fix crash when user local can't resolve to a currency in post-restore job. 2026-01-31 22:21:41 -05:00
Michelle Tang
a11888ff71 Allow opting out of key transparency. 2026-01-31 22:21:41 -05:00
Michelle Tang
423b8c942c Add key transparency backend support. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
26739491a5 Fix instrumentation test compilation. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
6bf39c5102 Fix attachment downloads stuck after call ending. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
daac3bd143 Attempt to remove an android datatransport service.
Relates to #14556
2026-01-31 22:21:41 -05:00
jeffrey-signal
028242826e Rename Groups.proto modifyMemberLabel field to modifyMemberLabels. 2026-01-31 22:21:41 -05:00
jeffrey-signal
99d9c670b6 Add group member label editing screen. 2026-01-31 22:21:41 -05:00
Alex Hart
bc592cc4e2 Fix broken exoplayer pool test. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
04707b00e7 Switch to using SurfaceView for ExoPlayer. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
d44abfaeac Update exoplayer version to 1.9.1 2026-01-31 22:21:41 -05:00
Alex Hart
6c30f3d573 Local backups upgrade UI. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
2e70ed14dd Fix benchmark compilation error. 2026-01-31 22:21:41 -05:00
Alex Hart
7823d4f49f Move UriGlideRenderer to lib:image-editor. 2026-01-31 22:21:41 -05:00
Alex Hart
7bd3482367 Move the org.signal.glide code inside signal-android into lib/glide. 2026-01-31 22:21:40 -05:00
Jim Gustafson
709adf05aa Update to RingRTC v2.63.0
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-01-31 22:21:40 -05:00
andrew-signal
524736c5b2 Bump to libsignal v0.86.15 2026-01-31 22:21:40 -05:00
Greyson Parrelli
f53ae66fc9 Rebuild CameraXFragment to use a brand new camera. 2026-01-31 22:21:40 -05:00
Greyson Parrelli
0c102b061c Bump version to 7.72.2 2026-01-30 20:46:41 -05:00
Greyson Parrelli
ee198e47c8 Update translations and other static files. 2026-01-30 20:46:21 -05:00
Alex Hart
75c2931c8d Ensure placeables are only measured once in call elements screen. 2026-01-30 10:03:05 -04:00
Greyson Parrelli
2bb4edecd7 Bump version to 7.72.1 2026-01-29 19:49:29 -05:00
Greyson Parrelli
b79d9af7ae Update translations and other static files. 2026-01-29 19:44:21 -05:00
Greyson Parrelli
5c50372021 Move theme colors to core-ui. 2026-01-29 19:44:11 -05:00
Greyson Parrelli
d0d32c8f33 Limit gallery to most recent 5k items for now. 2026-01-29 16:44:32 -05:00
Greyson Parrelli
2aaaa1791e Fix issue where invalid videos get stuck in the send flow. 2026-01-29 11:09:17 -05:00
1830 changed files with 171081 additions and 60023 deletions

View File

@@ -1,21 +1,20 @@
name: Reproducible Build Check
name: Check reproducible-build Dockerfile
on:
schedule:
- cron: '0 5 * * *'
- cron: "0 5 * * *"
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build image
run: cd reproducible-builds && docker build -t signal-android . && cd ..
- name: Test build
run: docker run --rm -v $(pwd):/project -w /project signal-android ./gradlew clean assemblePlayProdRelease
- uses: actions/checkout@v6
- name: Build image
run: |
cd reproducible-builds
docker build -t signal-android .
- 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

View File

@@ -20,6 +20,7 @@ plugins {
alias(libs.plugins.ktlint)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.kotlinx.serialization)
alias(benchmarkLibs.plugins.baselineprofile)
id("androidx.navigation.safeargs")
id("kotlin-parcelize")
id("com.squareup.wire")
@@ -29,8 +30,8 @@ plugins {
apply(from = "static-ips.gradle.kts")
val canonicalVersionCode = 1642
val canonicalVersionName = "7.72.0"
val canonicalVersionCode = 1648
val canonicalVersionName = "7.74.0"
val currentHotfixVersion = 0
val maxHotfixVersions = 100
@@ -60,6 +61,8 @@ val selectableVariants = listOf(
"playProdSpinner",
"playProdCanary",
"playProdPerf",
"playProdMocked",
"playProdNonMinifiedMocked",
"playProdBenchmark",
"playProdInstrumentation",
"playProdRelease",
@@ -70,7 +73,9 @@ val selectableVariants = listOf(
"playStagingInstrumentation",
"playStagingRelease",
"websiteProdSpinner",
"websiteProdRelease"
"websiteProdRelease",
"githubProdSpinner",
"githubProdRelease"
)
wire {
@@ -174,7 +179,8 @@ android {
"META-INF/LICENSE-notice.md",
"META-INF/proguard/androidx-annotations.pro",
"**/*.dylib",
"**/*.dll"
"**/*.dll",
"**/*.proto"
)
}
}
@@ -356,6 +362,16 @@ android {
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") {
initWith(getByName("debug"))
isDefault = false
@@ -381,6 +397,13 @@ android {
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") {
dimension = "distribution"
versionNameSuffix = "-nightly-untagged-${getGitHash()}"
@@ -447,6 +470,7 @@ android {
ignoreWarnings = true
quiet = true
disable += "LintError"
lintConfig = rootProject.file("lint.xml")
}
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.
// 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)
}
@@ -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 {
outputs.configureEach {
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 {
lintChecks(project(":lintchecks"))
ktlintRuleset(libs.ktlint.twitter.compose)
@@ -523,9 +573,11 @@ dependencies {
implementation(project(":lib:qr"))
implementation(project(":lib:sticky-header-grid"))
implementation(project(":lib:photoview"))
implementation(project(":lib:blurhash"))
implementation(project(":core:ui"))
implementation(project(":core:models"))
implementation(project(":core:models-jvm"))
implementation(project(":feature:camera"))
implementation(libs.androidx.fragment.ktx)
implementation(libs.androidx.appcompat) {
@@ -628,6 +680,7 @@ dependencies {
implementation(libs.kotlinx.serialization.json)
implementation(project(":lib:billing"))
implementation(project(":feature:media-send"))
"spinnerImplementation"(project(":lib:spinner"))

Some files were not shown because too many files have changed in this diff Show More