Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UNIFY SIMPLEX to NOSTR #1

Merged
merged 180 commits into from
Dec 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
180 commits
Select commit Hold shift + click to select a range
78510b6
core, ios: get messages for multiple last notifications; separately g…
spaced4ndy Oct 25, 2024
37b78ed
ios: move Network and servers settings modules to folder (#5110)
spaced4ndy Oct 28, 2024
24090fe
android, desktop: update to Compose 1.7.0 (#5038)
avently Oct 31, 2024
4162bcc
multiplatform: edge to edge design (#5051)
avently Oct 31, 2024
3c8c9d8
website: update jobs page
epoberezkin Nov 2, 2024
ceb17b2
bumped haskell.nix (#5134)
epoberezkin Nov 2, 2024
165143a
Use simplexmq with client_library flag (#5133)
dpwiz Nov 2, 2024
7a741e7
ios: update core library
epoberezkin Nov 2, 2024
9a1166f
Merge branch 'master' into server-operators
epoberezkin Nov 3, 2024
97df069
core: add support for server operators (#4961)
epoberezkin Nov 4, 2024
bdaec30
core: getServerOperators, getUserServers, getUsageConditions apis wip…
spaced4ndy Nov 4, 2024
3b0205b
core: setServerOperators, getUsageConditions api wip (#5145)
spaced4ndy Nov 5, 2024
2da89c2
core: setConditionsNotified, acceptConditions, setUserServers, valida…
spaced4ndy Nov 5, 2024
8396e70
core: validate servers - find servers with duplicate hosts (#5150)
spaced4ndy Nov 6, 2024
ef0f21a
core: operator apis commands (#5155)
spaced4ndy Nov 8, 2024
2d58894
directory service: additional commands (#5159)
epoberezkin Nov 10, 2024
457e128
Merge branch 'master' into server-operators
epoberezkin Nov 10, 2024
8af5453
docs: add control port section (#5164)
shumvgolove Nov 12, 2024
15bac88
desktop, android: user profiles move auth to change actions, show unr…
diogofcunha Nov 13, 2024
60c37f0
ios: user profiles move auth to change actions, show unread counts (#…
diogofcunha Nov 13, 2024
4d82209
core: pagination API to load items around defined or the earliest unr…
diogofcunha Nov 14, 2024
a5061f3
docs: update privacy policy and conditions of use (#5129)
epoberezkin Nov 14, 2024
e45a969
ci: update website build
epoberezkin Nov 14, 2024
807f698
Merge branch 'master' into server-operators
epoberezkin Nov 14, 2024
d42cab8
core: preset operators and servers (#5142)
epoberezkin Nov 14, 2024
1fbf21d
core: validate servers of all user profiles (#5180)
epoberezkin Nov 15, 2024
ff8e29c
core: fix accept conditions query (#5187)
spaced4ndy Nov 15, 2024
feb687d
core: different roles for different protocols (#5185)
epoberezkin Nov 15, 2024
b605ebf
core: remove comments
epoberezkin Nov 15, 2024
6843269
core: 6.2.0.0 (simplexmq: 6.2.0.3)
epoberezkin Nov 17, 2024
a17bfc5
Merge branch 'master' into server-operators
epoberezkin Nov 17, 2024
e645dd9
6.2-beta.0: ios 246, android 251, desktop 75
epoberezkin Nov 17, 2024
feb4ecb
Merge branch 'master' into server-operators
epoberezkin Nov 18, 2024
d1ae3ba
desktop, android: add address card to chat list and remove address fr…
diogofcunha Nov 18, 2024
3d4a47c
Merge branch 'master' into server-operators
epoberezkin Nov 18, 2024
6199857
core: use random servers for each operator (#5192)
epoberezkin Nov 18, 2024
fcae5e9
core: fix validation of operator servers for non current users (#5205)
spaced4ndy Nov 18, 2024
70a2951
ios: server operators ui (#5114)
spaced4ndy Nov 19, 2024
4b9c618
core: remove a separate type to validate servers with invalid address…
epoberezkin Nov 19, 2024
181f72f
ios: texts about operators (#5213)
epoberezkin Nov 19, 2024
58c92ed
ios: rework existing users notice, condition views (#5214)
spaced4ndy Nov 19, 2024
4e37efd
core: update agent servers (#5215)
epoberezkin Nov 20, 2024
e5534c0
ios: improve onboarding animations (#5216)
spaced4ndy Nov 20, 2024
313acef
ios: remove crashing accept button (#5217)
spaced4ndy Nov 20, 2024
29b54ec
ios: rework saving settings (#5219)
spaced4ndy Nov 20, 2024
f3cef7c
ios: remove unused type
spaced4ndy Nov 20, 2024
2b155db
android, desktop: open chat on first unread, "scroll" to quoted items…
avently Nov 20, 2024
927a04d
Merge branch 'master' into server-operators
epoberezkin Nov 20, 2024
522f99a
directory service: notify admins about group registration events (#5223)
epoberezkin Nov 20, 2024
61d7df8
ui: always use private routing by default
epoberezkin Nov 21, 2024
78b3b12
ios: button to open conditions and changes (#5225)
epoberezkin Nov 21, 2024
1083a07
flatpak: update metainfo (#5146)
shumvgolove Nov 22, 2024
bab63d8
ios: fix repeatedly showing updated conditions
spaced4ndy Nov 22, 2024
49d1b26
core: tests for operators api, CLI command to update operators (#5226)
epoberezkin Nov 22, 2024
ea9ee98
android, desktop: better message info screen (#5227)
avently Nov 22, 2024
396fa7f
desktop, android: server operators (#5212)
diogofcunha Nov 22, 2024
b517068
android: fix single operator conditions paddings
spaced4ndy Nov 22, 2024
2adfa0c
android: information icon right of operator logo
spaced4ndy Nov 22, 2024
bff2d7d
android, desktop: highlight quoted messaged on click to scroll to it …
avently Nov 22, 2024
494ef6e
Merge branch 'master' into server-operators
epoberezkin Nov 22, 2024
e47b16f
android: improve layout of operator logo
spaced4ndy Nov 22, 2024
a6f5ba5
android, desktop: smaller info icon, corrections
epoberezkin Nov 22, 2024
76aedb4
core: update simplexmq
epoberezkin Nov 22, 2024
9b71702
ios: move onboarding action cards, paddings (#5231)
epoberezkin Nov 22, 2024
4f640c9
build: use openssl 3.0 (#5183)
epoberezkin Nov 22, 2024
2f0fe50
Merge pull request #5111 from simplex-chat/server-operators
epoberezkin Nov 22, 2024
bda84b0
ci: fix mac & Windows build (#5232)
avently Nov 23, 2024
7bcb514
core: 6.2.0.1 (simplexmq: 6.2.0.4)
epoberezkin Nov 23, 2024
30a24df
ui: update whats new link (#5234)
epoberezkin Nov 23, 2024
909edac
desktop: unsaved changes popup for network and servers when clicking …
diogofcunha Nov 23, 2024
6581e27
6.2-beta.1: ios 247, android 252, desktop 76
epoberezkin Nov 23, 2024
d40d690
desktop (Windows): fix linking with openssl 3 (#5238)
avently Nov 24, 2024
97b472f
blog: operators (#5240)
epoberezkin Nov 25, 2024
e5c83b2
android, desktop: fix operator disabled indication (#5242)
spaced4ndy Nov 25, 2024
cfc21df
ios: address or 1-time link (#5246)
epoberezkin Nov 25, 2024
d912fe0
core: fix pagination indexes (#5241)
spaced4ndy Nov 25, 2024
7a91ed2
android, desktop: view conditions as markdown (#5247)
avently Nov 25, 2024
1f04984
ios: offer to create 1-time link on address views (#5249)
spaced4ndy Nov 26, 2024
345e0ac
ios: onboarding redesign (#5252)
diogofcunha Nov 26, 2024
2589317
ios: view conditions as markdown (#5248)
avently Nov 26, 2024
8c1abcc
android, desktop: scroll to quoted item without known id (#5254)
avently Nov 26, 2024
15fae29
android, desktop: offer to create 1-time link on address views (#5253)
spaced4ndy Nov 27, 2024
41b7ad0
core: apiGetReactionMembers (#5258)
spaced4ndy Nov 27, 2024
9fa968a
ui: fix marking chat read (don't use range api) (#5257)
spaced4ndy Nov 27, 2024
b512d3a
Merge branch 'master' into reaction-members
spaced4ndy Nov 27, 2024
ba7abcf
ios: update onboarding texts (#5255)
epoberezkin Nov 27, 2024
22d7db8
ios: database error screens redesign (#5256)
diogofcunha Nov 27, 2024
d19708e
Merge branch 'master' into reaction-members
diogofcunha Nov 27, 2024
096dec2
ui: translations (#5264)
epoberezkin Nov 27, 2024
6148464
website: translations (#5266)
epoberezkin Nov 27, 2024
c3991aa
website: translations corrections
epoberezkin Nov 28, 2024
13efdf2
core: apiGetReactionMembers api implementation (#5263)
spaced4ndy Nov 28, 2024
68be4b4
core: return member records from apiGetReactionMembers (#5270)
spaced4ndy Nov 28, 2024
9c6e0a7
desktop: fix avatar crop (#5271)
spaced4ndy Nov 28, 2024
9915e55
desktop, android: show group reactions (#5277)
diogofcunha Nov 29, 2024
b0f3f0a
ios: fix alignment on operators review later button and notice (#5280)
diogofcunha Nov 29, 2024
80bd4cd
Merge branch 'master' into reaction-members
epoberezkin Nov 29, 2024
03bc4e5
ios: display reactions in groups by member (#5265)
diogofcunha Nov 30, 2024
879c117
Merge pull request #5259 from simplex-chat/reaction-members
epoberezkin Nov 30, 2024
961bdbf
ios: start/stop chat toggle refactoring (#5275)
avently Nov 30, 2024
4738286
android, desktop: start/stop chat toggle refactoring (#5261)
avently Nov 30, 2024
e9853fe
ios: update alert message for SimpleX address card
epoberezkin Nov 30, 2024
94377d0
android, desktop: bottom bar and update texts in onboarding (#5279)
diogofcunha Nov 30, 2024
2c0de36
ios: large Conditions screen heading during onboarding
epoberezkin Nov 30, 2024
a9e7635
core: disable Flux XFTP servers to prevent unknown server warning for…
epoberezkin Nov 30, 2024
79d5573
cli: fix option --yes-migrate to confirm up migrations automatically,…
epoberezkin Nov 30, 2024
8f32c6a
core: 6.2.0.2
epoberezkin Nov 30, 2024
98a3437
6.2-beta.2: ios 248, android 253, desktop 77
epoberezkin Nov 30, 2024
b8442d9
core: improve performance of marking chat items as read (#5290)
epoberezkin Dec 1, 2024
3143cc9
core: 6.2.0.3
epoberezkin Dec 1, 2024
c488c4f
6.2-beta.3: ios 249, android 254, desktop 78
epoberezkin Dec 1, 2024
5f01dc1
core: support business addresses and chats (#5272)
epoberezkin Dec 2, 2024
5a59fdd
android, desktop: fix Can't represent a width ... and a height ... in…
avently Dec 2, 2024
f6b611a
android, desktop: check existence before deleting database (#5298)
avently Dec 2, 2024
a62ce91
core: fix names created for business request group and member (#5296)
spaced4ndy Dec 2, 2024
6655010
android: show info for Xiaomi users about autostart restrictions (#5295)
avently Dec 2, 2024
a588e70
android: alert round corners (#5299)
avently Dec 2, 2024
bc96000
ios: support business addresses and chats (#5300)
spaced4ndy Dec 2, 2024
92967df
ios: disable autocorrect add group member search (#5301)
diogofcunha Dec 2, 2024
c04e952
desktop: onboarding improvements (#5294)
diogofcunha Dec 2, 2024
e61babd
android, desktop: preserving long message when failed to send (#5297)
avently Dec 2, 2024
9d99273
core, ios: improve business address (connection plan, repeat requests…
epoberezkin Dec 3, 2024
85e7a13
desktop: show group message reaction on right click (#5304)
diogofcunha Dec 3, 2024
43fa4c4
docs: update FAQ (#5179)
Narasimha-sc Dec 3, 2024
a0b8cf6
android, desktop: support business addresses and chats (#5302)
spaced4ndy Dec 3, 2024
29b9abf
ui: translations (#5267)
epoberezkin Dec 3, 2024
a1e2562
website: translations (#5306)
epoberezkin Dec 3, 2024
6593de8
ios: make more texts different for groups and business chats (#5307)
spaced4ndy Dec 3, 2024
247d12f
android, desktop: make more texts different for groups and business c…
spaced4ndy Dec 3, 2024
a182cf5
ui, site: v6.2 whats new, business (#5309)
epoberezkin Dec 3, 2024
f3be723
ios: export localizations
epoberezkin Dec 3, 2024
b9777c9
core: 6.2.0.4 (simplexmq: 6.2.0.5)
epoberezkin Dec 3, 2024
3acc69c
6.2-beta.4: ios 250, android 255, desktop 79
epoberezkin Dec 3, 2024
6ff7d4a
core: fix business chat state on accept (fixes icon) (#5312)
spaced4ndy Dec 4, 2024
4f1cf6e
docs: business page, technical advice (#5314)
shumvgolove Dec 4, 2024
89f3804
core: update business chat profile (#5313)
epoberezkin Dec 4, 2024
219381f
android, desktop: don't load new messages when pressing quote while …
avently Dec 4, 2024
ee146cd
android, desktop, core: option to show toolbar in chat at the top in …
avently Dec 4, 2024
3fa1d7b
core: fix cli servers override (#5317)
spaced4ndy Dec 4, 2024
892f649
ios: fix contact cards opening empty page on connection 2 (#5319)
spaced4ndy Dec 4, 2024
009d132
android: fix simplex chat team contact card opening empty page on con…
spaced4ndy Dec 4, 2024
c1c17d1
core: 6.2.0.5 (simplexmq: 6.2.0.6)
epoberezkin Dec 4, 2024
c1a0943
6.2-beta.5: ios 251, android 256, desktop 80
epoberezkin Dec 4, 2024
4f8a70a
android, desktop: allow to scan QR multiple times after fail (#5323)
avently Dec 5, 2024
97cd268
core: take address lock before reading contact request data (to preve…
spaced4ndy Dec 5, 2024
5f66c29
ios: fix open from notification and connected directly chat item chat…
diogofcunha Dec 5, 2024
de76e27
android, desktop: displaying deleted message with file in chat list (…
avently Dec 5, 2024
60e0e45
core: only update business chat preferences (#5325)
epoberezkin Dec 5, 2024
e9bf229
core: 6.2.0.6
epoberezkin Dec 5, 2024
69e23ad
android, desktop: don't show unwanted notifications (#5328)
spaced4ndy Dec 5, 2024
ff50470
ui: translations (#5330)
epoberezkin Dec 5, 2024
586671c
website: translations (#5331)
epoberezkin Dec 5, 2024
bd2ca74
ui: update "server operators privacy" in onboarding
epoberezkin Dec 5, 2024
886dc56
ui: update business chat info type
epoberezkin Dec 5, 2024
5ef14ca
6.2-beta.6: ios 253, android 258, desktop 81
epoberezkin Dec 5, 2024
19e2ceb
android, desktop: remove footer in Run chat section when chat is running
epoberezkin Dec 6, 2024
9b82cc3
core: fix feature items when updating preferences in business chats
epoberezkin Dec 6, 2024
9242731
ios: ask for confirmation of save on group preferences sheet dismiss …
diogofcunha Dec 6, 2024
2e431c5
ios: fix some real time updates in group members (#5332)
diogofcunha Dec 6, 2024
945c501
ui: improve pending connection texts (#5333)
spaced4ndy Dec 6, 2024
f408988
ios: fix oneHandUI setting becoming enabled on import (#5335)
spaced4ndy Dec 6, 2024
1408d75
ios: use async getServerOperators api (#5334)
spaced4ndy Dec 6, 2024
ae8ad5c
ios: operators info on onboarding (#5336)
spaced4ndy Dec 6, 2024
7d43a43
ios: ask for confirmation of save on contact preferences sheet dismis…
diogofcunha Dec 6, 2024
df1a471
ios: remove all unsafe warnings in group preferences save (#5340)
diogofcunha Dec 6, 2024
3625814
ios: export localizations, add translations (#5339)
spaced4ndy Dec 6, 2024
e0c2272
android, desktop: operators info on onboarding (#5341)
spaced4ndy Dec 6, 2024
615c483
android: onboarding small design adjustments (#5346)
diogofcunha Dec 7, 2024
83f0bd9
android, desktop: onboarding button multiline layout (#5348)
avently Dec 7, 2024
cbb3da8
core: 6.2.0.7 (simplexmq: 6.2.0.7)
epoberezkin Dec 7, 2024
fe0d811
ui: operator information (#5343)
epoberezkin Dec 7, 2024
ea4927c
core: 6.2.0.7 updated version
epoberezkin Dec 7, 2024
93319d9
website: translations (#5350)
epoberezkin Dec 7, 2024
7d6c7c5
ui: translations (#5338)
epoberezkin Dec 7, 2024
307211a
android, desktop: landscape calls on Android and better local camera …
avently Dec 7, 2024
7c86484
ios: update library
epoberezkin Dec 7, 2024
df30bb9
ui: add translations
epoberezkin Dec 7, 2024
f0781ad
desktop: fix opening operators on onboarding (#5351)
spaced4ndy Dec 7, 2024
febea09
android, desktop: remove duplicate translation key
epoberezkin Dec 7, 2024
33bc539
6.2: ios 254, android 259, desktop 82
epoberezkin Dec 7, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 11 additions & 11 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,12 @@ jobs:
run: |
echo "ignore-project: False" >> cabal.project.local
echo "package simplexmq" >> cabal.project.local
echo " extra-include-dirs: /opt/homebrew/opt/openssl@1.1/include" >> cabal.project.local
echo " extra-lib-dirs: /opt/homebrew/opt/openssl@1.1/lib" >> cabal.project.local
echo " extra-include-dirs: /opt/homebrew/opt/openssl@3.0/include" >> cabal.project.local
echo " extra-lib-dirs: /opt/homebrew/opt/openssl@3.0/lib" >> cabal.project.local
echo "" >> cabal.project.local
echo "package direct-sqlcipher" >> cabal.project.local
echo " extra-include-dirs: /opt/homebrew/opt/openssl@1.1/include" >> cabal.project.local
echo " extra-lib-dirs: /opt/homebrew/opt/openssl@1.1/lib" >> cabal.project.local
echo " extra-include-dirs: /opt/homebrew/opt/openssl@3.0/include" >> cabal.project.local
echo " extra-lib-dirs: /opt/homebrew/opt/openssl@3.0/lib" >> cabal.project.local
echo " flags: +openssl" >> cabal.project.local

- name: Unix prepare cabal.project.local for Mac
Expand All @@ -138,21 +138,21 @@ jobs:
run: |
echo "ignore-project: False" >> cabal.project.local
echo "package simplexmq" >> cabal.project.local
echo " extra-include-dirs: /usr/local/opt/openssl@1.1/include" >> cabal.project.local
echo " extra-lib-dirs: /usr/local/opt/openssl@1.1/lib" >> cabal.project.local
echo " extra-include-dirs: /usr/local/opt/openssl@3.0/include" >> cabal.project.local
echo " extra-lib-dirs: /usr/local/opt/openssl@3.0/lib" >> cabal.project.local
echo "" >> cabal.project.local
echo "package direct-sqlcipher" >> cabal.project.local
echo " extra-include-dirs: /usr/local/opt/openssl@1.1/include" >> cabal.project.local
echo " extra-lib-dirs: /usr/local/opt/openssl@1.1/lib" >> cabal.project.local
echo " extra-include-dirs: /usr/local/opt/openssl@3.0/include" >> cabal.project.local
echo " extra-lib-dirs: /usr/local/opt/openssl@3.0/lib" >> cabal.project.local
echo " flags: +openssl" >> cabal.project.local

- name: Install AppImage dependencies
if: startsWith(github.ref, 'refs/tags/v') && matrix.asset_name && matrix.os == 'ubuntu-20.04'
run: sudo apt install -y desktop-file-utils

- name: Install pkg-config for Mac
- name: Install openssl for Mac
if: matrix.os == 'macos-latest' || matrix.os == 'macos-13'
run: brew install pkg-config
run: brew install [email protected]

- name: Unix prepare cabal.project.local for Ubuntu
if: matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-22.04'
Expand Down Expand Up @@ -334,7 +334,7 @@ jobs:
run: |
export PATH=$PATH:/c/ghcup/bin:$(echo /c/tools/ghc-*/bin || echo)
scripts/desktop/prepare-openssl-windows.sh
openssl_windows_style_path=$(echo `pwd`/dist-newstyle/openssl-1.1.1w | sed 's#/\([a-zA-Z]\)#\1:#' | sed 's#/#\\#g')
openssl_windows_style_path=$(echo `pwd`/dist-newstyle/openssl-3.0.15 | sed 's#/\([a-zA-Z]\)#\1:#' | sed 's#/#\\#g')
rm cabal.project.local 2>/dev/null || true
echo "ignore-project: False" >> cabal.project.local
echo "package direct-sqlcipher" >> cabal.project.local
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/web.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
- blog/**
- docs/**
- .github/workflows/web.yml
- PRIVACY.md

jobs:
build:
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ RUN cp ./scripts/cabal.project.local.linux ./cabal.project.local

# Compile simplex-chat
RUN cabal update
RUN cabal build exe:simplex-chat
RUN cabal build exe:simplex-chat --constraint 'simplexmq +client_library'

# Strip the binary from debug symbols to reduce size
RUN bin=$(find /project/dist-newstyle -name "simplex-chat" -type f -executable) && \
Expand Down
162 changes: 105 additions & 57 deletions PRIVACY.md

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,8 @@ You can use SimpleX with your own servers and still communicate with people usin

Recent and important updates:

[Nov 25, 2025. Servers operated by Flux - true privacy and decentralization for all users](./20241125-servers-operated-by-flux-true-privacy-and-decentralization-for-all-users.md)

[Oct 14, 2024. SimpleX network: security review of protocols design by Trail of Bits, v6.1 released with better calls and user experience.](./blog/20241014-simplex-network-v6-1-security-review-better-calls-user-experience.md)

[Aug 14, 2024. SimpleX network: the investment from Jack Dorsey and Asymmetric, v6.0 released with the new user experience and private message routing](./blog/20240814-simplex-chat-vision-funding-v6-private-routing-new-user-experience.md)
Expand Down
1 change: 1 addition & 0 deletions apps/ios/Shared/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ class AppDelegate: NSObject, UIApplicationDelegate {
application.registerForRemoteNotifications()
removePasscodesIfReinstalled()
prepareForLaunch()
deleteOldChatArchive()
return true
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "Flux_logo_blue_white.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 21 additions & 0 deletions apps/ios/Shared/Assets.xcassets/flux_logo.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "Flux_logo_blue.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "Flux_symbol_blue-white.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 48 additions & 5 deletions apps/ios/Shared/ContentView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,18 @@ import SwiftUI
import Intents
import SimpleXChat

private enum NoticesSheet: Identifiable {
case whatsNew(updatedConditions: Bool)
case updatedConditions

var id: String {
switch self {
case .whatsNew: return "whatsNew"
case .updatedConditions: return "updatedConditions"
}
}
}

struct ContentView: View {
@EnvironmentObject var chatModel: ChatModel
@ObservedObject var alertManager = AlertManager.shared
Expand All @@ -30,7 +42,8 @@ struct ContentView: View {
@AppStorage(DEFAULT_PERFORM_LA) private var prefPerformLA = false
@AppStorage(DEFAULT_PRIVACY_PROTECT_SCREEN) private var protectScreen = false
@AppStorage(DEFAULT_NOTIFICATION_ALERT_SHOWN) private var notificationAlertShown = false
@State private var showWhatsNew = false
@State private var noticesShown = false
@State private var noticesSheetItem: NoticesSheet? = nil
@State private var showChooseLAMode = false
@State private var showSetPasscode = false
@State private var waitingForOrPassedAuth = true
Expand Down Expand Up @@ -261,17 +274,38 @@ struct ContentView: View {
alertManager.showAlert(laNoticeAlert())
} else if !chatModel.showCallView && CallController.shared.activeCallInvitation == nil {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
if !showWhatsNew {
showWhatsNew = shouldShowWhatsNew()
if !noticesShown {
let showWhatsNew = shouldShowWhatsNew()
let showUpdatedConditions = chatModel.conditions.conditionsAction?.showNotice ?? false
noticesShown = showWhatsNew || showUpdatedConditions
if showWhatsNew {
noticesSheetItem = .whatsNew(updatedConditions: showUpdatedConditions)
} else if showUpdatedConditions {
noticesSheetItem = .updatedConditions
}
}
}
}
prefShowLANotice = true
connectViaUrl()
}
.onChange(of: chatModel.appOpenUrl) { _ in connectViaUrl() }
.sheet(isPresented: $showWhatsNew) {
WhatsNewView()
.sheet(item: $noticesSheetItem) { item in
switch item {
case let .whatsNew(updatedConditions):
WhatsNewView(updatedConditions: updatedConditions)
.modifier(ThemedBackground())
.if(updatedConditions) { v in
v.task { await setConditionsNotified_() }
}
case .updatedConditions:
UsageConditionsView(
currUserServers: Binding.constant([]),
userServers: Binding.constant([])
)
.modifier(ThemedBackground(grouped: true))
.task { await setConditionsNotified_() }
}
}
if chatModel.setDeliveryReceipts {
SetDeliveryReceiptsView()
Expand All @@ -283,6 +317,15 @@ struct ContentView: View {
.onContinueUserActivity("INStartVideoCallIntent", perform: processUserActivity)
}

private func setConditionsNotified_() async {
do {
let conditionsId = ChatModel.shared.conditions.currentConditions.conditionsId
try await setConditionsNotified(conditionsId: conditionsId)
} catch let error {
logger.error("setConditionsNotified error: \(responseError(error))")
}
}

private func processUserActivity(_ activity: NSUserActivity) {
let intent = activity.interaction?.intent
if let intent = intent as? INStartCallIntent {
Expand Down
6 changes: 4 additions & 2 deletions apps/ios/Shared/Model/ChatModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,8 @@ final class ChatModel: ObservableObject {
@Published var draft: ComposeState?
@Published var draftChatId: String?
@Published var networkInfo = UserNetworkInfo(networkType: .other, online: true)
// usage conditions
@Published var conditions: ServerOperatorConditions = .empty

var messageDelivery: Dictionary<Int64, () -> Void> = [:]

Expand Down Expand Up @@ -843,7 +845,7 @@ final class ChatModel: ObservableObject {
}

func dismissConnReqView(_ id: String) {
if id == showingInvitation?.connId {
if id == showingInvitation?.pcc.id {
markShowingInvitationUsed()
dismissAllSheets()
}
Expand Down Expand Up @@ -896,7 +898,7 @@ final class ChatModel: ObservableObject {
}

struct ShowingInvitation {
var connId: String
var pcc: PendingContactConnection
var connChatUsed: Bool
}

Expand Down
20 changes: 15 additions & 5 deletions apps/ios/Shared/Model/NtfManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ enum NtfCallAction {
class NtfManager: NSObject, UNUserNotificationCenterDelegate, ObservableObject {
static let shared = NtfManager()

public var navigatingToChat = false
private var granted = false
private var prevNtfTime: Dictionary<ChatId, Date> = [:]

Expand Down Expand Up @@ -74,7 +75,10 @@ class NtfManager: NSObject, UNUserNotificationCenterDelegate, ObservableObject {
}
} else {
if let chatId = content.targetContentIdentifier {
ItemsModel.shared.loadOpenChat(chatId)
self.navigatingToChat = true
ItemsModel.shared.loadOpenChat(chatId) {
self.navigatingToChat = false
}
}
}
}
Expand Down Expand Up @@ -199,6 +203,12 @@ class NtfManager: NSObject, UNUserNotificationCenterDelegate, ObservableObject {
actions: [],
intentIdentifiers: [],
hiddenPreviewsBodyPlaceholder: NSLocalizedString("SimpleX encrypted message or connection event", comment: "notification")
),
UNNotificationCategory(
identifier: ntfCategoryManyEvents,
actions: [],
intentIdentifiers: [],
hiddenPreviewsBodyPlaceholder: NSLocalizedString("New events", comment: "notification")
)
])
}
Expand Down Expand Up @@ -228,24 +238,24 @@ class NtfManager: NSObject, UNUserNotificationCenterDelegate, ObservableObject {

func notifyContactRequest(_ user: any UserLike, _ contactRequest: UserContactRequest) {
logger.debug("NtfManager.notifyContactRequest")
addNotification(createContactRequestNtf(user, contactRequest))
addNotification(createContactRequestNtf(user, contactRequest, 0))
}

func notifyContactConnected(_ user: any UserLike, _ contact: Contact) {
logger.debug("NtfManager.notifyContactConnected")
addNotification(createContactConnectedNtf(user, contact))
addNotification(createContactConnectedNtf(user, contact, 0))
}

func notifyMessageReceived(_ user: any UserLike, _ cInfo: ChatInfo, _ cItem: ChatItem) {
logger.debug("NtfManager.notifyMessageReceived")
if cInfo.ntfsEnabled {
addNotification(createMessageReceivedNtf(user, cInfo, cItem))
addNotification(createMessageReceivedNtf(user, cInfo, cItem, 0))
}
}

func notifyCallInvitation(_ invitation: RcvCallInvitation) {
logger.debug("NtfManager.notifyCallInvitation")
addNotification(createCallInvitationNtf(invitation))
addNotification(createCallInvitationNtf(invitation, 0))
}

func setNtfBadgeCount(_ count: Int) {
Expand Down
Loading