diff --git a/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/ImageUploadTesting.kt b/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/ImageUploadTesting.kt index 0d4f7d976..a5f447e65 100644 --- a/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/ImageUploadTesting.kt +++ b/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/ImageUploadTesting.kt @@ -127,7 +127,7 @@ class ImageUploadTesting { // assertEquals(server.baseUrl, "${server.baseUrl}/$initialHash", result.url?.removeSuffix(".png")) val imageData: ByteArray = - ImageDownloader().waitAndGetImage(result.url!!, { client })?.bytes + ImageDownloader().waitAndGetImage(result.url!!) { client }?.bytes ?: run { fail("${server.name}: Should not be null") return @@ -142,8 +142,7 @@ class ImageUploadTesting { ServerInfoRetriever() .loadInfo( server.baseUrl, - { client }, - ) + ) { client } val payload = getBitmap() val inputStream = payload.inputStream() @@ -172,7 +171,7 @@ class ImageUploadTesting { Assert.assertTrue("${server.name}: Invalid result url", url.startsWith("http")) val imageData: ByteArray = - ImageDownloader().waitAndGetImage(url, { client })?.bytes + ImageDownloader().waitAndGetImage(url) { client }?.bytes ?: run { fail("${server.name}: Should not be null") return diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index 3b65d75b5..f394fec57 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -1240,7 +1240,7 @@ class Account( val event = signer.sign(template) cache.justConsumeMyOwnEvent(event) val relays = relayList(event) - if (relays != null && relays.isNotEmpty()) { + if (!relays.isNullOrEmpty()) { client.send(event, relays.toSet()) } else { client.send(event, computeRelayListToBroadcast(event)) @@ -1898,7 +1898,7 @@ class Account( fun getRelevantReports(note: Note): Set { val innerReports = if (note.event is RepostEvent || note.event is GenericRepostEvent) { - note.replyTo?.map { getRelevantReports(it) }?.flatten() ?: emptyList() + note.replyTo?.flatMap { getRelevantReports(it) } ?: emptyList() } else { emptyList() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt index 0f637f3ed..7e8a21219 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt @@ -2770,10 +2770,9 @@ object LocalCache : ILocalCache, ICacheProvider { val childrenToBeRemoved = mutableListOf() val toBeRemoved = - account.hiddenUsers.flow.value.hiddenUsers - .map { userHex -> - (notes.filter { _, it -> it.event?.pubKey == userHex } + addressables.filter { _, it -> it.event?.pubKey == userHex }).toSet() - }.flatten() + account.hiddenUsers.flow.value.hiddenUsers.flatMap { userHex -> + (notes.filter { _, it -> it.event?.pubKey == userHex } + addressables.filter { _, it -> it.event?.pubKey == userHex }).toSet() + } toBeRemoved.forEach { removeFromCache(it) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip51Lists/labeledBookmarkLists/LabeledBookmarkList.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip51Lists/labeledBookmarkLists/LabeledBookmarkList.kt index fc82eb262..8a16f79bd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip51Lists/labeledBookmarkLists/LabeledBookmarkList.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip51Lists/labeledBookmarkLists/LabeledBookmarkList.kt @@ -34,9 +34,9 @@ data class LabeledBookmarkList( val privateBookmarks: Set = emptySet(), val publicBookmarks: Set = emptySet(), ) { - val privatePostBookmarks = privateBookmarks.filter { it is EventBookmark }.map { bookmarkIdTag -> bookmarkIdTag as EventBookmark } - val publicPostBookmarks = publicBookmarks.filter { it is EventBookmark }.map { bookmarkIdTag -> bookmarkIdTag as EventBookmark } + val privatePostBookmarks = privateBookmarks.filterIsInstance() + val publicPostBookmarks = publicBookmarks.filterIsInstance() - val privateArticleBookmarks = privateBookmarks.filter { it is AddressBookmark }.map { bookmarkIdTag -> bookmarkIdTag as AddressBookmark } - val publicArticleBookmarks = publicBookmarks.filter { it is AddressBookmark }.map { bookmarkIdTag -> bookmarkIdTag as AddressBookmark } + val privateArticleBookmarks = privateBookmarks.filterIsInstance() + val publicArticleBookmarks = publicBookmarks.filterIsInstance() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt index 4eba0cb07..da9cc9ae5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt @@ -65,14 +65,11 @@ class LightningAddressResolver { okHttpClient: (String) -> OkHttpClient, context: Context, ): String { - val url = assembleUrl(lnAddress) - - if (url == null) { - throw LightningAddressError( + val url = + assembleUrl(lnAddress) ?: throw LightningAddressError( stringRes(context, R.string.error_unable_to_fetch_invoice), stringRes(context, R.string.could_not_assemble_lnurl_from_lightning_address_check_the_user_s_setup, lnAddress), ) - } val client = okHttpClient(url) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/okhttp/OkHttpWebSocket.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/okhttp/OkHttpWebSocket.kt index 146d532e8..9f2ad864a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/okhttp/OkHttpWebSocket.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/okhttp/OkHttpWebSocket.kt @@ -48,8 +48,7 @@ class OkHttpWebSocket( override fun needsReconnect(): Boolean { if (socket == null) return true - val myUsingOkHttp = usingOkHttp - if (myUsingOkHttp == null) return true + val myUsingOkHttp = usingOkHttp ?: return true val currentOkHttp = httpClient(url) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/model/ListWithUniqueSetCache.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/model/ListWithUniqueSetCache.kt index e51406c75..c48bc6a6b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/model/ListWithUniqueSetCache.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/model/ListWithUniqueSetCache.kt @@ -41,7 +41,7 @@ class ListWithUniqueSetCache( } fun distinct(): Set { - var currentSet = cacheSet.get() + val currentSet = cacheSet.get() // Check if the cached set is based on the current list if (currentSet != null) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/drafts/FilterDraftsAndReportsFromKey.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/drafts/FilterDraftsAndReportsFromKey.kt index 08cbe1654..e4525e953 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/drafts/FilterDraftsAndReportsFromKey.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/drafts/FilterDraftsAndReportsFromKey.kt @@ -36,7 +36,7 @@ fun filterDraftsFromKey( pubkey: HexKey?, since: Long?, ): List { - if (pubkey == null || pubkey.isEmpty()) return emptyList() + if (pubkey.isNullOrEmpty()) return emptyList() return listOf( RelayBasedFilter( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/follows/FilterFindFollowMetadataForKey.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/follows/FilterFindFollowMetadataForKey.kt index efbc76b80..4db9ea1e5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/follows/FilterFindFollowMetadataForKey.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/follows/FilterFindFollowMetadataForKey.kt @@ -92,7 +92,7 @@ fun pickRelaysToLoadUsers( val outbox = key.authorRelayList()?.writeRelaysNorm() - if (outbox != null && outbox.isNotEmpty()) { + if (!outbox.isNullOrEmpty()) { // If there is a home, get from it. // if it tried all outbox relays, stop. diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/metadata/FilterBasicAccountInfoFromKeys.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/metadata/FilterBasicAccountInfoFromKeys.kt index 6d78b6a09..f680b4c0a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/metadata/FilterBasicAccountInfoFromKeys.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/metadata/FilterBasicAccountInfoFromKeys.kt @@ -70,7 +70,7 @@ fun filterBasicAccountInfoFromKeys( otherAccounts: List?, since: Long?, ): List { - if (otherAccounts == null || otherAccounts.isEmpty()) return emptyList() + if (otherAccounts.isNullOrEmpty()) return emptyList() return listOf( RelayBasedFilter( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/metadata/FilterBookmarksAndReportsFromKey.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/metadata/FilterBookmarksAndReportsFromKey.kt index 4ede695a3..cc8ebc0b8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/metadata/FilterBookmarksAndReportsFromKey.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/metadata/FilterBookmarksAndReportsFromKey.kt @@ -38,7 +38,7 @@ fun filterBookmarksAndReportsFromKey( pubkey: HexKey?, since: Long?, ): List { - if (pubkey == null || pubkey.isEmpty()) return emptyList() + if (pubkey.isNullOrEmpty()) return emptyList() return listOf( RelayBasedFilter( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip01Notifications/FilterNotificationsToPubkey.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip01Notifications/FilterNotificationsToPubkey.kt index 02c02efc3..bf7c6659f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip01Notifications/FilterNotificationsToPubkey.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip01Notifications/FilterNotificationsToPubkey.kt @@ -90,7 +90,7 @@ fun filterSummaryNotificationsToPubkey( pubkey: HexKey?, since: Long?, ): List { - if (pubkey == null || pubkey.isEmpty()) return emptyList() + if (pubkey.isNullOrEmpty()) return emptyList() return listOf( RelayBasedFilter( @@ -111,7 +111,7 @@ fun filterNotificationsToPubkey( pubkey: HexKey?, since: Long?, ): List { - if (pubkey == null || pubkey.isEmpty()) return emptyList() + if (pubkey.isNullOrEmpty()) return emptyList() return listOf( RelayBasedFilter( @@ -142,7 +142,7 @@ fun filterJustTheLatestNotificationsToPubkeyFromRandomRelays( pubkey: HexKey?, since: Long?, ): List { - if (pubkey == null || pubkey.isEmpty()) return emptyList() + if (pubkey.isNullOrEmpty()) return emptyList() return listOf( RelayBasedFilter( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip59GiftWraps/FilterGiftWrapsToPubkey.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip59GiftWraps/FilterGiftWrapsToPubkey.kt index 03481eeae..081f2e486 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip59GiftWraps/FilterGiftWrapsToPubkey.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip59GiftWraps/FilterGiftWrapsToPubkey.kt @@ -32,7 +32,7 @@ fun filterGiftWrapsToPubkey( pubkey: HexKey?, since: Long?, ): List { - if (pubkey == null || pubkey.isEmpty()) return emptyList() + if (pubkey.isNullOrEmpty()) return emptyList() return listOf( RelayBasedFilter( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingAddressables.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingAddressables.kt index 629aef281..251cf0fa2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingAddressables.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingAddressables.kt @@ -40,7 +40,7 @@ fun potentialRelaysToFindAddress(note: AddressableNote): Set LocalCache.getAnyChannel(note)?.relays()?.let { set.addAll(it) } - note.replyTo?.map { parentNote -> + note.replyTo?.forEach { parentNote -> set.addAll(parentNote.relays) LocalCache.getAnyChannel(parentNote)?.relays()?.let { set.addAll(it) } @@ -48,7 +48,7 @@ fun potentialRelaysToFindAddress(note: AddressableNote): Set parentNote.author?.inboxRelays()?.let { set.addAll(it) } } - note.replies.map { childNote -> + note.replies.forEach { childNote -> set.addAll(childNote.relays) LocalCache.getAnyChannel(childNote)?.relays()?.let { set.addAll(it) } @@ -63,7 +63,7 @@ fun potentialRelaysToFindAddress(note: AddressableNote): Set } } - note.boosts.map { childNote -> + note.boosts.forEach { childNote -> set.addAll(childNote.relays) childNote.author?.outboxRelays()?.let { set.addAll(it) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingEvents.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingEvents.kt index b4f378205..1506da482 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingEvents.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingEvents.kt @@ -36,7 +36,7 @@ fun potentialRelaysToFindEvent(note: Note): Set { LocalCache.getAnyChannel(note)?.relays()?.let { set.addAll(it) } - note.replyTo?.map { parentNote -> + note.replyTo?.forEach { parentNote -> set.addAll(parentNote.relays) LocalCache.getAnyChannel(parentNote)?.relays()?.let { set.addAll(it) } @@ -44,7 +44,7 @@ fun potentialRelaysToFindEvent(note: Note): Set { parentNote.author?.inboxRelays()?.let { set.addAll(it) } } - note.replies.map { childNote -> + note.replies.forEach { childNote -> set.addAll(childNote.relays) LocalCache.getAnyChannel(childNote)?.relays()?.let { set.addAll(it) } @@ -59,7 +59,7 @@ fun potentialRelaysToFindEvent(note: Note): Set { } } - note.boosts.map { childNote -> + note.boosts.forEach { childNote -> set.addAll(childNote.relays) childNote.author?.outboxRelays()?.let { set.addAll(it) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/user/watchers/UserCardsSubAssembler.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/user/watchers/UserCardsSubAssembler.kt index f749ea41d..19474b6c4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/user/watchers/UserCardsSubAssembler.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/user/watchers/UserCardsSubAssembler.kt @@ -68,7 +68,7 @@ class UserCardsSubAssembler( val trustedAccounts: Map> = mapOfSet { accounts.forEach { account -> - account.homeRelays.flow.value.map { + account.homeRelays.flow.value.forEach { add(it, account.userProfile().pubkeyHex) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/AudioWaveformReadOnly.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/AudioWaveformReadOnly.kt index 59ea44a51..b23559684 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/AudioWaveformReadOnly.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/AudioWaveformReadOnly.kt @@ -170,7 +170,7 @@ internal fun Iterable.fillToSize( transform: (List) -> T, ): List { val capacity = ceil(size.safeDiv(count())).roundToInt() - return map { data -> List(capacity) { data } }.flatten().chunkToSize(size, transform) + return flatMap { data -> List(capacity) { data } }.chunkToSize(size, transform) } internal fun Iterable.chunkToSize( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt index 18b45ffc4..4b7e59b38 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt @@ -117,7 +117,7 @@ fun SensitivityWarning( @Composable fun ContentWarningNotePreview() { ThemeComparisonColumn { - ContentWarningNote({}) + ContentWarningNote {} } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NIP05VerificationDisplay.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NIP05VerificationDisplay.kt index 281f797ae..c7396dd00 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NIP05VerificationDisplay.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NIP05VerificationDisplay.kt @@ -167,7 +167,7 @@ fun ObserveAllStatusesToAvoidSwitchigAllTheTime( statuses: ImmutableList, accountViewModel: AccountViewModel, ) { - statuses.map { + statuses.forEach { EventFinderFilterAssemblerSubscription(it, accountViewModel) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ReplyInformation.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ReplyInformation.kt index 1a50d6e23..bf760560e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ReplyInformation.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ReplyInformation.kt @@ -86,8 +86,8 @@ fun ReplyInformationChannel( onUserTagClick: (User) -> Unit, ) { FlowRow { - if (mentions != null && mentions.isNotEmpty()) { - if (replyTo != null && replyTo.isNotEmpty()) { + if (!mentions.isNullOrEmpty()) { + if (!replyTo.isNullOrEmpty()) { Text( stringRes(id = R.string.replying_to), fontSize = 13.sp, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayUncitedHashtags.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayUncitedHashtags.kt index 11f573256..c63cd5a5c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayUncitedHashtags.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayUncitedHashtags.kt @@ -66,15 +66,15 @@ fun DisplayUncitedHashtags( val tagsInContent = state .paragraphs - .map { - it.words.mapNotNull { + .flatMap { paragraphState -> + paragraphState.words.mapNotNull { if (it is HashTagSegment) { it.hashtag } else { null } } - }.flatten() + } val unusedHashtags = tagsInEvent.filterNot { eventTag -> diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/datasource/FilterNip04DMs.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/datasource/FilterNip04DMs.kt index 1f7540e45..ec277266d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/datasource/FilterNip04DMs.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/datasource/FilterNip04DMs.kt @@ -35,7 +35,7 @@ fun filterNip04DMs( account: Account?, since: SincePerRelayMap?, ): List? { - if (group == null || group.isEmpty() || account == null) return null + if (group.isNullOrEmpty() || account == null) return null val userOutboxRelays = account.homeRelays.flow.value val userInboxRelays = account.dmRelays.flow.value diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/ChatNewMessageViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/ChatNewMessageViewModel.kt index aaa510974..108f67fd4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/ChatNewMessageViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/ChatNewMessageViewModel.kt @@ -596,7 +596,7 @@ class ChatNewMessageViewModel : toUsersTagger.run() val users = toUsersTagger.pTags?.mapTo(mutableSetOf()) { it.pubkeyHex } - if (users == null || users.isEmpty()) { + if (users.isNullOrEmpty()) { room = null updateNIP17StatusFromRoom() } else { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip53LiveActivities/DiscoverLiveFeedFilter.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip53LiveActivities/DiscoverLiveFeedFilter.kt index 68ad9f137..883366290 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip53LiveActivities/DiscoverLiveFeedFilter.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip53LiveActivities/DiscoverLiveFeedFilter.kt @@ -117,8 +117,7 @@ open class DiscoverLiveFeedFilter( fun convertStatusToOrder(event: LiveActivitiesEvent?): Int { if (event == null) return 0 - val url = event.streaming() - if (url == null) return 0 + val url = event.streaming() ?: return 0 return when (event.status()) { StatusTag.STATUS.LIVE -> { if (OnlineChecker.isCachedAndOffline(url)) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip72Communities/subassemblies/FilterCommunitiesByHashtag.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip72Communities/subassemblies/FilterCommunitiesByHashtag.kt index a45973b3b..f5b4a505b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip72Communities/subassemblies/FilterCommunitiesByHashtag.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip72Communities/subassemblies/FilterCommunitiesByHashtag.kt @@ -34,7 +34,7 @@ fun filterCommunitiesByHashtag( hashtags: Set?, since: Long?, ): List { - if (hashtags == null || hashtags.isEmpty()) return emptyList() + if (hashtags.isNullOrEmpty()) return emptyList() val hashtags = hashtags.flatMap(::hashtagAlts).distinct().sorted() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/subassemblies/FilterClassifiedsByHashtag.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/subassemblies/FilterClassifiedsByHashtag.kt index bc425ba1b..bf227d5e0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/subassemblies/FilterClassifiedsByHashtag.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/subassemblies/FilterClassifiedsByHashtag.kt @@ -33,7 +33,7 @@ fun filterClassifiedsByHashtag( hashtags: Set?, since: Long?, ): List? { - if (hashtags == null || hashtags.isEmpty()) return null + if (hashtags.isNullOrEmpty()) return null val hashtags = hashtags.flatMap(::hashtagAlts).distinct().sorted() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostViewModel.kt index 32cfc5707..db41c7152 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostViewModel.kt @@ -555,8 +555,8 @@ open class ShortNotePostViewModel : val serverToUse = voiceSelectedServer ?: accountViewModel.account.settings.defaultFileServer uploadVoiceMessageSync( serverToUse, - { _, _ -> }, // Error handling is done by checking voiceMetadata below - ) + ) { _, _ -> } // Error handling is done by checking voiceMetadata below + // Abort if upload failed - don't post without voice data if (voiceMetadata == null) { Log.w("ShortNotePostViewModel", "Voice upload failed, aborting post") diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/dal/HomeLiveFilter.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/dal/HomeLiveFilter.kt index 504c4d10b..2938ad1a6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/dal/HomeLiveFilter.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/dal/HomeLiveFilter.kt @@ -160,10 +160,8 @@ class HomeLiveFilter( val noteEvent = note.event if (noteEvent is LiveActivitiesChatMessageEvent) { - val stream = noteEvent.activityAddress() - if (stream == null) return false - val streamChannel = LocalCache.getLiveActivityChannelIfExists(stream) - if (streamChannel == null) return false + val stream = noteEvent.activityAddress() ?: return false + val streamChannel = LocalCache.getLiveActivityChannelIfExists(stream) ?: return false if (streamChannel.info?.status() != StatusTag.STATUS.LIVE) return false } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/CardFeedContentState.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/CardFeedContentState.kt index 895b15d80..a0cd1da9d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/CardFeedContentState.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/CardFeedContentState.kt @@ -165,13 +165,13 @@ class CardFeedContentState( val reactionsPerEvent = mutableMapOf>() notes .filter { it.event is ReactionEvent } - .forEach { + .forEach { note -> val reactedPost = - it.replyTo?.lastOrNull { + note.replyTo?.lastOrNull { it.event !is ChannelMetadataEvent && it.event !is ChannelCreateEvent } if (reactedPost != null) { - reactionsPerEvent.getOrPut(reactedPost, { mutableListOf() }).add(it) + reactionsPerEvent.getOrPut(reactedPost) { mutableListOf() }.add(note) } } @@ -192,7 +192,7 @@ class CardFeedContentState( // var newZapRequestEvent = LocalCache.checkPrivateZap(zapRequest.event as Event) // zapRequest.event = newZapRequestEvent zapsPerEvent - .getOrPut(zappedPost, { mutableListOf() }) + .getOrPut(zappedPost) { mutableListOf() } .add(CombinedZap(zapRequest, zapEvent)) } } else { @@ -215,7 +215,7 @@ class CardFeedContentState( val zapRequestNote = getNoteIfExists(zapRequest.id) if (zapRequestNote != null) { zapsPerUser - .getOrPut(author, { mutableListOf() }) + .getOrPut(author) { mutableListOf() } .add(CombinedZap(zapRequestNote, zapEvent)) } } @@ -226,13 +226,13 @@ class CardFeedContentState( val boostsPerEvent = mutableMapOf>() notes .filter { it.event is RepostEvent || it.event is GenericRepostEvent } - .forEach { + .forEach { note -> val boostedPost = - it.replyTo?.lastOrNull { + note.replyTo?.lastOrNull { it.event !is ChannelMetadataEvent && it.event !is ChannelCreateEvent } if (boostedPost != null) { - boostsPerEvent.getOrPut(boostedPost, { mutableListOf() }).add(it) + boostsPerEvent.getOrPut(boostedPost) { mutableListOf() }.add(note) } } @@ -240,42 +240,41 @@ class CardFeedContentState( val allBaseNotes = zapsPerEvent.keys + boostsPerEvent.keys + reactionsPerEvent.keys val multiCards = - allBaseNotes - .map { baseNote -> - val boostsInCard = boostsPerEvent[baseNote] ?: emptyList() - val reactionsInCard = reactionsPerEvent[baseNote] ?: emptyList() - val zapsInCard = zapsPerEvent[baseNote] ?: emptyList() + allBaseNotes.flatMap { baseNote -> + val boostsInCard = boostsPerEvent[baseNote] ?: emptyList() + val reactionsInCard = reactionsPerEvent[baseNote] ?: emptyList() + val zapsInCard = zapsPerEvent[baseNote] ?: emptyList() - val singleList = - (boostsInCard + zapsInCard.map { it.response } + reactionsInCard).groupBy { - sdf.format( - Instant - .ofEpochSecond(it.createdAt() ?: 0L) - .atZone(ZoneId.systemDefault()) - .toLocalDateTime(), + val singleList = + (boostsInCard + zapsInCard.map { it.response } + reactionsInCard).groupBy { + sdf.format( + Instant + .ofEpochSecond(it.createdAt() ?: 0L) + .atZone(ZoneId.systemDefault()) + .toLocalDateTime(), + ) + } + + val days = singleList.keys.sortedBy { it } + + days + .mapNotNull { string -> + val sortedList = + singleList + .get(string) + ?.sortedWith(compareBy({ it.createdAt() }, { it.idHex })) + ?.reversed() + + sortedList?.chunked(30)?.map { chunk -> + MultiSetCard( + baseNote, + boostsInCard.filter { it in chunk }.toImmutableList(), + reactionsInCard.filter { it in chunk }.toImmutableList(), + zapsInCard.filter { it.response in chunk }.toImmutableList(), ) } - - val days = singleList.keys.sortedBy { it } - - days - .mapNotNull { - val sortedList = - singleList - .get(it) - ?.sortedWith(compareBy({ it.createdAt() }, { it.idHex })) - ?.reversed() - - sortedList?.chunked(30)?.map { chunk -> - MultiSetCard( - baseNote, - boostsInCard.filter { it in chunk }.toImmutableList(), - reactionsInCard.filter { it in chunk }.toImmutableList(), - zapsInCard.filter { it.response in chunk }.toImmutableList(), - ) - } - }.flatten() - }.flatten() + }.flatten() + } val userZaps = zapsPerUser @@ -290,10 +289,10 @@ class CardFeedContentState( ) } - byDay.values.map { + byDay.values.map { zaps -> ZapUserSetCard( user.key, - it + zaps .sortedWith(compareBy({ it.createdAt() }, { it.idHex() })) .reversed() .toImmutableList(), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/bookmarks/dal/UserProfileBookmarksFeedFilter.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/bookmarks/dal/UserProfileBookmarksFeedFilter.kt index f95b460c9..53fd1cf33 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/bookmarks/dal/UserProfileBookmarksFeedFilter.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/bookmarks/dal/UserProfileBookmarksFeedFilter.kt @@ -37,9 +37,7 @@ class UserProfileBookmarksFeedFilter( override fun feed(): List { val note = LocalCache.getOrCreateAddressableNote(BookmarkListEvent.createBookmarkAddress(user.pubkeyHex)) - val noteEvent = note.event as? BookmarkListEvent - - if (noteEvent == null) return emptyList() + val noteEvent = note.event as? BookmarkListEvent ?: return emptyList() val notes = noteEvent.publicBookmarks().mapNotNull { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/datasource/FilterUserProfilePosts.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/datasource/FilterUserProfilePosts.kt index f36547074..d95d5f51b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/datasource/FilterUserProfilePosts.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/datasource/FilterUserProfilePosts.kt @@ -76,29 +76,28 @@ fun filterUserProfilePosts( user.outboxRelays()?.ifEmpty { null } ?: (user.allUsedRelays() + LocalCache.relayHints.hintsForKey(user.pubkeyHex)) - return relays - .map { relay -> - listOf( - RelayBasedFilter( - relay = relay, - filter = - Filter( - kinds = UserProfilePostKinds1, - authors = listOf(user.pubkeyHex), - limit = 500, - since = since?.get(relay)?.time, - ), - ), - RelayBasedFilter( - relay = relay, - filter = - Filter( - kinds = UserProfilePostKinds2, - authors = listOf(user.pubkeyHex), - limit = 50, - since = since?.get(relay)?.time, - ), - ), - ) - }.flatten() + return relays.flatMap { relay -> + listOf( + RelayBasedFilter( + relay = relay, + filter = + Filter( + kinds = UserProfilePostKinds1, + authors = listOf(user.pubkeyHex), + limit = 500, + since = since?.get(relay)?.time, + ), + ), + RelayBasedFilter( + relay = relay, + filter = + Filter( + kinds = UserProfilePostKinds2, + authors = listOf(user.pubkeyHex), + limit = 50, + since = since?.get(relay)?.time, + ), + ), + ) + } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/threadview/ThreadFeedView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/threadview/ThreadFeedView.kt index c86825e77..583349d0d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/threadview/ThreadFeedView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/threadview/ThreadFeedView.kt @@ -842,7 +842,7 @@ private fun RenderClassifiedsReaderForThread( Row(modifier = Modifier.padding(start = 12.dp, end = 12.dp, bottom = 12.dp)) { Column { - if (imageSet != null && imageSet.isNotEmpty()) { + if (!imageSet.isNullOrEmpty()) { AutoNonlazyGrid(imageSet.size) { ZoomableContentView( content = imageSet[it],