Skip to content

Commit 7874ffa

Browse files
Merge pull request #1645 from session-foundation/release/1.28.2
Release/1.28.2 to dev
2 parents 139c1db + 551429c commit 7874ffa

File tree

6 files changed

+55
-35
lines changed

6 files changed

+55
-35
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ configurations.configureEach {
2626
exclude(module = "commons-logging")
2727
}
2828

29-
val canonicalVersionCode = 427
29+
val canonicalVersionCode = 429
3030
val canonicalVersionName = "1.30.0"
3131

3232
val postFixSize = 10

app/src/main/java/org/thoughtcrime/securesms/attachments/AvatarUploadManager.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.attachments
22

33
import android.app.Application
44
import android.os.FileObserver
5+
import kotlinx.coroutines.CancellationException
56
import kotlinx.coroutines.CoroutineScope
67
import kotlinx.coroutines.Dispatchers
78
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -95,11 +96,17 @@ class AvatarUploadManager @Inject constructor(
9596
}
9697

9798
Log.d(TAG, "Avatar expired, re-uploading")
98-
uploadAvatar(
99-
pictureData = localEncryptedFileInputStreamFactory.create(localFile)
100-
.use { it.readBytes() },
101-
isReupload = true,
102-
)
99+
try {
100+
uploadAvatar(
101+
pictureData = localEncryptedFileInputStreamFactory.create(localFile)
102+
.use { it.readBytes() },
103+
isReupload = true,
104+
)
105+
} catch (e: CancellationException) {
106+
throw e
107+
} catch (e: Exception) {
108+
Log.w(TAG, "Failed to re-upload avatar", e)
109+
}
103110
}
104111
} else {
105112
emptyFlow()

app/src/main/java/org/thoughtcrime/securesms/configs/ConfigToDatabaseSync.kt

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
88
import kotlinx.coroutines.flow.collectLatest
99
import kotlinx.coroutines.flow.combine
1010
import kotlinx.coroutines.flow.distinctUntilChanged
11+
import kotlinx.coroutines.flow.emptyFlow
1112
import kotlinx.coroutines.flow.filterNotNull
1213
import kotlinx.coroutines.flow.flatMapLatest
1314
import kotlinx.coroutines.flow.map
@@ -58,6 +59,7 @@ import org.thoughtcrime.securesms.util.castAwayType
5859
import java.util.EnumSet
5960
import java.util.concurrent.TimeUnit
6061
import javax.inject.Inject
62+
import kotlin.math.log
6163

6264
private const val TAG = "ConfigToDatabaseSync"
6365

@@ -93,17 +95,20 @@ class ConfigToDatabaseSync @Inject constructor(
9395
// Sync conversations from config -> database
9496
scope.launch {
9597
preferences.watchLocalNumber()
96-
.filterNotNull()
97-
.take(1)
98-
.flatMapLatest {
99-
combine(
100-
conversationRepository.conversationListAddressesFlow,
101-
configFactory.userConfigsChanged(EnumSet.of(UserConfigType.CONVO_INFO_VOLATILE))
102-
.castAwayType()
103-
.onStart { emit(Unit) }
104-
.map { _ -> configFactory.withUserConfigs { it.convoInfoVolatile.all() } },
105-
::Pair
106-
)
98+
.map { it != null }
99+
.flatMapLatest { loggedIn ->
100+
if (loggedIn) {
101+
combine(
102+
conversationRepository.conversationListAddressesFlow,
103+
configFactory.userConfigsChanged(EnumSet.of(UserConfigType.CONVO_INFO_VOLATILE))
104+
.castAwayType()
105+
.onStart { emit(Unit) }
106+
.map { _ -> configFactory.withUserConfigs { it.convoInfoVolatile.all() } },
107+
::Pair
108+
)
109+
} else {
110+
emptyFlow()
111+
}
107112
}
108113
.distinctUntilChanged()
109114
.collectLatest { (conversations, convoInfo) ->

app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1809,7 +1809,7 @@ class ConversationActivityV2 : ScreenLockActionBarActivity(), InputBarDelegate,
18091809

18101810
message.reaction = Reaction.from(
18111811
timestamp = originalMessage.timestamp,
1812-
author = originalAuthor.address,
1812+
author = originalAuthor.address,
18131813
emoji = emoji,
18141814
react = false
18151815
)

app/src/main/java/org/thoughtcrime/securesms/database/BlindMappingRepository.kt

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import kotlinx.coroutines.GlobalScope
55
import kotlinx.coroutines.flow.SharingStarted
66
import kotlinx.coroutines.flow.StateFlow
77
import kotlinx.coroutines.flow.distinctUntilChanged
8-
import kotlinx.coroutines.flow.filterNotNull
8+
import kotlinx.coroutines.flow.emptyFlow
99
import kotlinx.coroutines.flow.flatMapLatest
1010
import kotlinx.coroutines.flow.map
1111
import kotlinx.coroutines.flow.onStart
@@ -43,21 +43,24 @@ class BlindMappingRepository @Inject constructor(
4343
*/
4444
@Suppress("OPT_IN_USAGE")
4545
val mappings: StateFlow<Map<CommunityServerUrl, Map<Address.Blinded, Address.Standard>>> = prefs.watchLocalNumber()
46-
.filterNotNull()
4746
.flatMapLatest { localAddress ->
48-
configFactory
49-
.userConfigsChanged(setOf(UserConfigType.USER_GROUPS, UserConfigType.CONTACTS))
50-
.castAwayType()
51-
.onStart { emit(Unit) }
52-
.map {
53-
configFactory.withUserConfigs { configs ->
54-
Pair(
55-
configs.userGroups.allCommunityInfo().map { it.community },
56-
configs.contacts.all().map { Address.Standard(AccountId(it.id)) }
57-
+ Address.Standard(AccountId(localAddress))
58-
)
47+
if (localAddress.isNullOrBlank()) {
48+
emptyFlow()
49+
} else {
50+
configFactory
51+
.userConfigsChanged(setOf(UserConfigType.USER_GROUPS, UserConfigType.CONTACTS))
52+
.castAwayType()
53+
.onStart { emit(Unit) }
54+
.map {
55+
configFactory.withUserConfigs { configs ->
56+
Pair(
57+
configs.userGroups.allCommunityInfo().map { it.community },
58+
configs.contacts.all().map { Address.Standard(AccountId(it.id)) }
59+
+ Address.Standard(AccountId(localAddress))
60+
)
61+
}
5962
}
60-
}
63+
}
6164
}
6265
.distinctUntilChanged()
6366
.map { (allCommunities, allContacts) ->

app/src/main/java/org/thoughtcrime/securesms/database/RecipientRepository.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import kotlinx.coroutines.flow.SharedFlow
1212
import kotlinx.coroutines.flow.SharingStarted
1313
import kotlinx.coroutines.flow.debounce
1414
import kotlinx.coroutines.flow.distinctUntilChanged
15+
import kotlinx.coroutines.flow.emptyFlow
1516
import kotlinx.coroutines.flow.filter
1617
import kotlinx.coroutines.flow.filterIsInstance
1718
import kotlinx.coroutines.flow.filterNotNull
@@ -95,9 +96,13 @@ class RecipientRepository @Inject constructor(
9596

9697
fun observeSelf(): Flow<Recipient> {
9798
return preferences.watchLocalNumber()
98-
.filterNotNull()
99-
.distinctUntilChanged()
100-
.flatMapLatest { observeRecipient(it.toAddress()) }
99+
.flatMapLatest {
100+
if (it.isNullOrBlank()) {
101+
emptyFlow()
102+
} else {
103+
observeRecipient(it.toAddress())
104+
}
105+
}
101106
}
102107

103108
fun getSelf(): Recipient {

0 commit comments

Comments
 (0)