Commit Graph

93 Commits

Author SHA1 Message Date
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
spaced4ndy
f42a6751b1 core: allow to manually accept member contact requests (#6129)
* core: allow to manually accept member contact requests

* response

* comment

* comment

* add fields

* fix

* field in request

* compiles

* fix tests

* test

* plans

* fix mobile tests

* fix doc tests

* renames

* group name in event

* fix renames

* tests

* plans

* rename selector

* ios wip

* fix

* ios wip

* move

* fix backend bug, ui

* reject dialogue

* update plans

* kotlin

* delete swipe

* should accept text

* rename

* postgres migration

* ios: pass chat as binding

* rename module

* fix queries

* schema

* update plans, api docs

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-08-01 10:18:29 +01:00
spaced4ndy
68b7f09c8f core, ui: chat banner (#6089)
* core: create banner item

* filter deletions

* fix query

* ios

* fixes

* remove comment

* revert diff

* refactor

* fix most tests

* fix tests

* spacer

* plans

* create banner for 1-time link initiator

* style in progress

* change background

* ui

* remove bio length limit

* ui

* create banner for client chat

* rename

* more contexts

* fix tests

* move

* fixed image size

* plans

* remove diff

* kotlin

* copy

* paddings

* paddings

* comment

* layout, messages

* fonts

* texts, icons

* kotlin refactor

* kotlin texts

* fix date

* Revert "fix date"

This reverts commit abbd48b334.

* date

* fix texts

* kotlin date

* color and corners

* kotlin

* color

* update banner, context menu in ios

* update texts, do not show epoch timestamp for banner

* fix texts

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-07-21 19:07:21 +01:00
Evgeny
0d875c72a3 ios: alerts to open known/prepared contact and groups (#6020)
* ios: alerts to open known/prepared contact and groups

* android, desktop: alerts for knonw chats; all ui: fix prepared contacts misinterpreted as contact cards
2025-06-30 22:02:45 +01:00
Evgeny
1702f5ce34 core: fix retry when connecting via invitation short link, ios: improve connection status usage (#6014)
* core: fix retry when connecting via invitation short link

* ios: fix conditions, mark contacts as connected, only show spinners on contacts when connection status is ready or sndReady
2025-06-26 20:06:22 +01:00
Evgeny
9794829d74 core: show group as sender, add contact card to contact request chats, unify api type for prepared and contact request chats (#6003)
* core: option to show group as sender of chat item (for the initial items, e.g. welcome message)

* add chat item to contact request chats

* return AChat for prepared chats and contact requests

* update iOS api types, show prepared contact as blue, show preview info when content message is not available (previously was showing feature item)

* ios: remove ContactType

* ios: show group as sender, fix avatar not showing when member message sequence starts with merged items

* ios: update compose UI for all connection scenarios

* address settings

* ios: address settings UI

* fix tests

* fix tests 2

* ios: fix minor issues
2025-06-23 14:42:00 +01: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
2bc4836338 core, ios: create contact requests with attached contact (#5967) 2025-06-09 16:18:01 +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
b97e1e0f11 ui: show new messages from support scope in main chat preview when invitee is pending (#5909) 2025-05-14 15:14:34 +00:00
spaced4ndy
e9414d713e Merge branch 'master' into group-knocking 2025-05-13 13:05:48 +04:00
Evgeny
8d54acef92 ios: only handle taps on messages with links or secrets, use image for secret markdown (#5885)
* ios: use image for secret markdown

* remove unnecessary ViewBuilders
2025-05-11 14:15:14 +01:00
Evgeny
4b42a19ccb ios: fix XCode 16 regressions (tap not working on files, quotes, images, voice messages, etc.), open link previews on tap (#5880)
* ios: fix XCode 16 regressions (tap not working on files, quotes, images, voice messages, etc.), open link previews on tap

* fix voice recording

* fix video, accepting calls from chat, preference toggles in chat

* WIP message and meta

* handle links in attributed strings

* custom attribute for links to prevent race conditions with default tap handler
2025-05-10 14:37:45 +01:00
spaced4ndy
79991e84c9 core: member requires attention counter (#5881) 2025-05-09 15:36:06 +00:00
spaced4ndy
32fb5a5d12 ios: knocking ui (#5851)
* ios: knocking ui types

* update types

* member admission

* remove chatItemStatuses

* member support view

* member support chat view wip

* ios: secondary ItemsModel (#5862)

* toolbar

* more chats

* remove theme

* preview icon

* chat toolbar fast markers

* change icon

* change icon

* remove/accept buttons

* item style

* get item ItemsModel in chat model methods (chat view doesn't work dynamically)

* fix support chat

* fix other chats

* refresh on exit

* refresh button

* dynamic marker in chat list

* prohibit multi select actions

* prohibited send field
2025-05-04 22:27:20 +01:00
Evgeny
b2de37a9fb core: member acceptance (#5678)
* core: member acceptance

* migration

* move hook

* core: support sending direct messages to members (#5680)

* fix compilation, todos

* fix test

* predicates

* comment

* extend hook

* wip

* wip

* wip

* wip

* fix test

* mute output

* schema

* better query

* plans

* fix test

* directory

* captcha

* captcha works

* remove column, add UI types and group status icon

* fix test

* query plans

* exclude messages of pending members from history

* commands for filter settings

* core: separately delete pending approval members; other apis validation (#5699)

* accepted status

* send captcha messages as replies

* fix blocked words

* simpler filter info

* info about /filter and /role after group registration

* update query plans

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2025-03-03 18:57:29 +00:00
spaced4ndy
1fcb352db4 ui: rejected group previews (#5665) 2025-02-26 09:27:43 +00:00
Stanislav Dmitrenko
9d1329498b ios: open chat on first unread, "scroll" to quoted items that were not loaded (#5392)
* ios: open chat on first unread, "scroll" to quoted items that were not loaded

* more changes

* changes

* unused

* fix reveal logic

* debug

* changes

* test

* Revert "test"

This reverts commit 553be124d5.

* change

* change

* changes

* changes

* changes

* commented deceleration logic

* changes

* fixes

* optimized item identifiers to use merged item directly

* fixed counters

* encreased initial and preload counters

* fix initial loading and trimming items

* optimize

* allow marking read

* 10 instead of 5

* performance

* one more parameter in hash

* disable trimming

* performance

* performance - in background

* optimization

* next/prev

* changes

* markread

* finally

* less logs

* read

* change after merge

* trimming, edge cases

* wait until items loaded

* Revert "wait until items loaded"

This reverts commit 895218b978.

* progress indicator

* optimization

* disable scroll helper

* experiment

* Revert "experiment"

This reverts commit c952c9e623.

* jump

* no read

* layoutIfNeeded

* changes

* EndlessScrollView

* read

* changes

* changes

* changes

* reduce time to open a chat (by ~300ms)

* open from the first unread when clicking member chat

* refactored and removed unused code

* handling search emptiness to scroll to correct position

* changes

* read state maintain

* remove protocol

* avoid parsing chatId

* pass chat

* changes

* remove reveal

* refactor spaghetti

* remove ItemsScrollModel

* rename

* remove setUpdateListener

* unused

* optimization

* scrollToTop

* fix

* scrollbar working again

* scrollToBottom

* fix

* scrollBar hiding when not many items on screen

* small safer change

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-02-17 18:21:40 +00:00
Diogo
517679e2df ios: group member mentions (#5593)
* api types

* display for mentions and replys

* picking of mentions

* notifications (wip)

* auto tagging

* show selected mention

* Divider and list bg

* stop keyboard dismiss on scroll from ios 16

* change notification mode in all views

* icon for mentions notification mode

* make unread states work in memory and chat preview

* preview fixes

* fix unread status when mark read manually

* update library

* fixed padding

* fix layout

* use memberName

* remove ChatNtfs, show mentions in context items and in drafts, make mentions a map in ComposeState

* rework mentions (WIP)

* better

* show mention name containing @ in quotes

* editing mentions

* editing

* mentionColor

* opacity

* refactor mention counter

* fix unread layout

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-02-03 20:47:32 +00:00
spaced4ndy
5591b72feb ui: show spinner on chat deletion (#5597)
* android: show spinner on group deletion

* ios
2025-01-31 18:28:32 +00:00
Stanislav Dmitrenko
ef72d8e446 ui: open links from chat list with confirmation (#5519)
* ui: open links from chat list with confirmation

* appSettings

* ios

* core: migrate setting

* ios icon

* android icon

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-01-13 12:46:42 +00:00
Stanislav Dmitrenko
bbb58c8e09 ios: report tags and icon on ChatList (#5503)
* ios: report tags and icon on ChatList

* unfilled flag

* changes

* update lib, simplify

* fix

* simpler

* one loop

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-01-11 10:39:39 +00:00
Diogo
cd9eb66ebb ui: remove support for inline moderation (#5495)
* android: remove support for inline moderation

* ios: emove support for inline moderation

* fix prefix on preview for ios

* unused

* final pass

* ios: should not be able to assign moderator

* button label

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-01-09 22:28:29 +00:00
Diogo
7e344b3ee8 ios: reports inline (#5466)
* initial types

* changes types

* decode

* possible mock for inline report

* remove avatar

* diff

* updates

* parser and display message

* send messages and support placeholder

* profile reports and all reports working

* new api

* check member support for receiving reports

* report chat item text

* moderator role

* placeholder on text compose for report

* rename method

* remove need to have reported item in memory to action

* archived reports

* changes/fix

* fix block member

* delete and moderate

* archive

* report reason

* context menu/moderation fixes

* typo

* not needed

* report reason as caption, and change text

* remove auto archive

* move placeholder to match text

* prefix red italic report

* archive

* apply mark deleted fix

* Revert "apply mark deleted fix"

This reverts commit b12f14c0f5.

* remove extra space

* context menu rework

* strings, icons

* recheck items extra check on reports

* simplify

* simpler

* reports: never show for own messages, disable attachments, hide when recording or live

* style, allow local deletion

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-01-08 18:28:45 +00:00
Evgeny
ba7abcf6f7 ios: update onboarding texts (#5255)
* ios: update onboarding texts

* translations

* more translations

* more translations 2
2024-11-27 19:01:16 +00:00
Arturs Krumins
8a906485d1 ios: display year in chat for previous years (#4919)
* ios: display year in chat for previous years

* fix chat time, show past years in the list

* style

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-09-21 21:33:18 +01:00
Evgeny
71bea947a5 ios: cache base64 images (#4827) 2024-09-04 14:49:01 +01:00
Arturs Krumins
0b0b78293f ios: fix inaccurate floating unread counters in chat message view (#4781)
* ios: fix inaccurate floating unread counters in chat message view

* account for inset; remove old on appear/disappear blocks

* revert id

* first visible

* remove UnreadChatItemCounts

* cleanup

* revert duplicates

* add todo

* throttle first

* cleanup

* lines

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-08-29 17:25:08 +01:00
Arturs Krumins
c3f67aff69 ios: speed up network status handling (#4678)
* move network status into a separate model

* reduce network model observation scope (#4679)

* dont pass chat

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-08-13 21:08:04 +01:00
Diogo
55331289d3 ios: improve new and existing chat interactions - new chat sheet, one hand ui, info views action buttons; new modes of contact deletion (keep conversation, only delete conversation) (#4427)
* ios: added delete contacts, one hand ui, and contact action buttons

* remove unused, rework info buttons wip

* ios: moved existing buttons to new chat sheet

* ios: add basic list of contacts to new chat sheet

* ios: add deleted chats section to new chat sheet

* group chat info navigation

* fix spacing of group info buttons

* remove comment

* unify spacing logic across info views

* info button alerts wip

* calls alerts wip

* call buttons alerts

* fix call button to correctly update on preference change while in view

* refactor

* fix alert ids

* contact list wip

* more contact list actions

* open chat wip

* fix contact list elements clickability

* ios: search functionality on new chat sheet

* ios: white bg for search box on new chat sheet

* ios: don't show empty list when pasted contact is not known

* ios: add search and nav title to deleted chats

* navigation links wip

* fix refreshable

* ios: empty states for lists

* ios: hide contact cards from chat list

* ios: make search bar icon sizes consistent

* ios: fix deleted conversation dissapearing from chat list on back

* fix pending invitation cleanup in chat sheet

* rename search label from open to search

* make cleanup alert work on sheet and on dismiss

* dismiss all sheets after creation of groups

* fix double toolbar on group invite members

* fix double toolbar on group link invitation screen

* dismiss all on group creation error

* comment

* show alert in dismissAllSheets completion

* fix sheet dismissal on known group

* rework contact list with buttons (fixes dark mode)

* fix dark mode on new chat view

* fix search dark mode

* increase search padding

* improve new chat title and info button placing

* info view background

* improve create group title placement

* refactor

* fix delete dialogue in light mode

* change icon

* archivebox on contact list

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-08-05 15:58:24 +04:00
Evgeny Poberezkin
2ff4619ca4 ios: improve chat list layout (#4537) 2024-07-29 22:11:02 +01:00
Evgeny Poberezkin
41b4d7851a ios: improve chat list layout (#4528) 2024-07-28 21:53:21 +01:00
Stanislav Dmitrenko
ea12982788 ios: fix two-line preview on IOS 17+ (#4514) 2024-07-25 14:53:10 +01:00
Stanislav Dmitrenko
6fca6c22c5 ios: interactive media and link previews in the list of chats (#4487)
* ios: interactive media and link previews in the list of chats

* commented out voice preview

* voice message support and various fixes

* changes to video

* changes

* playing voice in chat list with scrolling

* revert

This reverts commit 60f57403d1.

* prevent feedback loop

* version of dependency

* voice

* fix param

* working voice

* reacting on messages and chat deletion

* fix two videos in a row

* video item layout

* fix

---------

Co-authored-by: Levitating Pineapple <noreply@levitatingpineapple.com>
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-07-23 18:11:42 +01:00
spaced4ndy
fa73e63a79 ios: allow sending messages immediately on joinConnection, acceptContact (#4478) 2024-07-19 11:31:43 +04:00
Evgeny Poberezkin
f5eea018d9 ios: chat themes and wallpapers (#4376)
* ios: wallpapers (#4304)

* ios: wallpapers

* theme selection

* applied theme colors and preset wallpaper

* more places with background

* one more

* accent color

* defaults

* rename

* background

* no change to cell color

* unneeded

* changes

* no global tint

* defaults

* removed unneeded class

* for merging

* ios: wallpapers types (#4325)

* types and api

* divided types per target

* creating directory for wallpapers

* creating wallpaper dir at launch

* ios: wallpapers appearance (#4335)

* appearance

* changes

* refactor

* scale

* lambda to function

---------

Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>

* ios: wallpapers user/chat overrides (#4345)

* ios: wallpapers user/chat overrides

* chat overrides

* color picker updates colors correctly

* fix state update

* labels

* background for light theme

* small optimization

* removed commented code

* ios: enhancements to wallpapers (#4361)

* ios: enhancements to wallpapers

* colors for background

* ios: wallpapers import/export (#4362)

* ios: wallpapers import/export

* comment

* ios: wallpapers theme updates (#4365)

* ios: wallpapers theme updates

* group member background

* colors

* profile picture colors

* unneeded

* optimizations, images, state fixes

* fixes

* no editing of title color

* rename Menus and alerts, refactor

* tint applying fix

* fixes

* migration of accent and themes

* fix updating system theme

* migration changes

* limiting color range

* ios: wallpapers rename enum (#4384)

* ios: wallpapers rename enum2 (#4385)

* ios: wallpapers rename enum2

* change

* colors were commented

* fix build and look

---------

Co-authored-by: Stanislav Dmitrenko <7953703+avently@users.noreply.github.com>
2024-07-03 22:42:13 +01:00
spaced4ndy
4b13512950 ios: SMP proxy support (#4178)
* ios: SMP proxy support

* statuses

* group statuses

* error texts

* update

* change icon

* texts

* texts

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-05-15 13:09:42 +01:00
Evgeny Poberezkin
cfa7e0bb28 ios: customizable profile images (#4084)
* ios: customizable profile images

* update slider

* whats new
2024-04-24 21:20:26 +01:00
spaced4ndy
838a759a76 ui: deleted item preview (#3726) 2024-01-24 13:44:29 +04:00
spaced4ndy
8738cf332f ui: fix chat preview showing incorrect timestamp when chat is empty (#3739) 2024-01-24 13:37:29 +04:00
Stanislav Dmitrenko
2dae9180ec ios: text color of group invitation in chat list (#3703)
* ios: text color of group invitation in chat list

* refactor

---------

Co-authored-by: Avently <avently@local>
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-01-18 19:14:18 +00:00
Stanislav Dmitrenko
b5fe1f8364 ios: notes to self (#3690)
* ios: notes to self

* change

* icon

* changes

* no live message

* search

* alert

* better checks

* api change

* changes for review

* changes

* ios: align notes chat color with sent chat items frame color (#3704)

* changes

---------

Co-authored-by: Avently <avently@local>
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2024-01-18 19:57:14 +04:00
Stanislav Dmitrenko
acd05c43db mobile: chat deletion avoiding race conditions (#3650)
* android, desktop: chat items deletion

* rename

* ios: chat items deletion

* correct id

* android: adding progress of deletion

* ios: text color while deleting chats

* change only text color

---------

Co-authored-by: Avently <avently@local>
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2024-01-10 16:57:34 +00:00
Evgeny Poberezkin
809040c7bc ui: show secrets on tap (#3628)
* ios: show secrets on tap

* android: show secrets on tap/click

* android: clickable links in group descriptions

* android: hide secrets one by one

* ios: clickable links in welcome message preview

* refactor

* refactor2
2023-12-30 18:57:10 +00:00
spaced4ndy
f49ded5ae5 ios: connect with contact via address (for preset simplex contact) (#3323)
* ios: connect with contact via address (for preset simplex contact)

* remove diff

* remove floating button

* refactor active

* open chat

* remove disabled

* fix incognito

---------

Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-11-10 10:16:06 +04:00
spaced4ndy
4a5fdd3e0e ios, android: show progress indicator on joining group (#3281) 2023-10-26 10:32:11 +04:00
Evgeny Poberezkin
e6b0983c3e Merge branch 'stable' 2023-10-15 18:52:46 +01:00
Evgeny Poberezkin
838751fe78 ios: fix Protect screen not hiding message previews (#3226) 2023-10-15 18:12:13 +01:00