Skip to content

Release 1.23.0 #1115

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

Draft
wants to merge 48 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
8d8def5
[SES-3551] - Move libsession-util to remote repo (#1042)
SessionHero01 Mar 27, 2025
6a7e0f7
Making sure the path activity renders well o n small screens (#1061)
ThomasSession Mar 27, 2025
b20b02b
Feature/expired attachments (#1037)
ThomasSession Mar 27, 2025
1106987
Android target sdk 35 (#1063)
ThomasSession Mar 28, 2025
e67d62a
[SES-3368] - Convert MediaSendFragment to Kotlin (#1064)
SessionHero01 Mar 28, 2025
c487936
Merge branch 'dev' into release/1.22.0
SessionHero01 Mar 30, 2025
dea57ae
Merge pull request #1065 from session-foundation/release/1.22.0
SessionHero01 Mar 30, 2025
7b8e669
Android 15 fixes (#1066)
ThomasSession Mar 31, 2025
8785144
[SES-3368] - Fix image partial loading issue (#1046)
SessionHero01 Mar 31, 2025
b4a9b22
Fixing gradient issue on older android versions (#1069)
ThomasSession Apr 1, 2025
6aa0024
Searching for "Note to self" should show note to self in search resul…
ThomasSession Apr 1, 2025
f2cf756
Konvert searchRepository (#1071)
ThomasSession Apr 1, 2025
dbcffbd
Tidy up MediaSendFragment (#1068)
SessionHero01 Apr 3, 2025
a9bfe78
Merge branch 'dev' into release/1.22.1
ThomasSession Apr 6, 2025
2ffecfe
Merge pull request #1074 from session-foundation/release/1.22.1
SessionHero01 Apr 7, 2025
04de992
Fix/ses 3518 qa fixes (#1075)
ThomasSession Apr 8, 2025
49c7f18
SES-763 Contact block and delete functionality (#994)
AL-Session Apr 8, 2025
ddfda91
Fix "config too large" crash (#1077)
SessionHero01 Apr 9, 2025
485a110
Fixing alignments of visible message content views (#1079)
ThomasSession Apr 9, 2025
c91a9dd
Using Recipients instead of Contact to sync config (#1080)
ThomasSession Apr 9, 2025
256ad8d
Tweak UI to enable edge to edge (#1078)
SessionHero01 Apr 10, 2025
25dc9f0
New ui for failed attachment control (#1082)
ThomasSession Apr 13, 2025
bcc28ee
[Automated] Update translations from Crowdin (#1067)
stfsession Apr 14, 2025
ef1a4e5
Fix unable to leave v2 groups (#1089)
SessionHero01 Apr 15, 2025
705d4a0
[Automated] Update translations from Crowdin (#1090)
stfsession Apr 15, 2025
ae4d387
Share debug key (#1092)
SessionHero01 Apr 15, 2025
f7de115
Fix/contact delete qa (#1093)
ThomasSession Apr 16, 2025
094d02d
Only removing contacts from 1on1 (#1094)
ThomasSession Apr 16, 2025
3b773d6
[SES-3717] - Multi part config (#1095)
SessionHero01 Apr 17, 2025
620708f
Fix/attachment controls qa (#1096)
ThomasSession Apr 17, 2025
346d7ee
[SES-3593] - Disable KDF for sqlcipher (#1081)
SessionHero01 Apr 17, 2025
816c7a7
[SES-3717] - Add debug options to generate contacts (#1097)
SessionHero01 Apr 17, 2025
1cd3d3e
[Automated] Update translations from Crowdin (#1099)
stfsession Apr 21, 2025
862fd0f
Updating logic (#1102)
ThomasSession Apr 23, 2025
1a6234a
Fix deadlock clearing data on migration failure (#1103)
SessionHero01 Apr 23, 2025
08397c5
Fetch all config messages again (#1104)
SessionHero01 Apr 23, 2025
b74a8a2
Fix search issues (#1107)
SessionHero01 Apr 24, 2025
5ddf913
Only toggling fullscreen upon tapping media (#1108)
SessionHero01 Apr 25, 2025
a4cf82f
Fix contacts not appearing on search/share screens (#1110)
SessionHero01 Apr 27, 2025
960bafb
Make sure the image editor is constrained within the controls (#1109)
SessionHero01 Apr 28, 2025
137d2f2
Apply extra padding on camera screen to avoid being obscured by anima…
SessionHero01 Apr 28, 2025
7f26ea6
[SES-3740] - Fix "message requests" not showing (#1114)
SessionHero01 Apr 28, 2025
b5e091c
Merge remote-tracking branch 'origin/dev' into release/1.23.0
SessionHero01 Apr 29, 2025
6326096
Bump version to 1.23.0
SessionHero01 Apr 29, 2025
6f72d38
Fix empty state showing incorrectly (#1117)
SessionHero01 Apr 29, 2025
9df2085
Fix up animation (#1119)
SessionHero01 Apr 29, 2025
7bdbd3c
[SES-3743] - Fix message request approval message not showing (#1118)
SessionHero01 Apr 29, 2025
b6ab1ed
Add dependency between approval and reply job (#1120)
SessionHero01 Apr 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
[submodule "libsession-util/libsession-util"]
path = libsession-util/libsession-util
url = https://github.com/session-foundation/libsession-util.git
43 changes: 21 additions & 22 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 = 403
def canonicalVersionName = "1.22.1"
def canonicalVersionCode = 405
def canonicalVersionName = "1.23.0"

def postFixSize = 10
def abiPostFix = ['armeabi-v7a' : 1,
Expand Down Expand Up @@ -126,6 +126,7 @@ android {
isDefault true
minifyEnabled false
enableUnitTestCoverage true
signingConfig signingConfigs.debug
}
}

Expand All @@ -146,6 +147,15 @@ android {
keyPassword SESSION_HUAWEI_KEY_PASSWORD
}
}

debug {
// This keystore is for debug builds only and it should never be used to
// sign the release apk.
storeFile new File(rootProject.projectDir, "etc/debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
}

flavorDimensions "distribution"
Expand Down Expand Up @@ -270,7 +280,7 @@ dependencies {

implementation("com.google.dagger:hilt-android:$daggerHiltVersion")
implementation "androidx.appcompat:appcompat:$appcompatVersion"
implementation 'androidx.recyclerview:recyclerview:1.3.2'
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'
Expand All @@ -279,19 +289,19 @@ dependencies {
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.1.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.9.2'
implementation 'androidx.activity:activity-compose:1.9.2'
implementation 'androidx.fragment:fragment-ktx:1.8.4'
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.7.1"
implementation "androidx.work:work-runtime-ktx:2.10.0"

playImplementation ("com.google.firebase:firebase-messaging:24.0.0") {
exclude group: 'com.google.firebase', module: 'firebase-core'
Expand All @@ -305,21 +315,15 @@ dependencies {
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.06.1'
implementation 'io.github.webrtc-sdk:android:125.6422.07'
implementation "me.leolin:ShortcutBadger:1.1.16"
implementation 'se.emilsjolander:stickylistheaders:2.7.0'
implementation 'com.jpardogo.materialtabstrip:library:1.0.9'
implementation 'org.apache.httpcomponents:httpclient-android:4.3.5'
implementation 'commons-net:commons-net:3.7.2'
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 'com.pnikosis:materialish-progress:1.5'
implementation 'org.greenrobot:eventbus:3.0.0'
implementation 'pl.tajchert:waitingdots:0.1.0'
implementation 'com.vanniktech:android-image-cropper:4.5.0'
implementation 'com.melnykov:floatingactionbutton:1.3.0'
implementation ('com.davemorrissey.labs:subsampling-scale-image-view:3.6.0') {
exclude group: 'com.android.support', module: 'support-annotations'
}
Expand All @@ -331,12 +335,10 @@ dependencies {
exclude group: 'com.squareup.okhttp', module: 'okhttp-urlconnection'
}
implementation 'com.annimon:stream:1.1.8'
implementation 'com.github.dmytrodanylyk.circular-progress-button:library:1.1.3-S2'
implementation 'androidx.sqlite:sqlite-ktx:2.3.1'
implementation 'net.zetetic:sqlcipher-android:4.6.1@aar'
implementation 'net.zetetic:sqlcipher-android:4.7.2'
implementation project(":libsignal")
implementation project(":libsession")
implementation project(":libsession-util")
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinxJsonVersion"
implementation "com.github.session-foundation.session-android-curve-25519:curve25519-java:$curve25519Version"
implementation project(":liblazysodium")
Expand Down Expand Up @@ -364,9 +366,6 @@ dependencies {
// Core library
androidTestImplementation "androidx.test:core:$testCoreVersion"

androidTestImplementation('com.adevinta.android:barista:4.2.0') {
exclude group: 'org.jetbrains.kotlin'
}
// AndroidJUnitRunner and JUnit Rules
androidTestImplementation 'androidx.test:runner:1.5.2'
androidTestImplementation 'androidx.test:rules:1.5.0'
Expand Down Expand Up @@ -395,7 +394,7 @@ dependencies {
testImplementation 'app.cash.turbine:turbine:1.1.0'

// compose
Dependency composeBom = platform('androidx.compose:compose-bom:2024.09.01')
Dependency composeBom = platform('androidx.compose:compose-bom:2025.03.01')
implementation composeBom
testImplementation composeBom
androidTestImplementation composeBom
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<uses-sdk tools:overrideLibrary="com.astuetz.pagerslidingtabstrip,pl.tajchert.waitingdots,com.h6ah4i.android.multiselectlistpreferencecompat,android.support.v13,com.davemorrissey.labs.subscaleview,com.tomergoldst.tooltips,com.klinker.android.send_message,com.takisoft.colorpicker,android.support.v14.preference" />
<uses-sdk tools:overrideLibrary="android.support.v13,com.davemorrissey.labs.subscaleview,com.tomergoldst.tooltips,com.klinker.android.send_message,android.support.v14.preference" />

<permission
android:name="network.loki.messenger.ACCESS_SESSION_SECRETS"
Expand Down Expand Up @@ -62,7 +62,6 @@
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- Only used on Android API 29 and lower -->
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="network.loki.messenger.ACCESS_SESSION_SECRETS" />

Expand Down Expand Up @@ -174,7 +173,7 @@
android:name="org.thoughtcrime.securesms.recoverypassword.RecoveryPasswordActivity"
android:screenOrientation="portrait" />
<activity
android:name="org.thoughtcrime.securesms.contacts.SelectContactsActivity"
android:name="org.thoughtcrime.securesms.contacts.SelectContactsToInviteToGroupActivity"
android:screenOrientation="portrait" />
<activity
android:name="org.thoughtcrime.securesms.preferences.PrivacySettingsActivity"
Expand Down Expand Up @@ -315,6 +314,7 @@
android:value="org.thoughtcrime.securesms.home.HomeActivity" />
</activity>
<activity android:name="org.thoughtcrime.securesms.media.MediaOverviewActivity" />
<activity android:name="org.thoughtcrime.securesms.migration.DatabaseMigrationStateActivity" />

<service
android:name="org.thoughtcrime.securesms.service.KeyCachingService"
Expand Down
22 changes: 13 additions & 9 deletions app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.kt
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint
import org.thoughtcrime.securesms.logging.AndroidLogger
import org.thoughtcrime.securesms.logging.PersistentLogger
import org.thoughtcrime.securesms.logging.UncaughtExceptionLogger
import org.thoughtcrime.securesms.migration.DatabaseMigrationManager
import org.thoughtcrime.securesms.notifications.BackgroundPollManager
import org.thoughtcrime.securesms.notifications.NotificationChannels
import org.thoughtcrime.securesms.notifications.PushRegistrationHandler
Expand Down Expand Up @@ -164,6 +165,7 @@ class ApplicationContext : Application(), DefaultLifecycleObserver,
@Inject lateinit var destroyedGroupSync: DestroyedGroupSync
@Inject lateinit var removeGroupMemberHandler: RemoveGroupMemberHandler // Exists here only to start upon app starts
@Inject lateinit var snodeClock: SnodeClock
@Inject lateinit var migrationManager: DatabaseMigrationManager

@get:Deprecated(message = "Use proper DI to inject this component")
@Inject
Expand Down Expand Up @@ -205,6 +207,11 @@ class ApplicationContext : Application(), DefaultLifecycleObserver,
@Volatile
var isAppVisible: Boolean = false

override val workManagerConfiguration: Configuration
get() = Configuration.Builder()
.setWorkerFactory(workerFactory)
.build()

override fun getSystemService(name: String): Any? {
if (MessagingModuleConfiguration.MESSAGING_MODULE_SERVICE == name) {
return messagingModuleConfiguration!!
Expand Down Expand Up @@ -313,6 +320,9 @@ class ApplicationContext : Application(), DefaultLifecycleObserver,
adminStateSync.start()
cleanupInvitationHandler.start()

// Start our migration process as early as possible so we can show the user a progress UI
migrationManager.requestMigration(fromRetry = false)

// add our shortcut debug menu if we are not in a release build
if (BuildConfig.BUILD_TYPE != "release") {
// add the config settings shortcut
Expand All @@ -330,12 +340,6 @@ class ApplicationContext : Application(), DefaultLifecycleObserver,
}
}

override fun getWorkManagerConfiguration(): Configuration {
return Configuration.Builder()
.setWorkerFactory(workerFactory)
.build()
}

override fun onStart(owner: LifecycleOwner) {
isAppVisible = true
Log.i(TAG, "App is now visible.")
Expand Down Expand Up @@ -439,9 +443,9 @@ class ApplicationContext : Application(), DefaultLifecycleObserver,
private class ProviderInitializationException : RuntimeException()

private fun setUpPollingIfNeeded() {
val userPublicKey = textSecurePreferences!!.getLocalNumber() ?: return
val userPublicKey = textSecurePreferences.getLocalNumber() ?: return
if (poller == null) {
poller = Poller(configFactory!!, storage!!, lokiAPIDatabase!!)
poller = Poller(configFactory, storage, lokiAPIDatabase, prefs)
}
}

Expand All @@ -450,7 +454,7 @@ class ApplicationContext : Application(), DefaultLifecycleObserver,
if (poller != null) {
poller!!.startIfNeeded()
}
legacyClosedGroupPollerV2!!.start()
legacyClosedGroupPollerV2.start()
}

fun retrieveUserProfile() {
Expand Down

This file was deleted.

Loading