Skip to content

Commit 8280cef

Browse files
Merge pull request #1115 from session-foundation/release/1.23.0
Release 1.23.0
2 parents 5db8a18 + bca46c2 commit 8280cef

File tree

384 files changed

+5889
-9534
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

384 files changed

+5889
-9534
lines changed

.gitmodules

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +0,0 @@
1-
[submodule "libsession-util/libsession-util"]
2-
path = libsession-util/libsession-util
3-
url = https://github.com/session-foundation/libsession-util.git

app/build.gradle

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ configurations.configureEach {
1515
exclude module: "commons-logging"
1616
}
1717

18-
def canonicalVersionCode = 403
19-
def canonicalVersionName = "1.22.1"
18+
def canonicalVersionCode = 406
19+
def canonicalVersionName = "1.23.0"
2020

2121
def postFixSize = 10
2222
def abiPostFix = ['armeabi-v7a' : 1,
@@ -126,6 +126,7 @@ android {
126126
isDefault true
127127
minifyEnabled false
128128
enableUnitTestCoverage true
129+
signingConfig signingConfigs.debug
129130
}
130131
}
131132

@@ -146,6 +147,15 @@ android {
146147
keyPassword SESSION_HUAWEI_KEY_PASSWORD
147148
}
148149
}
150+
151+
debug {
152+
// This keystore is for debug builds only and it should never be used to
153+
// sign the release apk.
154+
storeFile new File(rootProject.projectDir, "etc/debug.keystore")
155+
storePassword "android"
156+
keyAlias "androiddebugkey"
157+
keyPassword "android"
158+
}
149159
}
150160

