Skip to content

Release 1.23.1 #1145

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 28 commits into from
May 15, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
aee29f0
[Automated] Update translations from Crowdin (#1113)
stfsession Apr 30, 2025
b86c6b7
[SES-3575] - Refactor sent status querying (#1122)
SessionHero01 May 1, 2025
5c97a95
Merge remote-tracking branch 'origin/release/1.23.0' into bring-1.23.…
SessionHero01 May 1, 2025
7d07b0f
Merge pull request #1124 from session-foundation/bring-1.23.0-to-dev
SessionHero01 May 1, 2025
e554304
Merge branch 'dev' into release/1.23.0
SessionHero01 May 5, 2025
e6d8133
Merge pull request #1128 from session-foundation/release/1.23.0
SessionHero01 May 5, 2025
6dc5b76
Migrate to gradle version catalog (#1129)
SessionHero01 May 5, 2025
9c3a894
[SES-3601] - App disguise (#1132)
SessionHero01 May 6, 2025
e5bb4ea
App disguise feature tweaks (#1133)
SessionHero01 May 6, 2025
766ff6c
Enable edge to edge for conversation screen (#1134)
SessionHero01 May 7, 2025
744e144
[SES-3778] - Replace ViewPager with ViewPager2 (#1136)
SessionHero01 May 7, 2025
9082136
Add a bottom spacer view for convo screen (#1141)
SessionHero01 May 8, 2025
f8d99df
Use lazy on ApplicationContext (#1142)
SessionHero01 May 8, 2025
404dbbc
[Automated] Update translations from Crowdin
ThomasSession May 9, 2025
43483da
Merge pull request #1143 from session-foundation/feature/update-crowd…
ThomasSession May 9, 2025
6822e20
UI tweaks for app disguise settings (#1140)
SessionHero01 May 9, 2025
c26275f
Merge remote-tracking branch 'origin/dev' into release/1.23.1
SessionHero01 May 11, 2025
3242ddd
Bump version to 1.23.1
SessionHero01 May 11, 2025
800fefa
Make sure hasPath runs in background thread (#1146)
SessionHero01 May 11, 2025
da2feb5
App disguise bug fixes (#1149)
SessionHero01 May 12, 2025
8cfe73e
[Automated] Update translations from Crowdin (#1147)
stfsession May 13, 2025
5f0d2b5
[SES-3792] - Fix navigation bar issue on conversation screen (#1152)
SessionHero01 May 13, 2025
9802455
[Automated] Update translations from Crowdin (#1153)
stfsession May 13, 2025
9862025
Update app disguise (#1151)
SessionHero01 May 13, 2025
62287c3
Merge remote-tracking branch 'origin/dev' into release/1.23.1
SessionHero01 May 13, 2025
3e6424f
Updated strings for app disguise
SessionHero01 May 13, 2025
463e6d3
Fix incorrect QA tags (#1155)
SessionHero01 May 14, 2025
8ce961b
Fix image not showing up immediately when sending (#1157)
SessionHero01 May 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
245 changes: 121 additions & 124 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ configurations.configureEach {
exclude module: "commons-logging"
}

def canonicalVersionCode = 406
def canonicalVersionName = "1.23.0"
def canonicalVersionCode = 407
def canonicalVersionName = "1.23.1"

def postFixSize = 10
def abiPostFix = ['armeabi-v7a' : 1,
Expand Down Expand Up @@ -272,161 +272,158 @@ preBuild.dependsOn ipToCode
dependencies {
implementation project(':content-descriptions')

ksp("androidx.hilt:hilt-compiler:$jetpackHiltVersion")
ksp("com.google.dagger:hilt-compiler:$daggerHiltVersion")
ksp("com.github.bumptech.glide:ksp:$glideVersion")
implementation("androidx.hilt:hilt-navigation-compose:$androidxHiltVersion")
implementation("androidx.hilt:hilt-work:$androidxHiltVersion")

implementation("com.google.dagger:hilt-android:$daggerHiltVersion")
implementation "androidx.appcompat:appcompat:$appcompatVersion"
implementation 'androidx.recyclerview:recyclerview:1.4.0'
implementation "com.google.android.material:material:$materialVersion"
implementation 'com.google.android.flexbox:flexbox:3.0.0'
implementation 'androidx.legacy:legacy-support-v13:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation "androidx.preference:preference-ktx:$preferenceVersion"
implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'androidx.exifinterface:exifinterface:1.3.4'
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion"
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion"
implementation "androidx.lifecycle:lifecycle-process:$lifecycleVersion"
implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycleVersion"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
implementation "androidx.paging:paging-runtime-ktx:$pagingVersion"
implementation 'androidx.activity:activity-ktx:1.10.1'
implementation 'androidx.activity:activity-compose:1.10.1'
implementation 'androidx.fragment:fragment-ktx:1.8.6'
implementation "androidx.core:core-ktx:$coreVersion"
implementation "androidx.work:work-runtime-ktx:2.10.0"

playImplementation ("com.google.firebase:firebase-messaging:24.0.0") {
ksp(libs.androidx.hilt.compiler)
ksp(libs.dagger.hilt.compiler)
ksp(libs.glide.ksp)
implementation(libs.androidx.hilt.navigation.compose)
implementation(libs.androidx.hilt.work)

implementation(libs.hilt.android)
implementation libs.androidx.appcompat
implementation libs.androidx.recyclerview
implementation libs.material
implementation libs.flexbox
implementation libs.androidx.legacy.support.v13
implementation libs.androidx.cardview
implementation libs.androidx.preference.ktx
implementation libs.androidx.legacy.preference.v14
implementation libs.androidx.gridlayout
implementation libs.androidx.exifinterface
implementation libs.androidx.constraintlayout
implementation libs.androidx.lifecycle.common.java8
implementation libs.androidx.lifecycle.runtime.ktx
implementation libs.androidx.lifecycle.livedata.ktx
implementation libs.androidx.lifecycle.process
implementation libs.androidx.lifecycle.viewmodel.compose
implementation libs.androidx.lifecycle.extensions
implementation libs.androidx.paging.runtime.ktx
implementation libs.androidx.activity.ktx
implementation libs.androidx.activity.compose
implementation libs.androidx.fragment.ktx
implementation libs.androidx.core.ktx
implementation libs.androidx.work.runtime.ktx

playImplementation (libs.firebase.messaging) {
exclude group: 'com.google.firebase', module: 'firebase-core'
exclude group: 'com.google.firebase', module: 'firebase-analytics'
exclude group: 'com.google.firebase', module: 'firebase-measurement-connector'
}

if (project.hasProperty('huawei')) huaweiImplementation 'com.huawei.hms:push:6.7.0.300'

implementation 'androidx.media3:media3-exoplayer:1.4.0'
implementation 'androidx.media3:media3-ui:1.4.0'
implementation 'org.conscrypt:conscrypt-android:2.5.2'
implementation 'org.signal:aesgcmprovider:0.0.3'
implementation 'io.github.webrtc-sdk:android:125.6422.07'
implementation "me.leolin:ShortcutBadger:1.1.16"
implementation 'org.apache.httpcomponents:httpclient-android:4.3.5'
implementation 'com.github.chrisbanes:PhotoView:2.1.3'
implementation "com.github.bumptech.glide:glide:$glideVersion"
implementation "com.github.bumptech.glide:compose:1.0.0-beta01"
implementation 'com.makeramen:roundedimageview:2.1.0'
implementation 'org.greenrobot:eventbus:3.0.0'
implementation 'com.vanniktech:android-image-cropper:4.5.0'
implementation ('com.davemorrissey.labs:subsampling-scale-image-view:3.6.0') {
if (project.hasProperty('huawei')) huaweiImplementation libs.huawei.push

implementation libs.androidx.media3.exoplayer
implementation libs.androidx.media3.ui
implementation libs.conscrypt.android
implementation libs.aesgcmprovider
implementation libs.android
implementation libs.shortcutbadger
implementation libs.httpclient.android
implementation libs.photoview
implementation libs.glide
implementation libs.compose
implementation libs.roundedimageview
implementation libs.eventbus
implementation libs.android.image.cropper
implementation (libs.subsampling.scale.image.view) {
exclude group: 'com.android.support', module: 'support-annotations'
}
implementation ('com.tomergoldst.android:tooltips:1.0.6') {
implementation (libs.tooltips) {
exclude group: 'com.android.support', module: 'appcompat-v7'
}
implementation ('com.klinkerapps:android-smsmms:4.0.1') {
implementation (libs.kinkerapps.android.smsmms) {
exclude group: 'com.squareup.okhttp', module: 'okhttp'
exclude group: 'com.squareup.okhttp', module: 'okhttp-urlconnection'
}
implementation 'com.annimon:stream:1.1.8'
implementation 'androidx.sqlite:sqlite-ktx:2.3.1'
implementation 'net.zetetic:sqlcipher-android:4.7.2'
implementation libs.stream
implementation libs.androidx.sqlite.ktx
implementation libs.sqlcipher.android
implementation project(":libsignal")
implementation project(":libsession")
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinxJsonVersion"
implementation "com.github.session-foundation.session-android-curve-25519:curve25519-java:$curve25519Version"
implementation libs.kotlinx.serialization.json
implementation libs.curve25519.java
implementation project(":liblazysodium")
implementation "net.java.dev.jna:jna:5.12.1@aar"
implementation "com.google.protobuf:protobuf-java:$protobufVersion"
implementation "com.fasterxml.jackson.core:jackson-databind:$jacksonDatabindVersion"
implementation "com.squareup.okhttp3:okhttp:$okhttpVersion"
implementation "com.squareup.phrase:phrase:$phraseVersion"
implementation 'app.cash.copper:copper-flow:1.0.0'
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
implementation "nl.komponents.kovenant:kovenant:$kovenantVersion"
implementation "nl.komponents.kovenant:kovenant-android:$kovenantVersion"
implementation "com.jakewharton.rxbinding3:rxbinding:3.1.0"
implementation "com.opencsv:opencsv:4.6"
testImplementation "junit:junit:$junitVersion"
testImplementation 'org.assertj:assertj-core:3.11.1'
testImplementation "org.mockito:mockito-inline:4.11.0"
testImplementation "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion"
androidTestImplementation "org.mockito:mockito-android:4.11.0"
androidTestImplementation "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion"
testImplementation "androidx.test:core:$testCoreVersion"
testImplementation "androidx.arch.core:core-testing:2.2.0"
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion"
androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion"
implementation libs.protobuf.java
implementation libs.jackson.databind
implementation libs.okhttp
implementation libs.phrase
implementation libs.copper.flow
implementation libs.kotlinx.coroutines.android
implementation libs.kovenant
implementation libs.kovenant.android
implementation libs.rxbinding
implementation libs.opencsv
testImplementation libs.junit
testImplementation libs.assertj.core
testImplementation libs.mockito.inline
testImplementation libs.mockito.kotlin
androidTestImplementation libs.mockito.android
androidTestImplementation libs.mockito.kotlin
testImplementation libs.androidx.core
testImplementation libs.androidx.core.testing
testImplementation libs.kotlinx.coroutines.testing
androidTestImplementation libs.kotlinx.coroutines.testing
// Core library
androidTestImplementation "androidx.test:core:$testCoreVersion"
androidTestImplementation libs.androidx.core

// AndroidJUnitRunner and JUnit Rules
androidTestImplementation 'androidx.test:runner:1.5.2'
androidTestImplementation 'androidx.test:rules:1.5.0'
androidTestImplementation libs.androidx.runner
androidTestImplementation libs.androidx.rules

// Assertions
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.ext:truth:1.5.0'
testImplementation 'com.google.truth:truth:1.1.3'
androidTestImplementation 'com.google.truth:truth:1.1.3'
androidTestImplementation libs.androidx.junit
androidTestImplementation libs.androidx.truth
testImplementation libs.truth
androidTestImplementation libs.truth

// Espresso dependencies
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.5.1'
androidTestImplementation 'androidx.test.espresso:espresso-intents:3.5.1'
androidTestImplementation 'androidx.test.espresso:espresso-accessibility:3.5.1'
androidTestImplementation 'androidx.test.espresso:espresso-web:3.5.1'
androidTestImplementation 'androidx.test.espresso.idling:idling-concurrent:3.5.1'
androidTestImplementation 'androidx.test.espresso:espresso-idling-resource:3.5.1'
androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.5.3"
debugImplementation "androidx.compose.ui:ui-test-manifest:1.5.3"
androidTestUtil 'androidx.test:orchestrator:1.4.2'

testImplementation 'org.robolectric:robolectric:4.12.2'
testImplementation 'org.robolectric:shadows-multidex:4.12.2'
testImplementation 'org.conscrypt:conscrypt-openjdk-uber:2.5.2' // For Robolectric
testImplementation 'app.cash.turbine:turbine:1.1.0'
androidTestImplementation libs.androidx.espresso.core
androidTestImplementation libs.androidx.espresso.contrib
androidTestImplementation libs.androidx.espresso.intents
androidTestImplementation libs.androidx.espresso.accessibility
androidTestImplementation libs.androidx.espresso.web
androidTestImplementation libs.androidx.idling.concurrent
androidTestImplementation libs.androidx.espresso.idling.resource
androidTestImplementation libs.androidx.compose.ui.test.junit4
debugImplementation libs.androidx.compose.ui.test.manifest
androidTestUtil libs.androidx.orchestrator

testImplementation libs.robolectric
testImplementation libs.robolectric.shadows.multidex
testImplementation libs.conscrypt.openjdk.uber // For Robolectric
testImplementation libs.turbine

// compose
Dependency composeBom = platform('androidx.compose:compose-bom:2025.03.01')
implementation composeBom
testImplementation composeBom
androidTestImplementation composeBom
implementation platform(libs.androidx.compose.bom)
testImplementation platform(libs.androidx.compose.bom)
androidTestImplementation platform(libs.androidx.compose.bom)

implementation "androidx.compose.ui:ui"
implementation "androidx.compose.animation:animation"
implementation "androidx.compose.ui:ui-tooling"
implementation "androidx.compose.runtime:runtime-livedata"
implementation "androidx.compose.foundation:foundation-layout"
implementation "androidx.compose.material3:material3"
implementation libs.androidx.compose.ui
implementation libs.androidx.compose.animation
implementation libs.androidx.compose.ui.tooling
implementation libs.androidx.compose.runtime.livedata
implementation libs.androidx.compose.foundation.layout
implementation libs.androidx.compose.material3

androidTestImplementation "androidx.compose.ui:ui-test-junit4-android"
debugImplementation "androidx.compose.ui:ui-test-manifest"
androidTestImplementation libs.androidx.ui.test.junit4.android
debugImplementation libs.androidx.compose.ui.test.manifest

// Navigation
implementation "androidx.navigation:navigation-fragment-ktx:$navVersion"
implementation "androidx.navigation:navigation-ui-ktx:$navVersion"
implementation "androidx.navigation:navigation-compose:$navVersion"
implementation libs.androidx.navigation.fragment.ktx
implementation libs.androidx.navigation.ui.ktx
implementation libs.androidx.navigation.compose

implementation "com.google.accompanist:accompanist-themeadapter-appcompat:0.33.1-alpha"
implementation "com.google.accompanist:accompanist-permissions:0.36.0"
implementation "com.google.accompanist:accompanist-drawablepainter:0.33.1-alpha"
implementation libs.accompanist.themeadapter.appcompat
implementation libs.accompanist.permissions
implementation libs.accompanist.drawablepainter

implementation "androidx.camera:camera-camera2:1.3.2"
implementation "androidx.camera:camera-lifecycle:1.3.2"
implementation "androidx.camera:camera-view:1.3.2"
implementation libs.androidx.camera.camera2
implementation libs.androidx.camera.lifecycle
implementation libs.androidx.camera.view

// Note: ZXing 3.5.3 is the latest stable release as of 2024/08/21
implementation "com.google.zxing:core:$zxingVersion"
implementation libs.zxing.core

// Note: 1.1.0 is the latest stable release as of 2024/12/18
implementation "androidx.biometric:biometric:1.1.0"
implementation libs.androidx.biometric
}

static def getLastCommitTimestamp() {
Expand Down
70 changes: 70 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,7 @@
</activity>
<activity android:name="org.thoughtcrime.securesms.media.MediaOverviewActivity" />
<activity android:name="org.thoughtcrime.securesms.migration.DatabaseMigrationStateActivity" />
<activity android:name="org.thoughtcrime.securesms.preferences.appearance.AppDisguiseSettingsActivity" />

<service
android:name="org.thoughtcrime.securesms.service.KeyCachingService"
Expand Down Expand Up @@ -484,7 +485,76 @@
tools:node="remove" />
</provider>

<!-- Alternative icons -->
<activity-alias
android:name=".Calculator"
android:label="@string/appNameCalculator"
android:icon="@mipmap/ic_launcher_calculator"
android:targetActivity="org.thoughtcrime.securesms.home.HomeActivity"
android:enabled="false"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>

<activity-alias
android:name=".Meetings"
android:label="@string/appNameMeetingSE"
android:icon="@mipmap/ic_launcher_meetings"
android:enabled="false"
android:targetActivity="org.thoughtcrime.securesms.home.HomeActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>

<activity-alias
android:name=".Notes"
android:label="@string/appNameNotes"
android:icon="@mipmap/ic_launcher_notes"
android:enabled="false"
android:targetActivity="org.thoughtcrime.securesms.home.HomeActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>

<activity-alias
android:name=".Stocks"
android:label="@string/appNameStocks"
android:icon="@mipmap/ic_launcher_stocks"
android:enabled="false"
android:targetActivity="org.thoughtcrime.securesms.home.HomeActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>

<activity-alias
android:name=".Weather"
android:label="@string/appNameWeather"
android:icon="@mipmap/ic_launcher_weather"
android:enabled="false"
android:targetActivity="org.thoughtcrime.securesms.home.HomeActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>
</application>

</manifest>
Loading