mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-08-14 07:10:19 +00:00
02eaa882ac06dedd99a2003d4ece094e606eedde
54
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
02eaa882ac |
fix the docs the API merge invalidated, and use the async listUsers
Merging keepActiveUser into apiCreateActiveUser changed a signature that two Kotlin docs quote. spec/api.md still described the old parameters and said the command sets the profile as active, full stop; product/flows/onboarding.md quoted the old signature one step above the line this branch had already updated to mention the flag. The iOS spec table was fixed in the previous commit and these were missed - the same drift on the other platform. Both iOS call sites now use listUsersAsync, which is what changeActiveUserAsync_ uses a few lines later; the synchronous listUsers blocks whatever executor the Task is on, and SwiftUI infers that as the main actor. Not compiled: the Kotlin changes here are markdown only, and the Swift ones cannot be built on this machine. |
||
|
|
2a7eb7eed2 |
fix the review's findings and cut the remaining API surface
Correctness. The one-time link picker's profile list was keyed on the active user as well as the count. That defeats the "don't change order after a user was selected" behaviour its own comment protects - changeActiveUser_ sets currentUser first and only then reloads chats, so the list visibly re-sorted and stayed re-sorted for the whole of getUserChatData - and it was redundant: the count alone covers a profile being created from the picker. iOS, compose picker: the old-core fallback relied on the user switch tearing this view down, which only happens when the switch succeeded. If it threw, the form was left open over a profile that already existed, and the only way out was to swipe it away. It is now dismissed unconditionally. iOS: alerts raised right after a sheet is dismissed are presented on a controller that is going away and are dropped. The 0.5s wait was applied only to the old-core path, while the ordinary reassignment failures - the ones that actually happen - went unguarded. alertAfterDismissal now covers all of them, in one place. iOS: dropped the chatId write that Kotlin removed for the same reason two commits ago. It is a no-op on the happy path, but not if something legitimately closed the chat meanwhile - SimpleX lock re-auth clears it, and this would reopen the chat behind the lock screen. iOS: the create-profile row is now gated on profileChangeProhibited, as every other row on both platforms already was. Surface. apiCreateActiveUser takes keepActiveUser as a defaulted argument, exactly as it already takes pastTimestamp, instead of a public wrapper plus a private helper. Two symbols fewer on each platform, and every existing call site passes its arguments by name, so none of them changes. Reverted the activeOrder sort flip in the compose picker: it changes the order of an existing screen for every user, is not needed for this feature, and with active_order 0 would push a newly created profile to the bottom. It deserves its own commit if wanted. Also: apps/ios/spec/api.md tracks the command enum and had gone stale; the plan records the two limits of the flag the review surfaced - it is ignored when there is no active user, and active_order 0 ties rather than sorts last on migrated databases. |
||
|
|
937e688c0a |
android, desktop, ios: make the invitation profile flow surgical
No behaviour change. The review rounds left the flow carrying their own reasoning: 267 of the 759 added lines were comments, and the fixes had accreted structure that was no longer needed. createProfileForInvitation runs on Main via withApi, as the pickers' own handlers always did, instead of withBGApi with three withContext(Dispatchers.Main) blocks inside it. Every call it makes suspends into IO - sendCmd hops there itself - so Main is never blocked, and the whole class of off-main model mutation that two rounds of review found simply cannot arise. That removes the two coroutine imports as well. hasModalOpenNotClosing is gone: while the form is open it is necessarily the last modal on the fullscreen stack, so the entry guard uses isLastModalOpenNotClosing and one function covers both call sites. The rest is comments. Kept the ones that record why something non-obvious is the way it is - the placement, the main-thread choice, the guards - and dropped the narration of what the earlier attempts got wrong, which belongs in the history and the plan. One comment described code that is not there at all; it is the commit message's job to say why the chatId write was removed. 759 -> 667 added lines, 267 -> 189 of them comments. |
||
|
|
147955f52d |
ios: fix the fallback ordering and close the input window on both pickers
Third review pass. Still not compiled - no Swift toolchain here. The compose picker's fallback had moved the chatId clear out of the do block, so it fired when the switch had FAILED - closing a prepared chat that was still perfectly valid and still owned by the active profile. It is now conditional on the switch having happened. Dismissing the form before the switch did not help either: the dismissal animates for about a third of a second, getTopViewController() keeps returning the sheet until it ends, and the local database work finishes sooner - so the alert was presented on a controller being dismissed and dropped, on the common path. The explicit dismissal is gone (the switch removes this view and its sheet anyway) and the alert is deferred past the transition. The one-time link picker's rows had no guard at all: allowsHitTesting keyed on switchingProfileByTimeout, which latches half a second late, so a second row was tappable for that whole window right after the form closed - starting a second connection change on a pccConnId the first was recreating. Both pickers now block input from the moment the work starts. In the compose picker the guard is on the branches that start work, not on the whole Button, so expanding and collapsing the list - which is local - still works, and a tap in a chat where the profile cannot be changed still explains itself. Also: that picker's other-profiles list sorted activeOrder ascending while every other list on both platforms sorts descending, which the core change made visible by giving a never-activated profile order 0; the one-time link picker's fallback now dismisses and resyncs its selection as the compose picker does; and the incognito handler's new else no longer writes incognitoEnabled, which is bound to the app-wide default and marks the invitation as used. |
||
|
|
49a8cafa94 |
ios: fix the fallback paths and guard the picker during the reassignment
Follow-up to the previous iOS commit. Still not compiled - no Swift toolchain here. The "core ignored keepActiveUser" path in the compose picker rested on a false premise. It claimed the form stays open and the alert draws over it, but the resync it performs replaces the chat list with the new profile's, and the prepared chat stayed with the previous one - so getChat returns nothing, the pushed chat view renders nothing, and this picker, which is the sheet's presenter, is removed by the switch itself. The alert was then raised into a hierarchy being torn down and discarded. The form is now dismissed first, and the chat id cleared only if it is still the chat this picker belongs to, since a notification tap may have navigated elsewhere meanwhile. Rows stay live during the reassignment. creatingProfile is cleared as soon as createProfileForChat returns, which is the moment it hands off to changeProfile's fire-and-forget Task, and none of the rows had a disabled state at all - so a second change could be started on top of the first, two concurrent reassignments of the same prepared contact and two racing user switches. This is what the Kotlin side made onCreated suspending for. The one-time link picker's new else branch reset the switch status but not the selection, so after a cancelled retry the profile that was not switched to kept the checkmark and tapping it did nothing - the view thought it was already selected. Its "core ignored the flag" path likewise left the picker pointing at a profile that is no longer active. The incognito handler has the identical latch the else branch was added for, and hardening the row's disabled state on profileSwitchStatus made that stuck path disable the row permanently, so it gets the same treatment - and its two state writes move onto the main actor, where the rest of that block already was. Both swallowed errors are now logged, and the comment claiming two .sheet modifiers on one view conflict is dropped - it contradicted the sibling file and the deployment target. |
||
|
|
4a169a3061 |
ios: fix the create-profile-for-invitation flow
Mirrors the Android/desktop fixes where iOS has the same defects, and fixes the ones that are specific to SwiftUI. Still not compiled - no Swift toolchain here, same status as the rest of the iOS port in this branch. Swallowed alert. The one-time link picker reported "the core ignored keepActiveUser" by setting its own `alert` @State, consumed by .alert(item:) on the very view that is presenting the create-profile sheet. UIKit refuses an alert on a controller that already has a presentation, so it was never shown: the active profile silently switched, the connection stayed where it was, and the user was left looking at an unchanged form. Uses the global showAlert, which targets the top view controller, as the compose picker already does. Stale picker list. The compose picker fills its own `users` in onAppear and never again, so the profile just created was missing from the list whenever the reassignment failed - tapping "Add profile" again then hit "Duplicate display name!" - and the frame height, which is computed from that count, was one row short. The local from listUsers also shadowed the property, which is what hid this. Resync failure reported as a creation failure. changeActiveUserAsync_ throws, and on the "core ignored the flag" path that propagated into the form's catch, which says "Error creating profile!" although the profile had been created. On the compose picker that path also left chatId pointing at a prepared chat that had stayed with the previous profile, i.e. at a chat absent from the list, which renders blank. Sheet owner destroyed mid-dismissal. The compose picker's sheet was attached inside profilePicker(), which is swapped out for currentSelection() the moment listExpanded flips - which changeProfile does while the sheet is still dismissing, and which an incoming event can do at any time via profileChangeProhibited. Moved to the Group in viewBody(), which survives both; stacking sheets is supported from iOS 14.5 and the app targets 15. Dismissal during creation. The submit runs in an unstructured Task that SwiftUI does not cancel, so a swipe-to-dismiss still created the profile and switched to it while every state write, including the one clearing the in-flight flag, landed on a view that was gone. Both sheets now block interactive dismissal while creating. Latched picker. If apiChangeConnectionUser returns nothing rather than throwing, profileSwitchStatus was never reset, leaving the picker dimmed behind a spinner with hit testing off. Pre-existing, but the new row routes through the same handler. Re-tappable row. switchingProfileByTimeout only latches half a second after the switch starts, and creatingProfile is cleared as soon as the switch is handed over, so the row was live in between. |
||
|
|
ef703ec0be |
ios: offer creating a profile for a one-time invitation link
Adds "Add profile" to the picker reached from "Share profile" on a one-time link. The new profile is routed through the existing selectedProfile path, so the connection change and the switch cannot drift from picking an existing one. The row sits outside the active-profile branch: inside it, it would disappear whenever the active profile is filtered out by the search text. |
||
|
|
6150b35a2f |
core, ui: resolve untyped domains (#7198)
* core: resolve untyped domains * CPError * only add domain when it has link of correct type * resolve first * handle errors * remove CPError * update UI types * remove unused name Co-authored-by: Evgeny <evgeny@poberezkin.com> * refactor connection plan * kotlin: show domain and alternative chat, haskell tests for dual domains * view/tests * update kotlin * dual domains accounting for business chats * refactor, fix * fix kotlin * remove comment * search * add resolve mode * local resolution * refactor, bot types * search both contact and channel by name * fix * fix searching business chats by name * fix ui * ios * fix ios * fix icon --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> |
||
|
|
e3502c5738 |
ios: reliably show API alerts (use UIKit) (#7195)
* ios: reliably show API alerts (use UIKit) * fix infinite recursion |
||
|
|
10a814694c |
core, ui: support SimpleX names (#7045)
* deps: bump simplexmq for ConnectTarget * chat: migration adds simplex_name to contacts, groups, connections Nullable TEXT column on all three tables, with partial indexes on contacts(user_id, simplex_name) and groups(user_id, simplex_name) for the upcoming connectPlanName lookup. connections.simplex_name is the transient carrier from APIConnect -> XInfo handler, where the value is copied to contacts.simplex_name at delayed create. No reads or writes yet - column threading lands in subsequent commits. * tests: provide namesConfig = Nothing in smpServerCfg Follow-up to the simplexmq pin bump ( |
||
|
|
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> |
||
|
|
68abd805d4 |
rfc: namespace (#7001)
* rfc: namespace * update rfc * markdown for names * record type, app "upgrade" alerts * update api types * rfc: change namespace syntax - now it is the usual namespace * update bot types * move types to simplexmq * core: refactore markdown * update simplexmq * better names * new names * update nix content hashes * fix * change valid name function * update simplexq, update valid name conditions * fixes Co-authored-by: simplex-chat-agent[bot] <287173099+simplex-chat-agent[bot]@users.noreply.github.com> * update simplexmq * fix localization * simpler * refactor * refactor * fix --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> Co-authored-by: simplex-chat-agent[bot] <287173099+simplex-chat-agent[bot]@users.noreply.github.com> |
||
|
|
12fbf61f32 | core, ui: require update for public groups (#7009) | ||
|
|
b40c5a4f3e | ui: better icon for channel filter, remove separate copy button from link on iOS (#6856) | ||
|
|
035a2f954c |
ui: new UX for making connections after / as part of onboarding (#6753)
* ui: additional images, views for making connections and creating groups (#6750) * ios: setup for additional assets * ios build config * header * fix * update layout * more views with images * layout * layout * android images and view * fix path * fix desktop * fix desktop build * smaller image * layout * more layout * more kotlin views * group layout * padding * create group layout * more create group layout * layout * tweak layout * more tweak * config --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> * ios: connecting as part of onboarding (#6754) * ios: implementation of "connecting" cards * ios: revision * fix flip * fixes * fix frame * replace nav stack with tab view * rename * update gradient and card label material * fix gradient * debug * remove debug code * update card labels * card label layout * landscape cards * layout * safe area * less bold * debug landscape * refactor titles, back inline with title in landscape * remove ignoreSafeArea * remove extra padding * refactor * clean * layout spec added to plan --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> * android, desktop: connecting during onboarding - new cards (#6757) * android, desktop: connecting during onboarding - new cards * fix * change layout * fixes * fix * fix * layout * fix layout * animation * import * paddings * 350ms * font * fonts * layout * box * more layout * layout * simpler * hide toolbar heading in onboarding mode * simpler desktop layout * better desktop * revert desktop toolbar * bigger font, landscape * fix desktop * cap width * refactor, simplify * qr code scanner icon * use icon without assets * cleaner * fix * fix --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> * android, desktop: connect banner after onboarding (#6761) * android, desktop: connect banner after onboarding * improve * smaller button * bigger icon, same string * fallback gradients * improve build * simpler connect screens during onboarding * left-align * update strings * improve state machine * text, padding * strings * primary color for tap to paste link * fix race condition * fix loading race --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> * ios: banner and connect screens (#6767) * ios: banner and connect screens * fix * return nav * remove padding * refactor * refactor * refactor 2 * refactor 3 * refactor 4 * header * xcode files * improve * fix toolbar * toolbar 2 * no assets * no assets 2 * padding * android padding * simplify * layout * fix --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> * fix refreshable * text * fix toolbar color * rework address share logic * padding --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> |
||
|
|
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> |
||
|
|
27cab1a575 | core, ui: channel relay leave (#6779) | ||
|
|
58f47cbadf | core, ui: channel subscriber count (#6696) | ||
|
|
b97868d79f | ios: channels and chat relays ui (#6634) | ||
|
|
0946f50b6a | ios: product specification (#6633) | ||
|
|
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 |
||
|
|
88f36382ed | ios: prevent additional QR code scan while opening chat (#6076) | ||
|
+11 |
9708a2ea48 |
ui: translations (#6059)
* Translated using Weblate (German) Currently translated at 99.3% (2107 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/ * Translated using Weblate (Russian) Currently translated at 98.0% (2078 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ru/ * Translated using Weblate (French) Currently translated at 92.1% (1953 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/fr/ * Translated using Weblate (Italian) Currently translated at 99.3% (2107 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 91.1% (1932 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/zh_Hans/ * Translated using Weblate (Spanish) Currently translated at 98.0% (2079 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/ * Translated using Weblate (Dutch) Currently translated at 97.8% (2074 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/nl/ * Translated using Weblate (Ukrainian) Currently translated at 93.3% (1978 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/uk/ * Translated using Weblate (Polish) Currently translated at 85.8% (1820 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/pl/ * Translated using Weblate (Turkish) Currently translated at 86.9% (1843 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/tr/ * Translated using Weblate (Hungarian) Currently translated at 99.3% (2107 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/ * Translated using Weblate (German) Currently translated at 99.3% (2107 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/ * Translated using Weblate (Russian) Currently translated at 98.0% (2078 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ru/ * Translated using Weblate (French) Currently translated at 92.1% (1953 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/fr/ * Translated using Weblate (Italian) Currently translated at 99.3% (2107 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 91.1% (1932 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/zh_Hans/ * Translated using Weblate (Spanish) Currently translated at 98.0% (2079 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/ * Translated using Weblate (Dutch) Currently translated at 97.8% (2074 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/nl/ * Translated using Weblate (Ukrainian) Currently translated at 93.3% (1978 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/uk/ * Translated using Weblate (Polish) Currently translated at 85.8% (1820 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/pl/ * Translated using Weblate (Turkish) Currently translated at 86.9% (1843 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/tr/ * Translated using Weblate (Hungarian) Currently translated at 99.3% (2107 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/ * Translated using Weblate (German) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/ * Translated using Weblate (German) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/ * Translated using Weblate (German) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/ * Translated using Weblate (Italian) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Italian) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Italian) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Italian) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/ * Translated using Weblate (Italian) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/ * Translated using Weblate (Turkish) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/tr/ * Translated using Weblate (Catalan) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ca/ * Translated using Weblate (Catalan) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ca/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/ * Translated using Weblate (German) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/ * Translated using Weblate (German) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/ * Translated using Weblate (Arabic) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/ * Translated using Weblate (Arabic) Currently translated at 100.0% (2450 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/ * Translated using Weblate (Hebrew) Currently translated at 85.2% (2089 of 2450 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/he/ * Translated using Weblate (Turkish) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/tr/ * Translated using Weblate (Turkish) Currently translated at 100.0% (2120 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/tr/ * Translated using Weblate (German) Currently translated at 100.0% (2451 of 2451 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/ * Translated using Weblate (Italian) Currently translated at 100.0% (2451 of 2451 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (2451 of 2451 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/ * Translated using Weblate (Arabic) Currently translated at 100.0% (2451 of 2451 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2451 of 2451 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Persian) Currently translated at 78.2% (1918 of 2451 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/fa/ * Translated using Weblate (Russian) Currently translated at 99.9% (2453 of 2454 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/ * Translated using Weblate (Russian) Currently translated at 99.9% (2453 of 2454 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/ * Translated using Weblate (Russian) Currently translated at 99.9% (2453 of 2454 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/ * Translated using Weblate (Russian) Currently translated at 99.9% (2453 of 2454 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/ * Translated using Weblate (Russian) Currently translated at 99.9% (2453 of 2454 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/ * Translated using Weblate (Russian) Currently translated at 99.9% (2453 of 2454 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/ * Translated using Weblate (Russian) Currently translated at 99.9% (2118 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ru/ * Translated using Weblate (Russian) Currently translated at 99.9% (2118 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ru/ * Translated using Weblate (Russian) Currently translated at 99.9% (2118 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ru/ * Translated using Weblate (Russian) Currently translated at 99.9% (2118 of 2120 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ru/ * process localizations * update translations * reprocess --------- Co-authored-by: Pixelcode <pixelcode@dismail.de> Co-authored-by: J R <jr@simplex.chat> Co-authored-by: Ophiushi <41908476+ishi-sama@users.noreply.github.com> Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org> Co-authored-by: re me <jisizhang001@gmail.com> Co-authored-by: No name <CertainBot@users.noreply.hosted.weblate.org> Co-authored-by: M1K4 <oomikaoo@gmail.com> Co-authored-by: Max <Prototypem95@users.noreply.hosted.weblate.org> Co-authored-by: B.O.S.S <BxOxSxS@protonmail.com> Co-authored-by: Abdullah Koyuncu <wisewebworks@outlook.com> Co-authored-by: summoner001 <summoner@vivaldi.net> Co-authored-by: mlanp <github@lang.xyz> Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org> Co-authored-by: U.S <usnotv@gmail.com> Co-authored-by: fran secs <fransecs@gmail.com> Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me> Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org> Co-authored-by: elid <shopisrael12@gmail.com> Co-authored-by: firmfox <admin@raizon.ir> |
||
|
|
a7f8866360 |
ui: plan and connect spinners (#6048)
* ios: plan and connect spinners * fix cleanup * remove redundant check * revert diff * progress by timeout for join and connect buttons * accept in progress * connect in progress by timeout wip * fix observable * fix cleanup * kotlin wip * decrease delay * ios: spinner as overlay * remove duplicate stop progress, remove cleanupOnCancel * contact request progress * plan in progress wip * fix cleanup * search * fix ios * scanner * desktop paste * spinner in chat * ios: don't repeat scan while in progress * spinner in paste field * cancellable plan * cancel in more scenarios * fix cancellation * move progress to search * remove task var * pause scanner when processing qr code * kotlin * improvements * layout * layout * move spinner --------- Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com> |
||
|
|
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 |
||
|
|
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 |
||
|
|
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 |
||
|
|
6c06200b14 |
core: create business chat when preparing via contact link data with business flag (#6008)
* core: create business chat when preparing via contact link data with business flag * add to test * plans * ios * ios |
||
|
|
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 |
||
|
|
b0ee13628b | core: change user for prepared contact or group (#5985) | ||
|
|
56c8d8696e | core: prepare and connect to group (#5964) | ||
|
|
8a4760a2cb | core: set short links data, prepare entity, etc.; ios: connect to prepared contact (#5951) | ||
|
|
39de65854c | ios: refactor new chat alerts (#5959) | ||
|
|
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 |
||
|
|
45e395d35a |
core, ui: short connection links with stored data (#5824)
* core, ui: optionally use short links (#5799) * core: optionally use short links * update test * update simplexmq, short group links * fix query * fix parser for _connect * ios: use short links * shorten links to remove fingerprint and onion hosts from known servers * fix parser * tests * nix * update query plans * update simplexmq, simplex: schema for short links * simplexmq * update ios * fix short links in ios * android: use short links * fix short group links, test short link connection plans * core: fix connection plan to recognize own short links * update simplexmq * space * all tests * relative symlinks in simplexmq to fix windows build * core: improve connection plan for short links (#5825) * core: improve connection plan for short links * improve connection plans * update UI * update simplexmq * ios: add preset server domains to entitlements, add short link paths to .well-known/apple-app-site-association * update simplexmq * fix group short link in iOS, fix simplex:/ scheme saved to database or used for connection plans * update simplexmq * ios: delay opening URI from outside until the app is started * update simplexmq |
||
|
|
a3a27b250c |
ios: small fixes (#5712)
* ios: small fixes * main thread * fix crash * fix member opening * dismissing sheets in order * theoretical fix of some crashes --------- Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com> |
||
|
|
fcb2d1dbac |
core, ios: chat tags (#5367)
* types and db * migration module * chat tag * store method proposal * profiles build * update type * update return type * building * working api * update * refactor * attach tags to contact * simplify * attach chat tags to group info * get chat tags with supplied user id * get tags fix * ios: chat tags poc (#5370) * ios: chat tags poc * updates to sheet * temporary display for other option on swipe * sheet height * only show preset when it has matches * changes * worst emoji picker ever * simplify tag casts and collapse * open on create tag if no tags * simple emoji text field * nice emoji picker * dismiss sheets on tag/untag * semibold selection * all preset tag and change collapsed icon on selection * default selected tag (all) * only apply tag filters on empty search * + button when no custom lists * reset selection of tag filter on profile changes * edit tag (broken menu inside swiftui list) * create list to end of list * swipe changes * remove context menu * delete and edit on swipe actions * tap unread filter deselects other filters * remove delete tag if empty * show tag creation sheet when + button pressed * in memory tag edit * color, size * frame * layout * refactor * remove code * add unread to same unit * fraction on long press * nav fixes * in memory list * emoji picker improvements * remove diff * secondary plus * stop flickering on chat tags load * reuse string * fix reset glitches * delete destructive * simplify? * changes * api updates * fix styles on list via swipe * fixed untag * update schema * move user tags loading to get users chat data * move presets to model * update preset tags when chats are updated * style fixes and locate getPresetTags near tags model --------- Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com> * deleted contacts and card should not match contact preset * fix update presets on chat remove * update migration indices * fix migration * not used chat model * disable button on repeated list name or emoji * no chats message for search fix * fix edits and trim * error in footer, not in alert * styling fixes due to wrong place to attach sheet * update library * remove log * idea for dynamic sheet height * max fraction 62% * minor fixes * disable save button when no changes and while saving * disable preset filter if it is no longer shown * remove comments from schema * fix emoji * remove apiChatTagsResponse * always read chat tags * fix --------- Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com> Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> |
||
|
|
9d992735f4 |
core, ios: improve business address (connection plan, repeat requests, feature items) (#5303)
* core, ios: connection plan for business address * core: store xcontact_id on business groups to prevent duplicate contact requests * core: create feature items in new groups and in business groups * fix tests * error message |
||
|
|
1f04984a34 | ios: offer to create 1-time link on address views (#5249) | ||
|
|
0d8c179861 | ios: fix not showing link creation and add group members pages (#5020) | ||
|
|
e9a99dfb3c | ios: fix empty qr code reader when swapping to connect via link (#5016) | ||
|
|
bdb6bd6e20 |
ios: hide user picker sheet instantly, when opening another sheet (#4927)
* ios: hide user picker sheet instantly, when opening another sheet * tweak appearance * distance based animation duration * cleanup; dismiss * implement UIViewPropertyAnimator * resolve warning * user picker bottom padding * reset user scroll position on dismiss; cleanup * reduce dif * delay user picker closing * touchable list row; prevent tap gesture passtrough * fix dark mode tap target; retain highlight; highlight in user scroller * fix layout loop; add upper animation speed constraint * refactor separators * instantanious longPress; tweak animations * cubic animation curve; dynamic backdrop opacity * remove touchdown animation * ios: user picker sheet concurent animation (#4955) * ios: user picker sheet concurent animation * bind showSettings; cleanup * async qr code generation * fix iOS15 sheet animation when presenting sheet multiple times * async camera authorization in 'Use from desktop' sheet * load sheet navigation titles before presenting (#4963) * load sheet navigation titles before presenting * list background during loading * improve handling of repeated sheet presentation state changes * fix keyboard related glitches * ios: remove `showSettings` and `withNavigation` (#4980) * remove showSettings * pass dismiss action trough navigation links * move auth to all sheets --------- Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com> |
||
|
|
1a853d4eea | Merge branch 'stable' | ||
|
|
0cb568d206 |
fix incorrect error of migration to device (#4852)
* fix incorrect error of migration to device * alert to finish migration, ios fix * simplexmq * catching exception and stopping chat * text --------- Co-authored-by: Avently <7953703+avently@users.noreply.github.com> |
||
|
|
efe8ed1739 |
ios: fix possible race between incognito set and profile change in conn profile picker (#4752)
* ios: fix possible race between incognito set and profile change in conn profile picker * typo * fix swithcing incognito on same profile |
||
|
|
04033fc0b5 |
ios: connection profile search, incognito info in selection list and improved loader (#4744)
* remove comment
* improve switching chat profile loader
* add search on profile selection
* disable auto correction
* add incognito info in select chat profile
* fix typos
* layout
* fix choosing hidden user
* opacity back
* Revert "layout"
This reverts commit
|
||
|
|
c485837910 |
ios: allow for chat profile selection on new chat screen (#4729)
* ios: allow for chat profile selection on new chat screen * add api and types * initial api connection with error handling * improve incognito handling * adjustments to different server connections * loading state * simpler handling of race * smaller delay * improve error handling and messages * fix header * remove tap section footer * incognito adjustments * set UI driving vars in main thread * remove result * incognito in profile picker and footer * put incognito mask inside a circle * fix click on incognito when already selected * fix avoid users swapping position when picker is active * fix pending contact cleanup logic * icons * restore incognito help * fix updating qr code * remove info from footer * layout --------- Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com> Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> |
||
|
|
7cb3a499b2 |
ios: optimise chat switching (#4663)
* ios: shooth chat switching * debug button * navigation timeout * fix scroll crash * fix merge * whitespace * wip * add spinner; extract load and nav logic * cleanup * direct chat button * cleanup * showLoadingProgress * reverse rename * rename * spinner layout * move all programmatic navigation to `openLoadChat` * remove access restriction * fix scroll on item added regression * print * fix page load regression * fix member sheet disappearing --------- Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com> |
||
|
|
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> |
||
|
|
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> |