151161
flavorDimensions "distribution"
@@ -270,7 +280,7 @@ dependencies {
270280

271281
implementation("com.google.dagger:hilt-android:$daggerHiltVersion")
272282
implementation "androidx.appcompat:appcompat:$appcompatVersion"
273-
implementation 'androidx.recyclerview:recyclerview:1.3.2'
283+
implementation 'androidx.recyclerview:recyclerview:1.4.0'
274284
implementation "com.google.android.material:material:$materialVersion"
275285
implementation 'com.google.android.flexbox:flexbox:3.0.0'
276286
implementation 'androidx.legacy:legacy-support-v13:1.0.0'
@@ -279,19 +289,19 @@ dependencies {
279289
implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
280290
implementation 'androidx.gridlayout:gridlayout:1.0.0'
281291
implementation 'androidx.exifinterface:exifinterface:1.3.4'
282-
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
292+
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
283293
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion"
284294
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion"
285295
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion"
286296
implementation "androidx.lifecycle:lifecycle-process:$lifecycleVersion"
287297
implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycleVersion"
288298
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
289299
implementation "androidx.paging:paging-runtime-ktx:$pagingVersion"
290-
implementation 'androidx.activity:activity-ktx:1.9.2'
291-
implementation 'androidx.activity:activity-compose:1.9.2'
292-
implementation 'androidx.fragment:fragment-ktx:1.8.4'
300+
implementation 'androidx.activity:activity-ktx:1.10.1'
301+
implementation 'androidx.activity:activity-compose:1.10.1'
302+
implementation 'androidx.fragment:fragment-ktx:1.8.6'
293303
implementation "androidx.core:core-ktx:$coreVersion"
294-
implementation "androidx.work:work-runtime-ktx:2.7.1"
304+
implementation "androidx.work:work-runtime-ktx:2.10.0"
295305

296306
playImplementation ("com.google.firebase:firebase-messaging:24.0.0") {
297307
exclude group: 'com.google.firebase', module: 'firebase-core'
@@ -305,21 +315,15 @@ dependencies {
305315
implementation 'androidx.media3:media3-ui:1.4.0'
306316
implementation 'org.conscrypt:conscrypt-android:2.5.2'
307317
implementation 'org.signal:aesgcmprovider:0.0.3'
308-
implementation 'io.github.webrtc-sdk:android:125.6422.06.1'
318+
implementation 'io.github.webrtc-sdk:android:125.6422.07'
309319
implementation "me.leolin:ShortcutBadger:1.1.16"
310-
implementation 'se.emilsjolander:stickylistheaders:2.7.0'
311-
implementation 'com.jpardogo.materialtabstrip:library:1.0.9'
312320
implementation 'org.apache.httpcomponents:httpclient-android:4.3.5'
313-
implementation 'commons-net:commons-net:3.7.2'
314321
implementation 'com.github.chrisbanes:PhotoView:2.1.3'
315322
implementation "com.github.bumptech.glide:glide:$glideVersion"
316323
implementation "com.github.bumptech.glide:compose:1.0.0-beta01"
317324
implementation 'com.makeramen:roundedimageview:2.1.0'
318-
implementation 'com.pnikosis:materialish-progress:1.5'
319325
implementation 'org.greenrobot:eventbus:3.0.0'
320-
implementation 'pl.tajchert:waitingdots:0.1.0'
321326
implementation 'com.vanniktech:android-image-cropper:4.5.0'
322-
implementation 'com.melnykov:floatingactionbutton:1.3.0'
323327
implementation ('com.davemorrissey.labs:subsampling-scale-image-view:3.6.0') {
324328
exclude group: 'com.android.support', module: 'support-annotations'
325329
}
@@ -331,12 +335,10 @@ dependencies {
331335
exclude group: 'com.squareup.okhttp', module: 'okhttp-urlconnection'
332336
}
333337
implementation 'com.annimon:stream:1.1.8'
334-
implementation 'com.github.dmytrodanylyk.circular-progress-button:library:1.1.3-S2'
335338
implementation 'androidx.sqlite:sqlite-ktx:2.3.1'
336-
implementation 'net.zetetic:sqlcipher-android:4.6.1@aar'
339+
implementation 'net.zetetic:sqlcipher-android:4.7.2'
337340
implementation project(":libsignal")
338341
implementation project(":libsession")
339-
implementation project(":libsession-util")
340342
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinxJsonVersion"
341343
implementation "com.github.session-foundation.session-android-curve-25519:curve25519-java:$curve25519Version"
342344
implementation project(":liblazysodium")
@@ -364,9 +366,6 @@ dependencies {
364366
// Core library
365367
androidTestImplementation "androidx.test:core:$testCoreVersion"
366368

367-
androidTestImplementation('com.adevinta.android:barista:4.2.0') {
368-
exclude group: 'org.jetbrains.kotlin'
369-
}
370369
// AndroidJUnitRunner and JUnit Rules
371370
androidTestImplementation 'androidx.test:runner:1.5.2'
372371
androidTestImplementation 'androidx.test:rules:1.5.0'
@@ -395,7 +394,7 @@ dependencies {
395394
testImplementation 'app.cash.turbine:turbine:1.1.0'
396395

397396
// compose
398-
Dependency composeBom = platform('androidx.compose:compose-bom:2024.09.01')
397+
Dependency composeBom = platform('androidx.compose:compose-bom:2025.03.01')
399398
implementation composeBom
400399
testImplementation composeBom
401400
androidTestImplementation composeBom

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
xmlns:android="http://schemas.android.com/apk/res/android"
44
xmlns:tools="http://schemas.android.com/tools">
55

6-
<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" />
6+
<uses-sdk tools:overrideLibrary="android.support.v13,com.davemorrissey.labs.subscaleview,com.tomergoldst.tooltips,com.klinker.android.send_message,android.support.v14.preference" />
77

88
<permission
99
android:name="network.loki.messenger.ACCESS_SESSION_SECRETS"
@@ -62,7 +62,6 @@
6262
<uses-permission android:name="android.permission.WAKE_LOCK" />
6363
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- Only used on Android API 29 and lower -->
6464
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
65-
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
6665
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
6766
<uses-permission android:name="network.loki.messenger.ACCESS_SESSION_SECRETS" />
6867

@@ -174,7 +173,7 @@
174173
android:name="org.thoughtcrime.securesms.recoverypassword.RecoveryPasswordActivity"
175174
android:screenOrientation="portrait" />
176175
<activity
177-
android:name="org.thoughtcrime.securesms.contacts.SelectContactsActivity"
176+
android:name="org.thoughtcrime.securesms.contacts.SelectContactsToInviteToGroupActivity"
178177
android:screenOrientation="portrait" />
179178
<activity
180179
android:name="org.thoughtcrime.securesms.preferences.PrivacySettingsActivity"
@@ -315,6 +314,7 @@
315314
android:value="org.thoughtcrime.securesms.home.HomeActivity" />
316315
</activity>
317316
<activity android:name="org.thoughtcrime.securesms.media.MediaOverviewActivity" />
317+
<activity android:name="org.thoughtcrime.securesms.migration.DatabaseMigrationStateActivity" />
318318

319319
<service
320320
android:name="org.thoughtcrime.securesms.service.KeyCachingService"

app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.kt

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint
9393
import org.thoughtcrime.securesms.logging.AndroidLogger
9494
import org.thoughtcrime.securesms.logging.PersistentLogger
9595
import org.thoughtcrime.securesms.logging.UncaughtExceptionLogger
96+
import org.thoughtcrime.securesms.migration.DatabaseMigrationManager
9697
import org.thoughtcrime.securesms.notifications.BackgroundPollManager
9798
import org.thoughtcrime.securesms.notifications.NotificationChannels
9899
import org.thoughtcrime.securesms.notifications.PushRegistrationHandler
@@ -164,6 +165,7 @@ class ApplicationContext : Application(), DefaultLifecycleObserver,
164165
@Inject lateinit var destroyedGroupSync: DestroyedGroupSync
165166
@Inject lateinit var removeGroupMemberHandler: RemoveGroupMemberHandler // Exists here only to start upon app starts
166167
@Inject lateinit var snodeClock: SnodeClock
168+
@Inject lateinit var migrationManager: DatabaseMigrationManager
167169

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

210+
override val workManagerConfiguration: Configuration
211+
get() = Configuration.Builder()
212+
.setWorkerFactory(workerFactory)
213+
.build()
214+
208215
override fun getSystemService(name: String): Any? {
209216
if (MessagingModuleConfiguration.MESSAGING_MODULE_SERVICE == name) {
210217
return messagingModuleConfiguration!!
@@ -313,6 +320,9 @@ class ApplicationContext : Application(), DefaultLifecycleObserver,
313320
adminStateSync.start()
314321
cleanupInvitationHandler.start()
315322

323+
// Start our migration process as early as possible so we can show the user a progress UI
324+
migrationManager.requestMigration(fromRetry = false)
325+
316326
// add our shortcut debug menu if we are not in a release build
317327
if (BuildConfig.BUILD_TYPE != "release") {
318328
// add the config settings shortcut
@@ -330,12 +340,6 @@ class ApplicationContext : Application(), DefaultLifecycleObserver,
330340
}
331341
}
332342

333-
override fun getWorkManagerConfiguration(): Configuration {
334-
return Configuration.Builder()
335-
.setWorkerFactory(workerFactory)
336-
.build()
337-
}
338-
339343
override fun onStart(owner: LifecycleOwner) {
340344
isAppVisible = true
341345
Log.i(TAG, "App is now visible.")
@@ -439,9 +443,9 @@ class ApplicationContext : Application(), DefaultLifecycleObserver,
439443
private class ProviderInitializationException : RuntimeException()
440444

441445
private fun setUpPollingIfNeeded() {
442-
val userPublicKey = textSecurePreferences!!.getLocalNumber() ?: return
446+
val userPublicKey = textSecurePreferences.getLocalNumber() ?: return
443447
if (poller == null) {
444-
poller = Poller(configFactory!!, storage!!, lokiAPIDatabase!!)
448+
poller = Poller(configFactory, storage, lokiAPIDatabase, prefs)
445449
}
446450
}
447451

@@ -450,7 +454,7 @@ class ApplicationContext : Application(), DefaultLifecycleObserver,
450454
if (poller != null) {
451455
poller!!.startIfNeeded()
452456
}
453-
legacyClosedGroupPollerV2!!.start()
457+
legacyClosedGroupPollerV2.start()
454458
}
455459

456460
fun retrieveUserProfile() {

app/src/main/java/org/thoughtcrime/securesms/BaseActionBarActivity.java

Lines changed: 0 additions & 133 deletions
This file was deleted.

0 commit comments

Comments
 (0)