Commit Graph

225 Commits

Author SHA1 Message Date
spaced4ndy aa9b147aa8 ui: show subsriber roles in list; contributor list for subscribers (#7126) 2026-06-25 08:28:54 +00:00
spaced4ndy 117ed75d40 ui: allow to change member role in channel (#7096) 2026-06-22 12:53:05 +00:00
spaced4ndy 72e6a696eb ui: enable relay management (#7094) 2026-06-18 08:00:21 +01:00
Evgeny adb3fb8cb2 core: render web previews for channels (#7029)
* plan: web previews for channels

* types for recipient side to support channel web previews and domain names

* fix

* migrations

* update schema and api types

* update schema

* rename migrations

* core: render channel preview data

* core: render channel preview data in relays

* website: use cpp to inject JS functions

* JSC files

* remove directory.js

* channel preview renderer

* Revert "cli: fix redraw slowness (#6735)"

This reverts commit b801d77c74.

* sample channel page

* default avatar

* rename options

* better layout

* layout

* images

* some fixes

* tails

* markdown colors

* image sizes

* reactions

* fix reactions

* fewer avatars

* forward icon

* command to change group access parameters

* view public group access changes in CLI

* media metadata color

* ios: group web access ui

* update ui

* add init

* kotlin, labels

* update page

* update relay base URL

* fix

* ios update channel web page info

* update kotlin layout

* use cards

* update layout

* use domains for relay data, path is fixed

* update embed code

* fix bots api

* include only history items and senders

* update preview JS/HTML

* show different error if link is different

* remove stale json files

* better layout

* layout fixes

* improve layout

* improve layout

* update embed code

* web cta

* better layout

* buttons

* layout

* paddings

* desktop cta

* desktop cta

* cta layout

* fonts

* paddings

* paddings

* more paddings

* copy link

* read more

* hide avatar and placeholder when all messages are from channel

* color scheme

* fix color

* improve

* layout

* welcome message

* dark mode colors

* padding

* font size

* overscroll

* font

* logo on button

* better join

* buttons

* refactor

* another logo

* text

* desktop button

* button text

* center

* fix svg

* padding

* smaller gap

* render channel on any message changes etc

* fixes

* atomic file updates, escape attributes

* fix tests

* more tests

* more efficient rendering

* improve security

* sanitize links, include mentioned members

* schema

* fixes

* improve rendering

* fix showing correct subscribers count

* fix member names

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-06-16 14:36:55 +01:00
Evgeny Poberezkin 37f7ed3126 Merge branch 'stable' 2026-06-16 07:40:58 +01:00
Evgeny ad23da63d0 core: supporter badges using anonymous BBS credentials (#7040)
* core: supporter badges using anonymous BBS credentials

* badges in profiles

* badge in profiles

* process badges

* update simplexmq

* update simplexmq

* change types

* fix migration

* migration

* update simplexmq

* fix bot API, schema

* fix postgresql build

* refactor

* postgresql schema

* correctly set badges in all cases

* badges ffi

* plan, bot types

* FFI

* FFI: export badge symbols

* add extra field

* refactor badge types to GADT

* configurable badge key

* add badge to profile, test

* ui: badge images

* generate badge key and sign badge

* badge sign in CLI

* fix commands, ui

* rename badges

* Binary

* image size, migration

* update badge images, add public key

* send badges in more cases

* update UI, tests

* bot types, schema

* postgres schema

* tone down badges

* revert formula

* refactor badges

* smaller badges

* badge position

* better badge position

* simpler

* position

* move position

* update simplexmq

* show badge after name

* badge layout

* fix badge

* debug badge height

* shift badge

* fix badge in member name

* bigger badge

* badge layout

* differentiate badge colors

* more avatars for the user's profiles

* refactor

* remove color filter

* alerts

* multiple keys, old expired

* use new BBS api

* update badge keys, bot api

* presentation header

* simplify

* parser

* update iOS images

* update public keys

* query plans

* update simplexmq

* refactor badge types

* simplexmq

* bot api types

* update simplexmq - commoncrypto flag

* update simplexmq

* pass commoncrypto flag to simplexmq in nix iOS build

* ios ui

* update core library, fixes

* badge layout

* badge size

* badge gap

* remove extensions

* simplify

* share badge in more events, reverify badge if verification failed

* larger files with badges

* allow sending larger files

* simpler

* update simplexmq

* better decoder for badge keys

* update simplexmq

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
Co-authored-by: shum <github.shum@liber.li>
2026-06-15 22:25:08 +01:00
Narasimha-sc 503d091ec4 android, desktop, ios: show chat name in delete / leave / clear confirmation dialogs (#7021)
* android, desktop, ios: show chat name in delete / leave / clear confirmation dialogs

The dialogs confirming delete contact, delete/leave group/channel and
clear chat now show the chat's name on its own line above the existing
warning, so the user can see which chat the destructive action will
affect.

Pure code change: no new translation strings, no signature changes, no
new helpers. The name is read via existing displayName accessors on
GroupInfo / Contact / ChatInfo.

clearNoteFolderDialog is intentionally unchanged - the notes folder is a
single-instance object and its existing warning already identifies it.

* android, desktop, ios: also show chat name when deleting pending connection

deleteContactConnectionAlert was missed in the original inventory.
Same pattern as the other dispatchers - prepend the connection's
displayName on its own line above the existing warning - so a user
who set a custom name on a pending connection can see which one
they are about to delete.

* android: use <br> instead of \n for newline in delete confirmation dialog body

On Android, the alert body goes through HtmlCompat.fromHtml which
treats the input as HTML and collapses literal \n to a single space -
so "Tech Talk\n\nGroup will be deleted..." rendered as
"Tech Talk Group will be deleted...". Switch to <br><br>, which both
HtmlCompat (Android) and the Desktop parser at Utils.desktop.kt:75
correctly render as a newline.

* android, desktop: skip HTML parsing for delete confirmation dialog text

Add parseHtml: Boolean = true parameter to showAlertDialog and
showAlertDialogButtonsColumn; when false, the body text is wrapped as
AnnotatedString and routed through the existing AnnotatedString
AlertContent overload, bypassing escapedHtmlToAnnotatedString entirely.

The 8 dispatchers that embed the user-controlled chat displayName now
opt out (parseHtml = false). This means:
 - displayName is rendered as literal text - no HTML interpretation,
   so a contact whose alias is "<b>X</b>" or "<font color=..." no
   longer renders bold or coloured in the confirmation dialog
 - the platforms align: both iOS and Kotlin now use plain "\n\n" for
   the separator (no more <br><br> Kotlin-only workaround)
 - removes coupling to escapedHtmlToAnnotatedString in this path

* android, desktop: shorten parseHtml comment in AlertManager

* remove extra text

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2026-06-08 12:13:06 +01:00
Evgeny 6c0a362351 ui: show channel web link (#7039)
* ui: show channel web link

* fix link

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-06-02 07:23:26 +01:00
spaced4ndy 92e9640e4f core, ui: relay reject rejoin (#6978) 2026-05-18 09:06:25 +00:00
Narasimha-sc 4bea161724 ios: hide private notes from share channel picker (#6980)
Companion to #6958 (Android/Desktop). Channel-link "Share via chat"
picker showed Saved Messages, which produced `Failed reading: empty`
on tap because `*<id>` has no branch in `sendRefP`. Add `includeLocal`
flag to `filterChatsToForwardTo` (default true) and to
`ChatItemForwardingView`; `shareChannelPicker` passes false.

Bug #2 from #6958 (button on plain groups) is not present on iOS —
`GroupLinkView.swift:110` already gates by `publicGroup != nil`.
2026-05-14 15:33:55 +01:00
spaced4ndy d986c00530 ui: disable relay management (#6951) 2026-05-08 08:37:55 +00:00
spaced4ndy 6f8a07e4ea core, ui: relay management - add, remove relays, synchronization to relay list (#6917) 2026-05-08 07:19:16 +00:00
Evgeny @ SimpleX Chat 3d04ff9560 ui: different preference texts for channels (#6889)
* ios: different preference texts for channels

* fix

* ios translations

* export localizations

* restore translations

* fix ExternalLink, process localizations

* kotlin: different strings for channel preferences

* add translations

* different strings for channels

* export localizations

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2026-04-26 15:21:38 +01:00
Evgeny 63c278818e core: support chats in channels, send as owner in support chats (#6870)
* core: test support chats in channels, CLI defaults to sending as member in support chat

* ui: enable support chats in channels

* use correct scope when sending from UI

* more readable

* remove test output

* show member support chat in channels

* preference for support chats

* ios: types for support preference

* mp: support preference types

* show support preference in UI

* fix ios

* make support preference optional in JSON parser

* update string

* change strings, pass parameters to prefs

* refactor kotlin

* take support preference into account

* refactor core

* do not show broadcast placeholder in support scope

* move role check, add pref check on update

* support preference test (failing)

* fix version

* fix tests

* warning alert when enabling chats with admins

* revert on dismiss

* update text and icons

* query plans

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-04-26 14:37:16 +01:00
spaced4ndy 27b06dfb38 ui: channel preferences (#6842) 2026-04-20 19:01:09 +00:00
Evgeny f49d985119 ios: sharing channel links/cards (#6821)
* ios: sharing channel links/cards

* update nix shas

* improve

* fix preview

* change condition

* move button for owner

* refactor

* refactor 2

* fix sheets

* MsgChatLink JSON encoding

* correct default icon when editing group profile

* drop link from card

* card layout

* strip link from text

* remove file ref

* share via chat when created

* rename file, do not show text when there is no text

* better card layout

* padding, info string

* add log

* padding

* text layout

* warning emoji if signature verification failed

* chat link preview in chat list

* description

* alert information

* tappable preview

* better

* conditional border color

* sending and forwarding views

* small link icons for forwarding

* strip link in one place

* forwarded context

* quote view for chat links

* reduce diff, remove unnecessary changes

* simplify

* trim description

* diff

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-04-17 21:10:00 +01:00
spaced4ndy 27cab1a575 core, ui: channel relay leave (#6779) 2026-04-17 08:27:41 +00:00
spaced4ndy 24435f5b74 ui: fix edit channel profile texts (#6766) 2026-04-09 18:44:23 +00:00
spaced4ndy 42fe94752c core, ui: public group profile wip (#6734) 2026-04-01 14:17:27 +00:00
spaced4ndy 2fc24f8b64 ui: show user incognito profile in channels (#6727) 2026-03-30 11:17:59 +00:00
spaced4ndy 929783eb6c core: relay key and member id as immutable relay link data (#6713) 2026-03-30 10:48:39 +00:00
spaced4ndy 30386178ec Revert "core: relay key and member id as immutable relay link data (#6711)"
This reverts commit d665b1f5d8.
2026-03-28 14:03:09 +04:00
spaced4ndy d665b1f5d8 core: relay key and member id as immutable relay link data (#6711) 2026-03-28 09:51:50 +00:00
spaced4ndy 58f47cbadf core, ui: channel subscriber count (#6696) 2026-03-24 10:54:32 +00:00
spaced4ndy a4f3e21490 ios: relay failure indication (#6665) 2026-03-09 15:48:22 +00:00
spaced4ndy 7ac901587a Merge branch 'master' into chat-relays 2026-03-06 19:27:07 +04:00
spaced4ndy 3f4e7f379d core, ui: group members permanent connection errors (#6662) 2026-03-06 15:24:55 +00:00
spaced4ndy b97868d79f ios: channels and chat relays ui (#6634) 2026-03-05 09:13:24 +00:00
spaced4ndy 0946f50b6a ios: product specification (#6633) 2026-02-19 10:58:16 +00:00
spaced4ndy 9f3b3c69dd ui: allow to delete member's messages when/after removing member (#6443)
* ui: allow to delete member messages

* fix merge category, deleted view

* fix remove items in model

* don't create item repeatedly

* kotlin

* obsolete import

* less delays
2025-11-17 09:41:47 +00:00
spaced4ndy a65151ba6d core, ui: replace map of network statuses with subscription status of current chat (#6353)
* core: subscription status wip

* update

* update

* update

* remove statuses core

* cleanup ios

* comment

* plans

* remove NetworkStatus

* ios wip

* contact sub status

* Revert "contact sub status"

This reverts commit 50cf94beed.

* sub status

* set on connected

* kotlin

* rename

* layout

* member status

* kotlin

* fix chat subscription status

* string

* core: update simplexmq

* client notices

* update simplexmq

* update alert

* update simplexmq

* android/desktop

* formatting

* fix tests

* update plans and API docs

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-10-18 22:53:47 +01:00
Evgeny 14733a195b ui: shorter alert titles (#6252) 2025-09-08 11:28:09 +01:00
spaced4ndy ca9b0d4e43 core, ui: correct member attention stat for support chat on opening it; mark support chat read (#6240) 2025-09-05 14:00:32 +00:00
spaced4ndy 9705ae15ea ui: fix report archiving (#6239)
* kotlin: fix report archivation

* ios wip

* surrogate reports scope

* refactor
2025-09-05 12:38:26 +01:00
spaced4ndy 9d65b9eb2b ui: navigation from support chat to member info (#6237) 2025-09-03 13:07:28 +00:00
Evgeny 4811d663e6 rfc: bot messages and buttons, core: command markdown, supported commands in profile preferences, chat sessions preference, peer type field in profile to identify bots (#5360)
* rfc: bot messages and buttons

* update

* update bot rfc

* core: add bot commands to chat preferences and peer type to profile

* update postgresql schema

* update query plans

* chat sessions preference

* markdown for bot commands

* schema

* core: file preference, options to create bot from CLI

* core: different command type

* ios: commands menu

* update types

* update ios

* improve command markdown

* core, ios: update types

* android, desktop: clickable commands in messages in chats with bots

* android, desktop: commands menu

* command menu button, bot icon

* ios: connect flow for bots

* android, desktop: connect flow for bots

* icon

* CLI commands to view and set commands, remove "hidden" property of command, bot api docs

* corrections

* fix inheriting profile preferences to business groups

* note on business address

* ios: export localizations

* fix test

* commands to set file preference on user/contact, tidy up layout and display of command and attachment buttons
2025-08-07 11:13:35 +01:00
Evgeny ac5a2ee399 ui: use markdown when showing profile bio and group purpose (#6126)
* ios: use markdown when showing profile bio and group purpose

* android, desktop: use markdown when showing profile bio and group purpose
2025-08-02 12:18:19 +01:00
Evgeny 7988463a47 core: store/get whether short link has large data set (#6120)
* core: store/get whether short link has large data set

* ui

* core: set shortLinkLargeDataSet flag in updated links

* remove largeLinkData

* remove instance
2025-07-28 16:49:13 +01:00
Evgeny 6585875e92 ui: offer to upgrade address and group link when sharing it (#6114)
* ios: offer to upgrade address and group link when sharing it

* android

* update button
2025-07-27 23:22:36 +01:00
spaced4ndy ec061bcbb9 ui: allow to add/edit profile short description, length limit; allow to set welcome message for address without auto-accept (#6086) 2025-07-18 08:39:56 +00:00
Evgeny dd3943d994 core, ios: allow moderators to delete messages and block members (#6064)
* core: allow moderators to delete messages and block members

* ios: moderator
2025-07-14 08:02:29 +01:00
Evgeny a5768e903d core, ui: short bio/description for contact and group profiles (#6055)
* core: short bio/description for contact and group profiles

* use short description in commands

* fix tests

* query plans

* ios: show contact and group profile descriptions

* android, desktop: short description/bio

* ui: layout for chat info, correct copy

* comment out fields to add/edit short descriptions

* remove short description from events

* postgres schema
2025-07-11 21:28:10 +01:00
Evgeny fa5927ddaa ui: whats new v6.4 (#6049) 2025-07-07 17:44:29 +01:00
Evgeny 88547ab704 core: use longer timeouts for background network requests, support retries with increased timeouts (#6043)
* core: use longer timeouts for background network requests, support retries with increased timeouts

* ios: update types

* ios: allow user retry actions with failed network requests

* build: add exporting API functions with retry

* android, desktop: update types and C APIs

* android, desktop: alert to retry action on network error

* simplexmq
2025-07-07 11:01:03 +01:00
Evgeny 8b770ca03e ios: better error handling when connecting via links, improve alerts with chat information (#6012)
* simplexmq

* ios: error handling

* better new chat alerts

* vertical buttons in alert when they dont fit

* allow messages in prepared groups
2025-06-26 12:10:06 +01:00
Evgeny e3e9ae2ffd core, ui: create all links with short links, config parameter to use large link data, use short link as address in user profile (#5991)
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2025-06-17 15:56:33 +04:00
spaced4ndy 7f6bc30894 core, ios: track "short link data set" state, interact with address accordingly (#5978) 2025-06-10 15:12:23 +00:00
spaced4ndy 56c8d8696e core: prepare and connect to group (#5964) 2025-06-05 13:16:04 +00:00
spaced4ndy 8a4760a2cb core: set short links data, prepare entity, etc.; ios: connect to prepared contact (#5951) 2025-06-04 07:47:10 +00:00
spaced4ndy 39de65854c ios: refactor new chat alerts (#5959) 2025-06-02 11:53:09 +00:00