1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-04-09 22:20:56 +00:00

Compare commits

...

789 Commits

Author SHA1 Message Date
18cb8be655 Start to work on new version 2022-08-04 14:29:01 +02:00
c5ee235ebd Users can report their own generated content (thanks Google Play reviewers) 2022-08-04 13:45:10 +02:00
a24bb147c8 Update version plugin 2022-08-04 12:23:29 +02:00
ae56635564 Update flutter_webrtc plugin 2022-08-04 12:20:36 +02:00
c02f6f1deb Update firebase_messaging plugin 2022-08-04 12:14:52 +02:00
31fed62616 Update file_picker plugin 2022-08-04 12:07:03 +02:00
aff7e7434c flutter pub upgrade 2022-08-04 11:31:37 +02:00
f18b632ac8 Start to work on new version 2022-06-11 16:19:57 +02:00
b14eae6689 Update Gradle and target Android version 2022-06-11 15:15:38 +02:00
bae83430ab Update application dependencies 2022-06-11 15:04:11 +02:00
2c44793def Updated Flutter to v3 2022-06-11 14:12:44 +02:00
b86a456a03 Start to work on new version 2022-03-18 21:02:14 +01:00
e969c85188 Add missing french translations 2022-03-18 20:37:19 +01:00
de8b4f7fb4 Fix incorrect build number 2022-03-18 20:33:15 +01:00
f624971717 Remove report group icon on groups list if user is already a member of the group 2022-03-18 20:16:27 +01:00
49a1098a28 Can report group 2022-03-18 20:13:45 +01:00
64bbce2084 Can report user 2022-03-18 19:29:26 +01:00
504be2e5ef Close report dialog if user has already sent a report 2022-03-18 19:23:35 +01:00
79ed8e934e Can report conversation message 2022-03-18 19:21:08 +01:00
1bd7840be6 Can report conversation 2022-03-18 19:11:06 +01:00
e80232931e Can report comment 2022-03-18 19:05:21 +01:00
20b19d0a4a Can report post 2022-03-18 18:45:58 +01:00
ec16984b8a Managed to send reports 2022-03-18 18:29:25 +01:00
80a1c4e0c4 Start to build report dialog 2022-03-18 17:54:19 +01:00
512b058d34 Fix potential load issue on user page 2022-03-12 15:22:14 +01:00
73f20a543d Start to work on version 1.1.12 2022-03-12 11:15:26 +01:00
2ee4590364 Improve management of cache key 2022-03-12 10:57:11 +01:00
2a50190e94 Add cache key for conversation messages 2022-03-12 10:31:13 +01:00
5040fbb101 Fix refresh issue 2022-03-12 10:14:32 +01:00
11829273e2 Revert "Fix refresh issue"
This reverts commit 56c5eb33
2022-03-12 10:13:44 +01:00
56c5eb335b Fix refresh issue 2022-03-12 10:13:32 +01:00
0bd7426813 Attempt to keep post create form 2022-03-12 09:58:23 +01:00
75c596226b Show a message if user has no conversation yet 2022-03-12 09:47:58 +01:00
a0abdc4f1b Show a message if user has no friend yet 2022-03-12 09:44:21 +01:00
2ac5caaf96 Fix a bug on friends list screen 2022-03-12 09:42:07 +01:00
98354ee3cc Update compile target SDK version 2022-03-11 17:29:32 +01:00
9e6d3761fe Finish to fix notices 2022-03-11 17:16:46 +01:00
48c9ee37b6 Fix a few notices 2022-03-11 17:13:54 +01:00
41446f0e5b Fix a few notices 2022-03-11 17:09:37 +01:00
0f9a59b4a7 Fix a few notices 2022-03-11 17:02:06 +01:00
f0f7096c94 Fix a few notices 2022-03-11 16:41:29 +01:00
adbc036c16 Fix a few notices 2022-03-11 16:40:56 +01:00
45e8f34c81 Fix a few notices 2022-03-11 16:36:42 +01:00
06312512a6 Fix a few notices 2022-03-11 16:27:01 +01:00
5398970868 Fix all warnings 2022-03-11 16:21:35 +01:00
820491b09a Continue to fix issues 2022-03-10 20:39:06 +01:00
7a0b44e446 Continue to fix issues 2022-03-10 20:36:55 +01:00
299a95ea45 Continue to fix issues 2022-03-10 20:28:07 +01:00
3a997cdc56 Start to fix null safety migration errors 2022-03-10 19:39:57 +01:00
ab2c5da0da Progressing with null safety migration 2022-03-10 19:02:06 +01:00
2424fd38d6 Prepare null safety migration 2022-03-10 18:47:16 +01:00
3c08384a4f Migrate from package_info to package_info_plus 2022-03-10 18:42:48 +01:00
c199540aff Migrate from connectivity to connectivity_plus 2022-03-10 18:37:59 +01:00
49a9186978 Update emoji package 2022-03-10 18:31:29 +01:00
1f3230363e Update permission_handler dependency 2022-03-10 18:21:37 +01:00
1a4988d192 Update chewie & wakelock dependencies 2022-03-10 18:14:59 +01:00
cd7cafe315 Run pub update 2022-03-10 18:07:15 +01:00
42b4f99efa Update Flutter to v2.10 2022-03-10 17:28:21 +01:00
173487f801 Start to work on version 1.1.11 2021-12-30 14:34:19 +01:00
61e279f719 Show banner in tablet mode 2021-12-30 13:45:22 +01:00
94ae3434e4 Adapt banner to large screens 2021-12-30 13:36:12 +01:00
78ae2a574a Show banner on Forez main route 2021-12-30 12:32:50 +01:00
75b06e7df8 Show banner on welcome route 2021-12-30 12:28:06 +01:00
71a72d4f04 Add support for banner timeout 2021-12-30 12:22:10 +01:00
90b3ffbe81 Fix lang selection 2021-12-30 12:11:26 +01:00
bfe932c053 Start to display banner 2021-12-30 12:02:18 +01:00
4fd8c4d613 Fix deprecated methods call 2021-12-28 19:09:00 +01:00
ecc4f5bffe Update some Gradle dependencies 2021-12-28 19:03:37 +01:00
c849ee0bac Update Gradle & Target sdk 32 2021-12-28 18:35:32 +01:00
04114dede1 Update Gradle version to 6.2 2021-12-28 17:49:33 +01:00
fff33f907a Update firebase_messaging dependency 2021-12-28 17:29:05 +01:00
9a82301c52 Update web_socket_channel dependency 2021-12-28 17:25:49 +01:00
48ececf93c Update video_thumbnail dependency 2021-12-28 17:23:26 +01:00
bc6068c2a1 Update record_mp3 dependency 2021-12-28 17:18:37 +01:00
5b680bb922 Fix issue on posts list not refreshing when a new post is created 2021-12-28 17:15:25 +01:00
2b05fbda35 Update image_picker dependency 2021-12-28 17:06:21 +01:00
30494ff74a Update flutter_webrtc dependency 2021-12-28 16:59:32 +01:00
062abc5a03 Update file_picker dependency 2021-12-28 16:46:46 +01:00
21506f769e Updated cached_network_image package 2021-12-28 16:43:15 +01:00
e180f0bc13 Replace identicon with jdenticon 2021-12-28 16:34:14 +01:00
7ae50e21a4 Fix all code warnings 2021-12-28 15:33:27 +01:00
ae75429b1d Update to Flutter 2.8.1 2021-12-28 15:23:08 +01:00
f2380ba60a Start to work on version 1.1.10 2021-10-28 16:30:22 +02:00
b4140e61ad Fix little bug 2021-10-28 16:20:31 +02:00
aa44688d66 Start to work on v1.1.9 2021-07-13 18:42:21 +02:00
45cd7f1481 Fix conflict 2021-07-13 18:08:19 +02:00
a076c08429 Fix navigability issue 2021-05-29 15:57:31 +02:00
fa8c1f46a1 Fix appearance issues 2021-05-29 15:48:51 +02:00
0b4306990a Updated dependencies 2021-05-29 15:40:47 +02:00
4e7950582a Fix copy operation 2021-05-08 11:19:42 +02:00
3c179d4b83 Remove Alpha channel on application icon 2021-05-05 19:15:09 +02:00
622c1a5abf Add #Forez build script 2021-05-05 19:13:31 +02:00
48eb525f18 Make push notifications work on iOS 2021-05-05 19:09:01 +02:00
acb24b0b36 Bump build number 2021-05-05 12:23:48 +02:00
b9fe15e190 Fix dark theme issue 2021-05-05 12:23:02 +02:00
98b9c44315 New build attempt 2021-05-05 11:57:49 +02:00
1f0fa1faaa Update build number 2021-05-05 11:42:10 +02:00
a92664ac81 First iOS publish request 2021-05-05 11:36:19 +02:00
06d1d08f6d Push notifications are working on iOS 2021-05-05 08:40:59 +02:00
77030609c0 Start to work on a new version of the application 2021-05-04 08:04:15 +02:00
6470e2145c Fix emoji picker color 2021-05-04 07:52:44 +02:00
e7b4574920 Fix a issue 2021-05-04 07:49:45 +02:00
82464a8a77 Start to work on v1.1.7 2021-05-03 17:29:58 +02:00
8d84c52570 Fix issue with online configuration 2021-05-03 17:08:09 +02:00
34355eceed Add #Forez build script 2021-05-03 17:02:47 +02:00
90aca5132a Create new settings section 2021-04-30 18:55:45 +02:00
3c8bdd380f Add official email address in application settings 2021-04-30 18:50:46 +02:00
473ed0d95c Add missing translation 2021-04-30 18:38:26 +02:00
979be989ac Update about dialog 2021-04-30 18:37:03 +02:00
ffba5530ec Fix issue with non-Forez groups 2021-04-30 18:35:11 +02:00
5d080671c3 Start to work on the future version of Comunic 2021-04-30 18:08:36 +02:00
f018e78047 Add single Comunic build script 2021-04-30 17:39:32 +02:00
3ed56eaa3d Can make Forez releases split per abis 2021-04-29 07:50:18 +02:00
bce087fcce Update README 2021-04-28 19:41:07 +02:00
946bef045b Add custom APK signature for #Forez releases 2021-04-28 19:40:19 +02:00
96b737de67 Simplify #Forez application configuration 2021-04-28 13:44:17 +02:00
d142a0de3b Create #Forez launchscreen storyboard 2021-04-28 09:20:54 +02:00
a682b1c881 Apply new application icon 2021-04-28 08:59:09 +02:00
5f12ab29aa Generate launcher icons for #Forez on iOS 2021-04-28 08:57:37 +02:00
1e958f9d05 Ready to create custo Forez app icons 2021-04-28 08:46:32 +02:00
05245ae98c Set custom name for application 2021-04-28 08:43:25 +02:00
d1144346e5 Start to create new #Forez flavor 2021-04-28 08:33:54 +02:00
4b92b8fe55 Update .gitignore 2021-04-27 19:12:03 +02:00
6dccb21be6 Fix issue 2021-04-27 12:06:17 +02:00
79458759c6 Fix theming issue 2021-04-27 11:56:00 +02:00
76a27dd1df Attempt to fix storyboard 2021-04-27 11:54:39 +02:00
9de39f4caa Fix splash screen 2021-04-27 11:35:43 +02:00
82dd07c4d4 Rename application 2021-04-27 11:14:11 +02:00
908095c1d1 Updated iOS application icon 2021-04-27 11:05:58 +02:00
4192f374f7 Add storyboard 2021-04-27 10:51:48 +02:00
5514588571 Add IOS configuration for file picker 2021-04-27 10:26:08 +02:00
db0e035cdd Update iOS configuration for url_launcher plugin 2021-04-27 10:12:20 +02:00
14074617bd Disable independent push notification services only on Android 2021-04-27 10:10:13 +02:00
7ed3a1810f Fix issue with Forez groups 2021-04-27 09:47:24 +02:00
508286423b Fix application settings on iOS 2021-04-27 09:44:11 +02:00
3555c602e9 Add image picker permission 2021-04-27 09:03:40 +02:00
6ea573df03 Allow unsecure connections 2021-04-27 08:50:50 +02:00
4cd1d2aee5 First iOS successful build 2021-04-26 15:11:58 +02:00
80623c75be Fix issue 2021-04-26 10:51:42 +02:00
8a581d158a Attempt to auto-configure push notifications to remove one tour pane 2021-04-26 10:49:33 +02:00
5da8a64d3d Fix missing translation 2021-04-26 10:24:48 +02:00
f830ae20bb Add missing translations 2021-04-26 10:22:23 +02:00
027ea9bb81 Fix invalid translations 2021-04-26 10:19:48 +02:00
36ef79a169 Fix bad translations 2021-04-26 10:15:19 +02:00
e010a14a59 Add new translations 2021-04-26 10:09:39 +02:00
4a68a4a86a Add new translations 2021-04-26 09:57:10 +02:00
c34f750254 Fix issue 2021-04-26 09:41:57 +02:00
3ea02ea98c Can start private conversation from user profile route 2021-04-26 09:40:49 +02:00
f92846cb76 Add user profile route 2021-04-26 09:33:54 +02:00
5ab21bd63e Fix typo 2021-04-26 08:45:58 +02:00
db04366f56 Improve directory screen 2021-04-26 08:45:25 +02:00
5cb7fced5b Fix typo 2021-04-25 18:03:04 +02:00
5a751ae81f Fix button color 2021-04-25 18:01:12 +02:00
7147ca65e6 Fix state issue 2021-04-25 17:55:39 +02:00
8802a52816 Ready to implement page show 2021-04-25 17:49:55 +02:00
8e8a3c711d Can search for users 2021-04-25 17:43:51 +02:00
fae18f0abd Can respond to membership requests from members screen 2021-04-25 17:34:20 +02:00
56f92173f2 Can cancel invitation 2021-04-25 17:19:49 +02:00
38d3f4de8d Can start private conversation from directory pane 2021-04-25 17:15:27 +02:00
c04f85c40b Start to build Directory pane 2021-04-25 17:06:28 +02:00
ecd11fbf29 Adapt conversations color for #Forez 2021-04-25 16:35:50 +02:00
616755aa38 Customize unread conversation color 2021-04-25 16:24:42 +02:00
a07c7af715 Remove useless conversation icon in tablet mode 2021-04-25 16:20:23 +02:00
de7feb36ce Fix unread conversations dropdown 2021-04-25 16:12:36 +02:00
88217202f8 Can show group logo as group conversations logo 2021-04-25 16:03:40 +02:00
7db08f2653 Fix null issue 2021-04-24 10:57:10 +02:00
64c71450ff Attempt to fix issue 2021-04-24 10:47:13 +02:00
90996d6be7 Fix context issue 2021-04-24 10:35:12 +02:00
621efae92b Add posts route 2021-04-24 10:21:24 +02:00
44b6fb65bc Make presence tab work 2021-04-24 10:17:18 +02:00
c4790635df Load group information 2021-04-24 10:14:56 +02:00
4ed382a7c4 Fix appbar brightness 2021-04-24 10:06:36 +02:00
e3ccef537a Fix notifications bar refresh issue 2021-04-24 09:58:02 +02:00
229491cd79 Start to build Forez main route 2021-04-24 09:46:53 +02:00
1de7e699d7 Start to build Forez main route 2021-04-24 09:16:29 +02:00
e301b0e95b Update Forez tour 2021-04-24 08:59:56 +02:00
0edea3edd4 Can specify custom primary color 2021-04-24 08:57:20 +02:00
18d3ae6955 Add new panes to tour 2021-04-24 08:51:56 +02:00
1129726bbd Fix issues with white theme & Forez join group screen 2021-04-23 19:41:14 +02:00
e6c645f1e8 Fix issue 2021-04-23 19:35:34 +02:00
d178e8b1c3 Can request to join a Forez group 2021-04-23 19:32:34 +02:00
0cd6ed284b Start to build join group pane 2021-04-23 18:46:35 +02:00
1fa4ed59d4 Start to build specific Forez tour 2021-04-23 18:11:17 +02:00
e78afa290c Create Forez special notification icons 2021-04-23 14:13:28 +02:00
306271cfb5 Update notifications pane 2021-04-23 14:05:06 +02:00
522ef8e471 Fix refresh when changing account image 2021-04-23 13:48:33 +02:00
46f9c917b5 Start to update tour route 2021-04-23 13:43:24 +02:00
a022e8bfd1 Adapt welcome route 2021-04-23 12:28:50 +02:00
2292454830 Adapt initialize widget 2021-04-23 12:24:35 +02:00
d980239a68 Create #Forez flavor 2021-04-23 12:13:39 +02:00
00f044be72 Update about section 2021-04-22 15:58:11 +02:00
da876f5978 Can update presence settings 2021-04-22 15:54:30 +02:00
96fb14e7de Display Forez presence 2021-04-22 15:41:35 +02:00
1f0abe9c2b Ready to build presence section 2021-04-22 15:15:40 +02:00
6baf02e258 Improve push notifications screen 2021-04-18 14:14:21 +02:00
91139e25db Can launch tour from settings 2021-04-18 14:09:48 +02:00
532d2412e3 Fix overflow 2021-04-17 19:29:22 +02:00
eeefaf87f3 Fix issue 2021-04-17 19:23:06 +02:00
116e6ce66d Can configure push notifications from tour 2021-04-17 19:19:55 +02:00
899270961a Can change account image from tour 2021-04-17 18:33:08 +02:00
7c8a82566f Start to show tour 2021-04-17 18:05:33 +02:00
2533c23703 Fix tablet appearance of login screens 2021-04-17 11:46:57 +02:00
9c61252610 Go to login route 2021-04-17 11:27:52 +02:00
f6e45fcc76 Fix password reset route theme 2021-04-17 11:26:37 +02:00
bd78f7b198 Improve password forgotten route 2021-04-17 11:19:18 +02:00
1bf41bcc20 Improve login route 2021-04-17 11:16:21 +02:00
ab60593f12 Improve signup route 2021-04-17 10:59:06 +02:00
9555d35521 Fix issue 2021-04-17 10:11:31 +02:00
92ab82d7a1 Refactor code 2021-04-17 10:10:31 +02:00
7bfbc85d5f Fix issue 2021-04-17 09:55:27 +02:00
dafa9e157a Create login widget 2021-04-17 09:52:05 +02:00
d426bf1eb6 Fix overflow 2021-04-17 09:15:56 +02:00
7ec872d833 Improve name 2021-04-17 09:09:57 +02:00
95a38e9e8d Add links to privacy policy and terms of use of the terms 2021-04-17 09:09:03 +02:00
c2ce5ca05f Fix typo 2021-04-17 08:54:36 +02:00
dc23826f1a Fix bad translation 2021-04-17 08:53:54 +02:00
f5ad2129d4 Show user email address & location on tablet mode 2021-04-17 08:52:00 +02:00
bdbdc2c790 Display user location & email address on about tab 2021-04-17 08:47:05 +02:00
5fd74f9047 Fix appearance issue 2021-04-17 08:40:33 +02:00
4f72b59265 Can set location & email visibility 2021-04-17 08:30:00 +02:00
f995003306 Start push notifications service when starting the application 2021-04-16 11:07:22 +02:00
efe60a63de Start to work on v1.1.5 2021-04-16 11:02:07 +02:00
bf7e63fdd0 Move file to appropriate location 2021-04-16 10:36:23 +02:00
566a5037bb Add missing french translations 2021-04-16 08:51:54 +02:00
2c2475dc22 Do not re-configure local push notification if the same option is selected 2021-04-16 08:22:05 +02:00
bdcd0a2e64 Remove TODO 2021-04-16 08:17:50 +02:00
447cdac476 Apply new min & max name policy 2021-04-16 08:14:19 +02:00
ed5d48a0b9 Add Android translation 2021-04-15 19:43:33 +02:00
c96d4e9ff0 Set default FCM notifications icons 2021-04-15 19:40:29 +02:00
320c7b4a4c Fix bad check 2021-04-15 19:34:55 +02:00
f0f2f06ec2 Integrate Firebase 2021-04-15 13:34:49 +02:00
0c75575a70 Display notifications 2021-04-15 10:16:29 +02:00
2857440d0c Fix reconnection 2021-04-15 09:21:52 +02:00
d9662ed189 Create WebSocket connection 2021-04-15 09:15:11 +02:00
4652694eb9 Add WebSocket dependency 2021-04-14 18:34:03 +02:00
f05462e333 Set notifications icon 2021-04-14 18:17:29 +02:00
752cdb04a5 Background service works 2021-04-14 18:14:08 +02:00
bf53babf53 Create a service 2021-04-14 18:03:27 +02:00
0af31bc3a0 Remove useless intent 2021-04-13 19:46:39 +02:00
3520d5db58 Avoid potential Google Play Store ban 2021-04-13 19:45:18 +02:00
6e274fa21a Fix color scheme 2021-04-13 19:06:31 +02:00
cc760c5a24 Avoid app blocking 2021-04-13 19:01:26 +02:00
862401755d Add fix 2021-04-13 18:44:29 +02:00
e44a8add98 Can request to disable battery optimisation 2021-04-13 18:44:06 +02:00
1400bbbeb7 Ready to pre-configure independent notifications service 2021-04-13 17:56:55 +02:00
7e9a594bae Can reconfigure push notifications 2021-04-13 17:21:00 +02:00
db49b6fa6b Fix issue 2021-04-12 19:34:06 +02:00
612fc7b0d9 Start to integrate push notifications 2021-04-12 19:26:05 +02:00
38c639331f Reduce description length 2021-04-11 14:33:19 +02:00
150ecf7b52 Fix typo 2021-04-11 14:32:30 +02:00
15ba251440 Can update conversation settings from mobile application 2021-04-11 14:31:38 +02:00
f546cdb060 Fix typo 2021-04-08 17:56:03 +02:00
144417bc56 Start to work on v1.1.4 2021-04-08 17:55:47 +02:00
4e2c2317e0 Add missing french translations 2021-04-07 16:50:40 +02:00
b76220705f Automatically pick the right target for full-screen conversations 2021-04-07 16:37:15 +02:00
4db2120de9 Fix issue 2021-04-07 16:35:18 +02:00
662c4ab3eb Update navbar 2021-04-07 16:28:59 +02:00
7497fc5c65 Fix appearance issue 2021-04-07 16:16:33 +02:00
5bca30b634 Add call button 2021-04-06 18:47:38 +02:00
5be678615c Fix bug 2021-04-06 18:43:03 +02:00
661475dec7 Update conversation settings 2021-04-06 18:41:51 +02:00
1d0609f66e Open conversations in their context 2021-04-06 18:22:45 +02:00
66d8fbd234 Show group conversations in group page 2021-04-06 18:11:44 +02:00
0fb83079a6 Update conversations list screen 2021-04-06 18:04:16 +02:00
22f27a24de Can delete a group conversation 2021-04-06 17:46:05 +02:00
5773981750 Can change conversation visibility 2021-04-06 17:40:13 +02:00
054b2a1d32 Can create group conversations 2021-04-06 17:04:55 +02:00
07b42df06a Display group members to all users if it is public 2021-03-17 18:56:09 +01:00
6d1fc388d0 Can change group members visibility settings 2021-03-17 18:50:37 +01:00
bd548fe532 Improved post visibility picker dialog 2021-03-17 17:53:07 +01:00
a97ac81de2 Can follow friend 2021-03-17 17:46:50 +01:00
1ba7784324 Start to create about page 2021-03-17 17:40:25 +01:00
160a3e1f27 Add friend tab 2021-03-17 17:14:53 +01:00
20e486fe26 Start to refactor user page 2021-03-17 17:04:45 +01:00
afeb8c4a7d Improve group page 2021-03-17 16:58:10 +01:00
7dd91df471 Improve groups page appearance 2021-03-16 19:14:49 +01:00
cc73782da9 Fix overflow 2021-03-16 19:12:37 +01:00
ca948e4b28 Add about tab 2021-03-16 19:01:50 +01:00
ed109d8c26 Integrate members screen as a tab 2021-03-16 18:41:16 +01:00
a14a701f4d Simplify code 2021-03-16 18:36:17 +01:00
cc553e803d Start to create group page tabs 2021-03-16 18:27:02 +01:00
0920a36cef Fix name too long issue 2021-03-16 17:43:24 +01:00
e31c91a55c Fix theme color 2021-03-16 17:41:14 +01:00
bd794f8079 Do not use SQLite anymore for users 2021-03-14 18:15:38 +01:00
e474725965 Create specific client for Flutter Web 2021-03-14 17:50:45 +01:00
4a905174bf Start to add support for Flutter Web 2021-03-14 17:44:29 +01:00
1aa39ea64f Run flutter create to add web files 2021-03-14 17:35:29 +01:00
577b935e92 Fix conversation links color 2021-03-14 15:28:39 +01:00
63be2e3843 Fix cache issue 2021-03-14 15:27:54 +01:00
af15c1ccbd Fix text overflow 2021-03-14 15:25:29 +01:00
b48af1d638 Fix messages link color 2021-03-14 15:23:34 +01:00
e8c74a8685 Start to work on a new version of the application 2021-03-14 15:16:01 +01:00
06ab90de1e Fix typo 2021-03-13 19:08:23 +01:00
6e4207f517 Fix translation issue 2021-03-13 19:02:08 +01:00
bc0dcbdbb1 Use cleartext traffic in beta 2021-03-13 18:37:39 +01:00
a994d9978c Add missing translations 2021-03-13 18:31:28 +01:00
30b3dc6921 Fix bad translation settings 2021-03-13 18:28:56 +01:00
b1b7772532 Add new french translations 2021-03-13 18:23:12 +01:00
f8910c8f8b Force square account image 2021-03-13 18:11:28 +01:00
e70aaabbc9 Simplify image picking code 2021-03-13 18:03:20 +01:00
ea45bf828c Can crop image 2021-03-13 17:50:59 +01:00
2a00530126 Finish to fix deprecation warnings 2021-03-13 15:42:19 +01:00
ad2cf6d4f9 Continue to fix deprecation warnings 2021-03-13 15:38:43 +01:00
230cb2c018 Continue to fix deprecation warnings 2021-03-13 15:28:34 +01:00
819e2a7590 Start Flutter update 2021-03-13 15:14:54 +01:00
fb80f3bd52 Handle conversation deleted event 2021-03-13 13:52:18 +01:00
f9db9aa632 Remove misplaced try catch block 2021-03-13 13:32:38 +01:00
a630a5ae79 Handle user removed from conversation events 2021-03-13 12:16:57 +01:00
ed9f5e396c Delete conversation => leave conversation 2021-03-13 12:07:16 +01:00
4614f3ae2e Add call notice on conversations list 2021-03-13 12:02:24 +01:00
d10b1d0d22 Fix issue with large screens 2021-03-13 11:48:33 +01:00
99ae726c0a Can remove conversation logo 2021-03-13 11:42:58 +01:00
642f5e11fc Can change conversation image 2021-03-13 11:33:25 +01:00
cbbda7237b Fix invalid check 2021-03-13 11:09:54 +01:00
0b2f939376 Can update conversation settings 2021-03-13 11:08:08 +01:00
fdec22c28a Can update admin status of a user 2021-03-13 11:02:44 +01:00
bd73e265cc Can add members to conversation 2021-03-13 10:52:53 +01:00
5d0ead5889 Can remove members from conversation 2021-03-13 10:48:59 +01:00
ba60fa9e37 Can create conversations 2021-03-13 10:32:11 +01:00
f54cc22fc6 Can change conversation color 2021-03-13 10:09:17 +01:00
d8b2dd2599 Show who is writing messages 2021-03-13 09:29:54 +01:00
7ccc7a492e Fix icon color 2021-03-13 09:10:55 +01:00
1e0e2fca52 Send writing messages event 2021-03-13 09:09:26 +01:00
dbb2a3f1a1 Can cancel file sending 2021-03-13 09:00:00 +01:00
bd5ed8fb33 Change send messages color 2021-03-13 08:41:54 +01:00
3546bacc83 Fix issues on white mode 2021-03-13 08:40:37 +01:00
201200299c Improve messages appearance 2021-03-13 08:37:59 +01:00
c1196a6359 Show files thumbnails, if available 2021-03-13 08:33:55 +01:00
bedc3f5277 Add user account image 2021-03-13 08:26:56 +01:00
5a25769b71 Start to improve messages appearance 2021-03-13 08:17:54 +01:00
05c806b358 Fix colors 2021-03-12 23:09:40 +01:00
70eb088756 Remove useless code 2021-03-12 23:07:26 +01:00
b0cfeec513 Apply conversation color 2021-03-12 22:45:55 +01:00
e35a0d2fd4 Improve send message form 2021-03-12 22:40:33 +01:00
e638398b2e Work progress on conversation form 2021-03-12 22:18:32 +01:00
f3626f233f Remove intrusive permission 2021-03-12 21:39:24 +01:00
ece9164d93 Fix audio record 2021-03-12 21:19:40 +01:00
e7b1beca50 Start to record MP3 files 2021-03-12 20:52:26 +01:00
6fc1a263d2 Enforce thumbnail width for videos 2021-03-12 19:37:25 +01:00
b84eba59e3 Generate video thumbnails 2021-03-12 19:36:42 +01:00
8f7ca14586 Can take videos 2021-03-12 19:10:10 +01:00
19d4e1d31c Extend the possibilities of file picker 2021-03-12 18:54:15 +01:00
701d5d3c27 File update system 2021-03-12 17:47:09 +01:00
ec4ca238de Improve update message dialog 2021-03-12 16:37:21 +01:00
f70717a987 Hide useless menu options 2021-03-12 16:21:45 +01:00
e02ab259b6 Updated conversations policy 2021-03-12 16:19:07 +01:00
a4181e3d42 Remove un-used dependency 2021-03-11 20:35:22 +01:00
858f81d05e Add a video player 2021-03-11 20:31:06 +01:00
46affd4e68 Avoid too big dialog 2021-03-11 20:20:41 +01:00
3518594eea Integrate an audio player in the application 2021-03-11 20:15:49 +01:00
8f2574a555 Fix unread conversations drop down 2021-03-11 18:50:36 +01:00
3257fd865f Fix conversations appeareance in sidebar 2021-03-11 18:18:58 +01:00
f9502d1700 Apply conversation icon to more places 2021-03-11 18:11:24 +01:00
b9babd43a8 Display icons for all conversations 2021-03-11 18:00:06 +01:00
c8ca80f6e7 Added conversation message statistics 2021-03-11 17:27:20 +01:00
217111e3fd Can copy message to clipboard 2021-03-11 17:04:18 +01:00
8705aa1b0d Resize conversation images 2021-03-11 00:25:58 +01:00
0458d5431c Fix files background color 2021-03-11 00:23:11 +01:00
75a80b1018 Fix date appearance 2021-03-11 00:15:04 +01:00
52d217a89c Simplify conversation files appearance 2021-03-11 00:13:05 +01:00
1f1ed0cda4 Fix display issue 2021-03-11 00:06:29 +01:00
6c00e0bcab Show message files 2021-03-11 00:02:41 +01:00
2989e98c50 Add support for server conversation message 2021-03-10 19:08:18 +01:00
08c77340a0 Add support for conversation image 2021-03-10 18:12:56 +01:00
a23b76b552 Parse correctly conversation color 2021-03-10 18:04:29 +01:00
dacccf57b5 Start conversation upgrade 2021-03-10 17:54:41 +01:00
b094361f5a Fix bad translation 2021-02-20 12:39:22 +01:00
1ee9a2c5cc Update build script 2021-02-20 12:32:03 +01:00
25a25e4c70 Update makefile 2021-02-20 12:12:19 +01:00
d4a0748249 Add missing french translations 2021-02-20 10:12:01 +01:00
1ea286f3ef Add download link on deprecation dialog 2021-02-20 09:59:21 +01:00
a32e968992 Terms of use are not hard coded anymore 2021-02-20 09:35:03 +01:00
0cd9371460 Show deprecation warning 2021-02-20 09:24:51 +01:00
1b0a3fd24b Add new build configuration 2021-02-20 09:03:17 +01:00
54e37b3e69 Display current build version on startup screen 2021-02-20 08:58:03 +01:00
2519adeef4 Fix typo 2021-02-20 08:41:56 +01:00
4f9001cb2b Remove useless configuration load checks 2021-02-19 17:38:12 +01:00
613ceadfaa Load configuration at application startup 2021-02-19 17:32:38 +01:00
459757b292 Fix issues with WebSocket 2021-02-18 19:36:51 +01:00
e399f71a78 Fix issue when WebSocket is closed 2021-02-18 19:11:50 +01:00
c5d1512375 Apply password policy on all forms 2021-02-18 18:58:47 +01:00
16ec9a8e00 Rename route with a more logical name 2021-02-18 18:28:57 +01:00
c19cbaac88 Fix invalid call 2021-02-18 18:27:24 +01:00
277c08048d Implement password policy for account creation 2021-02-18 18:20:50 +01:00
482e938744 Fix bad layout 2021-02-16 19:36:14 +01:00
1d0bd45632 Finish data conservation policy screen 2021-02-16 19:35:52 +01:00
3a39387365 Start to integrate data conservation policy 2021-02-16 19:30:06 +01:00
4d885affb9 Add Makefile 2021-02-13 17:13:09 +01:00
0ad8d5c393 Fix bad sign out order 2021-02-13 16:07:23 +01:00
e5ed4fadda Upgrade login system 2021-02-13 16:03:07 +01:00
581059cb1d Deprecate old movie system 2021-02-13 11:27:13 +01:00
0c526abfe8 Start to work on next version 2021-02-13 08:45:29 +01:00
f3ccb4e89a Add missing translations 2021-02-12 22:49:29 +01:00
24765789df Improve account image settings 2021-02-12 22:45:17 +01:00
52cc8407d5 Fix bugs in application settings 2021-02-12 22:36:22 +01:00
523f9fd0e3 Add beta splash screen 2021-02-12 19:19:40 +01:00
9ce1a401d9 Add main splash screen 2021-02-12 19:17:08 +01:00
a07c6cd415 Change app icon 2021-02-12 19:01:24 +01:00
a3e5b1a70b Rationalize config 2021-02-12 18:20:28 +01:00
5e51fbe617 Attempt to fix call issue 2021-02-07 18:44:57 +01:00
7c82aa5edf Downgrade Gradle 2021-02-07 17:53:53 +01:00
0db7de01ee Make project compile again 2021-02-07 17:32:29 +01:00
ee6e28426c Start update 2021-02-07 17:09:08 +01:00
df915e1ca3 Update dependencies 2021-02-07 16:05:10 +01:00
e33cdf56a9 Update Flutter 2021-02-07 15:58:42 +01:00
bbcc3c9d02 Merge branch 'master' of http://192.168.1.10:3000/Pierre/FLUTTER-Comunic 2021-02-06 13:28:33 +01:00
6db9eade90 Update code 2021-02-06 13:26:35 +01:00
c759b54024 Update translations 2021-02-04 17:10:47 +01:00
138d70a6e1 Update 2021-02-04 16:55:41 +01:00
4e2974a2e2 Add new french translations 2021-02-04 16:48:22 +01:00
e7073292b5 Add new translations 2021-02-04 16:08:27 +01:00
06aa84e3a1 Update dependencies 2020-06-09 18:31:51 +02:00
ac2736dd23 Correction de petites erreurs 2020-05-28 07:26:23 +02:00
9c53572f94 Tristan : debut de la traduction en allemand 2020-05-28 07:25:25 +02:00
b337e632bd Can reload survey 2020-05-18 19:15:16 +02:00
e0d69ab504 Can create a new choice for the survey 2020-05-18 18:43:57 +02:00
5086f45cc1 Fix bad check 2020-05-18 18:24:04 +02:00
acc81acdea Can block the creation of new responses on a survey 2020-05-18 18:19:07 +02:00
b4465cc70c Allow to create new choices on survey on its creation 2020-05-18 17:58:54 +02:00
ef0ae2a586 Do not offer to open private conversation on user page 2020-05-17 15:02:29 +02:00
9697ba8149 Made left pane scrollable if required 2020-05-17 14:57:34 +02:00
d70c2751bb Add a padding to the page 2020-05-17 14:56:21 +02:00
cac23dd620 Display user website 2020-05-17 14:53:26 +02:00
3794eca68b Display user note 2020-05-17 14:26:52 +02:00
e3c11e48b2 Show user membership 2020-05-17 14:17:37 +02:00
cfc3552011 Show friends list as a dialog 2020-05-16 17:36:52 +02:00
f8ba06d0ae Avoid a user to appear in its own friends list 2020-05-16 17:31:16 +02:00
6528ef5bc2 Auto adapt the list of friends to show 2020-05-16 17:24:47 +02:00
bf2ba03912 Add more actions 2020-05-16 17:21:33 +02:00
e7181c1f59 Display virtual directory 2020-05-16 14:01:59 +02:00
9b0c1323b6 Start to show user information 2020-05-16 13:41:11 +02:00
61098ffc43 Start to create user page tablet mode 2020-05-16 11:04:58 +02:00
b364c7aece Prepare for tablet mode of user page 2020-05-16 10:20:27 +02:00
288cd492a2 Improve user access denied screen 2020-05-16 09:46:38 +02:00
736accaca4 Fix missing splash effect on memberships pane 2020-05-16 09:23:59 +02:00
922fce541f Put post create form into a card 2020-05-16 09:20:17 +02:00
bc3972082c Improve show more comments button 2020-05-16 09:17:49 +02:00
fbe22c5031 Create post container 2020-05-16 09:10:09 +02:00
7f1130aca8 Do not show too many comments at the same time 2020-05-15 13:34:53 +02:00
313e7a4b3c Fix issue 2020-05-13 18:38:57 +02:00
e231f26231 Handles correctly notifications 2020-05-13 18:36:20 +02:00
9a2efaae1c Can open groups page 2020-05-13 18:33:15 +02:00
67e881af0d Can toggle performances overlay 2020-05-13 18:26:21 +02:00
a6ce969e89 Can force to use mobile mode 2020-05-13 18:21:30 +02:00
d04b40f662 Add force mobile mode preference 2020-05-13 18:17:50 +02:00
21d844b2ba Add missing padding 2020-05-13 18:13:28 +02:00
4c11aa9753 Make settings route responsive 2020-05-13 18:12:45 +02:00
dfcc49eab4 Fix invalid translation 2020-05-13 17:50:09 +02:00
395b9aca6b Add access to settings from tablet app bar 2020-05-13 17:40:29 +02:00
70e3efc93d Can toggle dark mode from menu on tablet mode 2020-05-12 19:27:23 +02:00
fe3f0c0e85 Automatically apply new dark theme settings 2020-05-12 19:18:42 +02:00
6b8cc2569d Fix issue on first start 2020-05-12 19:08:08 +02:00
17f271dfb9 Change the way we determine whether current user is signed in or not 2020-05-12 19:04:53 +02:00
c747d3c1ba Create ApplicationPreferences object 2020-05-12 19:00:35 +02:00
57e504540a Refactor settings files 2020-05-12 18:42:33 +02:00
9e5e93da39 Remove old application settings route 2020-05-12 18:40:40 +02:00
f7bf69fbfd Deactivate old settings page 2020-05-12 18:40:07 +02:00
78ffc38534 Create application settings section 2020-05-12 17:50:05 +02:00
466803a1ac Add a comment 2020-05-11 18:57:37 +02:00
39f4e8c78c Can logout in tablet mode 2020-05-11 18:56:28 +02:00
4c749ec6ac Made search results work 2020-05-11 18:39:07 +02:00
620ad0d5cf Add [WillPopScope] on tablet mode 2020-05-11 18:32:58 +02:00
f3eda1c89d Can open conversation in full screen 2020-05-11 18:27:00 +02:00
a01ebe7d8a Hide back button in tablet mode 2020-05-11 18:21:09 +02:00
f4ced0324c Highlight active conversation 2020-05-11 18:12:49 +02:00
5c26626f92 Can go back to newest posts screen 2020-05-11 13:53:15 +02:00
e7f360c6fc Can easily open current user page 2020-05-11 13:51:57 +02:00
773cf17da0 Highlight active user / group in memberships panel 2020-05-11 13:50:13 +02:00
1bd2bdd1aa Fix pages navigation issue on mobile version 2020-05-11 13:40:48 +02:00
c65558ef6c Fix pages navigation issue 2020-05-11 13:38:51 +02:00
1309e7ad3a Make membership buttons live 2020-05-11 13:27:31 +02:00
096fd42f22 Start to display widgets 2020-05-11 13:24:01 +02:00
27a56ae533 Fix issue with posts list 2020-05-10 18:48:26 +02:00
e3130c9e4b Fix issue 2020-05-10 18:34:54 +02:00
260002270f Fix issue 2020-05-10 18:32:14 +02:00
a119f60fdb Simplify pages system 2020-05-10 18:29:43 +02:00
a53ae381dc Can toggle fullscreen on calls 2020-05-10 15:21:10 +02:00
6bdaf83563 Make close window button lives 2020-05-10 15:07:20 +02:00
476f08681b Use custom app bar for call windows 2020-05-10 15:00:26 +02:00
cf9f93dcb3 Improve code 2020-05-10 14:36:33 +02:00
1d7e846973 Improve buttons bar 2020-05-10 14:32:44 +02:00
ef186f79d2 Can move window 2020-05-10 14:09:44 +02:00
b40308c9e4 Start to show call window 2020-05-10 13:46:45 +02:00
63a8e61e80 Improve call membership tile 2020-05-09 20:19:16 +02:00
25222e9156 Manage to add call button in a visible way 2020-05-09 20:11:54 +02:00
642820127c Ready to implement call system 2020-05-09 19:45:07 +02:00
44f417a0f2 Improve video appearance 2020-05-09 16:06:24 +02:00
ce908d1b51 Reduce minimal messages size 2020-05-09 14:57:59 +02:00
4db9191fd8 Can open conversation from unread conversations dropdown 2020-05-09 14:56:33 +02:00
c262e40e81 Can create new conversations 2020-05-09 14:38:58 +02:00
27176531cf Can change conversation settings 2020-05-09 14:21:02 +02:00
b23aa782b8 Can call MainController from dialogs 2020-05-09 14:18:09 +02:00
4367dcc728 Use a key for main controller 2020-05-09 14:07:14 +02:00
6d95d5f7a2 Remove a useless widget 2020-05-09 13:50:18 +02:00
db52c495ec Fix theming issue 2020-05-09 12:47:00 +02:00
32aa73a951 Fix bad check 2020-05-09 12:41:15 +02:00
67c217715a Display the list of members of a conversation 2020-05-09 12:37:06 +02:00
f45bcd691e Fix button color 2020-05-09 12:31:38 +02:00
099f282cd6 Ready to start to show the list of members 2020-05-09 12:16:55 +02:00
032815b29f Visually notify user of new messages when conversation is collapsed 2020-05-09 10:39:37 +02:00
123eaad296 Add an icon to the conversations windows 2020-05-09 10:26:15 +02:00
b020895a8c Fix typo 2020-05-09 10:20:44 +02:00
2cea14a012 Can collpase conversation window 2020-05-09 10:20:06 +02:00
38f0257fa3 Remove a warning 2020-05-09 10:07:05 +02:00
150529a740 Identify conversation windows with keys 2020-05-09 09:59:05 +02:00
6cbe34379e Display conversation 2020-05-09 09:51:37 +02:00
782e6bc978 Use theme 2020-05-09 09:44:41 +02:00
e7e81da05d Fix conversation alignments 2020-05-09 09:32:10 +02:00
af8e558d9f Create window container 2020-05-09 09:30:46 +02:00
109ba3f04b Ready to build conversation windows 2020-05-09 08:17:52 +02:00
68b4c79960 Auto-hide conversations list when a conversation is selected 2020-05-09 07:28:17 +02:00
5ccd3d4884 Change the way menu appear in conversations list screen 2020-05-09 07:14:38 +02:00
6cb9fd97e2 Use small add button 2020-05-09 07:10:18 +02:00
fe17f81a40 Display the list of conversation to open one 2020-05-09 07:07:14 +02:00
b0fd0d7d51 Add button to open new conversations 2020-05-09 06:49:05 +02:00
13cd3186f5 Attempt to avoid autofocus 2020-05-08 21:07:51 +02:00
3835ec4fe1 Add padding on conversation dropdown 2020-05-08 21:05:56 +02:00
33eb0c5aed Made search live 2020-05-08 21:02:39 +02:00
af079cc4b0 Create search field 2020-05-08 16:06:10 +02:00
2311af8219 Improve dropdown position 2020-05-08 15:44:33 +02:00
a64a192d27 Update the number of unread conversations 2020-05-08 15:42:44 +02:00
5fb845732f Display the list of unread conversations 2020-05-08 15:40:13 +02:00
935d7dbb63 Improve groups page performances 2020-05-08 09:44:41 +02:00
ccb1547523 Disable BBCode parsing 2020-05-08 09:32:45 +02:00
f41983304a Improve user page performances 2020-05-08 09:23:02 +02:00
edff7868f2 Disable pre-rendering 2020-05-08 09:14:25 +02:00
c7f970ae70 Add scaffold on dropdown 2020-05-07 19:15:43 +02:00
97db56ae78 Improve notifications delete button 2020-05-07 19:13:22 +02:00
89d3b79617 Simplify code 2020-05-07 19:04:58 +02:00
8943ae8144 Hide popup menu button in Notifications list 2020-05-07 19:01:04 +02:00
de063bd797 Display the list of notifications in the dropdown 2020-05-07 18:16:33 +02:00
24e08d63f8 Expose AppBarCustomDropDownWidget state to programmatically close dropdown 2020-05-07 18:12:11 +02:00
1750d6079e Highlight active option in AppBar 2020-05-07 18:07:38 +02:00
0b1dfa460a Use constants 2020-05-07 13:50:57 +02:00
cd82fac803 Start to create custom appbar overlay 2020-05-07 13:49:40 +02:00
d8fa90fc6a Add active mode 2020-05-07 13:03:08 +02:00
fe163b3c69 Fix bad names 2020-05-06 18:54:32 +02:00
86575a1e86 Display the number of unread notifications 2020-05-06 18:52:35 +02:00
87e670a520 Add missing space 2020-05-06 18:26:56 +02:00
91be430dbb ComunicAppBar => ComunicMobileAppBar 2020-05-06 18:25:55 +02:00
f31323fe23 Automatically refresh the list of memberships 2020-05-06 18:16:57 +02:00
6961694fd2 Add calls notice 2020-05-06 18:05:02 +02:00
0103779608 Highlight unread conversations 2020-05-06 17:57:49 +02:00
5c4020d511 Fix theming issues 2020-05-06 17:53:27 +02:00
968321b12c Handles groups membership request in memberships panel 2020-05-06 17:48:02 +02:00
eabb27495c Remove a TODO 2020-05-06 13:39:14 +02:00
263849266f Can respond to friendship requests from memberships bar 2020-05-06 13:38:11 +02:00
c5c544fb34 Display the list of memberships 2020-05-05 19:33:04 +02:00
286639889b Load memberships 2020-05-05 18:49:50 +02:00
3d0bfe6c3f Add user panel 2020-05-05 18:18:09 +02:00
d3132942bc Start to draw tablet mode 2020-05-05 13:31:03 +02:00
28451eddbd Prepare Tablet mode integration 2020-05-05 13:21:37 +02:00
86c89e782c Fix issue on create account route 2020-05-04 20:11:36 +02:00
5c76f6e0a6 Fix login route theme 2020-05-04 19:28:16 +02:00
e3c9105b1c Improve login route 2020-05-04 19:05:21 +02:00
0c2f3a28d0 Fix light theme issue 2020-05-03 21:13:20 +02:00
47dbb90640 Fix light theme issue 2020-05-03 21:07:02 +02:00
e00f452b98 Move "About Comunic" dialog 2020-05-03 17:00:38 +02:00
11c25ea271 Can change password 2020-05-03 16:55:00 +02:00
44ea647624 Send answers back to the server 2020-05-03 16:21:36 +02:00
3ffb24f7c5 Improve security questions form 2020-05-03 15:48:10 +02:00
e78d526bbb Show security questions 2020-05-03 15:35:07 +02:00
91e7dd4019 Show first option 2020-05-03 14:33:26 +02:00
6e274cae11 Check email address 2020-05-03 14:22:06 +02:00
e1795bac03 Enable again BBcode parsing 2020-05-02 18:22:02 +02:00
d4a39a3527 Can create a group 2020-05-02 18:15:55 +02:00
a48e7f57a6 Hide useless fields 2020-05-02 17:36:14 +02:00
07adf8c2ca Fix rights issues 2020-05-02 17:30:55 +02:00
685565e031 Can change group membership levels 2020-05-02 17:26:03 +02:00
eb66ea407b Can remove a member from a group 2020-05-02 17:05:18 +02:00
2edaedc5f3 Can respond to a group membership request 2020-05-02 15:57:49 +02:00
3c7795837c Can invite a user to join a group 2020-05-02 15:38:02 +02:00
2ec8693e85 Move a file to a more logical location 2020-05-02 15:32:06 +02:00
804457c761 Create pick user dialog 2020-05-02 15:30:19 +02:00
1227ef283c Can cancel a group membership invitation 2020-05-02 13:59:40 +02:00
f179e7e1d5 Display members roles 2020-05-02 11:28:28 +02:00
e2bf5e73dd Display the list of members of a group 2020-05-02 11:18:03 +02:00
bff73dbb21 Ready to implement group members screen 2020-05-02 09:57:33 +02:00
df111e393a Can delete group 2020-05-02 09:45:03 +02:00
9646cb7a70 Can delete group logo 2020-05-02 09:15:02 +02:00
4cb672cb16 Can generate a random logo for the group 2020-05-02 09:05:38 +02:00
1a53a26f39 Can upload a new logo for the group 2020-05-02 08:51:34 +02:00
f450a46e99 Can change group posts creation level 2020-05-01 21:13:31 +02:00
d6f2df7002 Can change group registration level 2020-05-01 21:04:50 +02:00
dbf2ed868a Simplify code 2020-05-01 20:55:24 +02:00
2d86780f0b Can change group visibility 2020-05-01 20:52:24 +02:00
cc08ed0232 Can change group description 2020-05-01 20:30:26 +02:00
971210e7e8 Can change group URL 2020-05-01 20:19:22 +02:00
8f0f50d0e4 Fix empty fields 2020-05-01 20:15:28 +02:00
519c68b092 Can change group virtual directory 2020-05-01 20:10:25 +02:00
d889321b38 Can change group name 2020-05-01 15:39:54 +02:00
257523b526 Start to build group settings screen 2020-05-01 15:12:55 +02:00
0bb9be9a72 Fix issue when user decide to sign out 2020-05-01 11:00:30 +02:00
4c1e33a264 Do delete user account 2020-05-01 10:56:57 +02:00
e204c62ba9 Ready to implement account deletion 2020-05-01 10:52:53 +02:00
9b427b9683 Can disconnect current user from all his devices 2020-05-01 09:42:01 +02:00
02e60ad87c Pop routes when WebSocket connection is interrupted 2020-05-01 09:17:08 +02:00
20ea964337 Can change security settings 2020-05-01 09:02:15 +02:00
289bf30a40 Can change password 2020-04-30 18:19:01 +02:00
29cc8558c3 Can ask user his password 2020-04-30 13:32:22 +02:00
d64d2ece05 Ready to implement security settings 2020-04-29 17:28:47 +02:00
ae9491e198 Better handle errors 2020-04-29 17:24:33 +02:00
3cf9ee39d0 Can delete custom emoji 2020-04-29 17:22:34 +02:00
5d432a5f87 Fix typo 2020-04-29 17:03:30 +02:00
c0e2516f39 Avoid duplicate shortcut creation 2020-04-29 13:49:16 +02:00
25f72bd11c Fix issue 2020-04-29 13:44:09 +02:00
225df61aa0 Can upload new custom emojies 2020-04-29 13:42:01 +02:00
e6df696077 Display user emojies 2020-04-28 19:03:23 +02:00
032b247080 Get custom emojies from server 2020-04-28 18:47:47 +02:00
c42fe7f806 Can update virtual directory 2020-04-28 17:52:22 +02:00
75e15f9f83 Can update user public note 2020-04-27 19:21:30 +02:00
88ea7e2431 Fix issue 2020-04-27 19:08:19 +02:00
f32ee89924 Can change personal website URL 2020-04-27 19:05:36 +02:00
cd355f84cc Can update "public friend list" parameter 2020-04-27 19:01:30 +02:00
38c1474d2e Can update "allow posts from friends" setting 2020-04-27 18:58:18 +02:00
9e5decae61 Update comments on user page switch 2020-04-27 18:51:54 +02:00
cf0708cd3b Can update page visibility settings 2020-04-27 18:44:41 +02:00
991d7ec1ab Can update email settings 2020-04-27 13:37:43 +02:00
6ba89b6bd1 Can update user name 2020-04-27 13:34:25 +02:00
2109c71dd6 Better conditions 2020-04-27 13:29:11 +02:00
da38ce426f Fix typo 2020-04-27 13:27:59 +02:00
8f927e9f72 Start to update general settings 2020-04-27 13:27:37 +02:00
ca1f94531f Apply new "canEveryoneAddMembers" policy 2020-04-26 15:30:29 +02:00
24f5a3e482 Add new members at the top of the screen 2020-04-26 15:28:06 +02:00
c09670ad64 Update screen 2020-04-26 15:25:56 +02:00
ace7b44595 Add the "allowEveryoneToAddMembers" setting when creating the conversation 2020-04-26 14:29:22 +02:00
9a4b61aff3 Update the "allowEveryoneToAddMembers" settings 2020-04-26 14:20:44 +02:00
1b5169eb56 Add new conversation property 2020-04-26 14:02:57 +02:00
8bd937420e Fix overflow issue 2020-04-25 17:32:25 +02:00
e1f8ad1466 Do not render survey pie chart which have not response 2020-04-25 17:28:13 +02:00
cbc0de944e Fix typo 2020-04-25 17:17:11 +02:00
da48328c92 Can create YouTube posts 2020-04-25 17:16:33 +02:00
bb62a3a159 Create widget for fullscreen image 2020-04-25 15:36:07 +02:00
4b0b41a902 Create scaffold for full screen image 2020-04-25 14:49:49 +02:00
c65d87dacc Can show user account image in full screen 2020-04-25 14:45:43 +02:00
6b8e1f205b Forgot a coma 2020-04-25 14:40:35 +02:00
b2c4f33665 Add TOS link 2020-04-25 14:39:55 +02:00
622258802b Can create weblink posts 2020-04-25 14:38:15 +02:00
d79e132420 Simplify code 2020-04-25 12:02:37 +02:00
4e951c6a78 Can create surveys 2020-04-25 11:58:45 +02:00
8af4a61072 Fix issue 2020-04-25 10:10:52 +02:00
ee5f791638 Adapt form to small screens 2020-04-25 10:01:45 +02:00
9a991b221c Improve precision 2020-04-25 08:25:32 +02:00
ba07247ec4 Can create countdown timers 2020-04-25 08:23:52 +02:00
60c135bf01 Simplify check 2020-04-24 13:37:44 +02:00
3a9bb3d13e Can post PDFs 2020-04-24 13:35:05 +02:00
2cf017ad2d Rename plugins interfaces module 2020-04-24 12:21:09 +02:00
ae391ab691 Create new plugins interface 2020-04-24 12:19:13 +02:00
de84fb6113 Fix a racing issue 2020-04-23 18:15:24 +02:00
675d1b8588 Fix a issue on release builds 2020-04-23 17:59:11 +02:00
7768e36c62 Lock device awake during calls 2020-04-23 17:37:12 +02:00
0ebccf1075 Improve buttons appearance 2020-04-23 13:39:33 +02:00
d94b535001 Improve buttons bar 2020-04-23 13:36:30 +02:00
707577f9ac Add audio only calls support 2020-04-23 13:12:40 +02:00
a74600ce4b Can toggle menubars 2020-04-22 18:55:29 +02:00
d083728251 Can switch camera 2020-04-22 18:45:01 +02:00
565f351d1e Notify when we stop streaming 2020-04-22 18:35:19 +02:00
b9a329c8f0 Start streaming 2020-04-22 18:29:00 +02:00
a16618bb51 Fix state consistency issue 2020-04-21 18:23:34 +02:00
8609e4e169 Can interrupt local streaming 2020-04-21 18:20:24 +02:00
e5ccedd180 Can toggle local stream visibility 2020-04-21 18:14:10 +02:00
6a9e0e36c1 Create Footer button widget 2020-04-21 18:08:01 +02:00
de1dceae9b Simplify code 2020-04-21 18:04:01 +02:00
2927f72674 Can toggle local streams 2020-04-21 13:46:26 +02:00
2858c50449 Prevent potential race 2020-04-21 13:29:09 +02:00
4988c8fea8 Get user media 2020-04-21 13:26:58 +02:00
167217a5a0 Can receive remote video 2020-04-20 18:13:28 +02:00
7364fc49a8 Can send ice candidates to server 2020-04-20 17:53:31 +02:00
ee6509bb9a Close remote peer connections on exit 2020-04-20 17:47:51 +02:00
e05323c3bb Fix potential issue 2020-04-20 17:34:31 +02:00
096251eaad Can send SDP back to server 2020-04-20 17:29:36 +02:00
45d903bcf7 Create peer connection for remote streams 2020-04-20 17:24:42 +02:00
473402149a Handles new signal events 2020-04-20 16:23:33 +02:00
80f05cb008 Can request call offer 2020-04-20 15:50:01 +02:00
73c7fa8807 Add hang up button 2020-04-20 15:20:01 +02:00
c0856c5126 id => userID (improve clarity) 2020-04-20 15:02:49 +02:00
99ecc399ee Handles peer ready & peer destroyed streams events 2020-04-20 14:58:23 +02:00
0f99e807f8 Add confirmation to leave call 2020-04-20 14:41:09 +02:00
456df166b1 Handle call closed event 2020-04-20 14:32:57 +02:00
08d357fc72 Handles join / leave events 2020-04-20 14:24:35 +02:00
9154fe47e1 Display the list of members of the call 2020-04-20 14:13:03 +02:00
08c2ac32aa Get the list of members of the call 2020-04-20 14:02:32 +02:00
04693cc163 Get calls configuration 2020-04-20 13:43:17 +02:00
391d3150dd Can join & leave the call 2020-04-20 13:24:40 +02:00
da641515fa Display the name of the call 2020-04-20 13:19:49 +02:00
0a03f581d1 Ready to implement calls screen 2020-04-20 10:53:25 +02:00
f227209e9b Get call status from server 2020-04-20 10:37:59 +02:00
5eaf8d6b72 Open login page if login tokens are rejected by server 2020-04-20 09:02:54 +02:00
159e7228bf Close WebSocket when InitWidget state is disposed 2020-04-20 08:52:01 +02:00
40cf1b1ddc Close WebSocket on logout 2020-04-20 08:47:08 +02:00
cb47f0351e Add WebRTC dependency 2020-04-19 15:15:07 +02:00
909e68e7bb Handles remove message events 2020-04-19 14:29:01 +02:00
88ba2d303e Handles messages update events 2020-04-19 14:16:35 +02:00
2746623b8d Handles new messages events 2020-04-19 13:58:24 +02:00
b0be889833 Register to conversation updates 2020-04-19 13:42:47 +02:00
dab4e7bde1 Handles comment deletion events 2020-04-18 16:57:00 +02:00
6b08b62832 Register to comment udpate events 2020-04-18 16:46:55 +02:00
a60c1ed68c Handles new comments events 2020-04-18 16:35:53 +02:00
02034acbbe Register to post events 2020-04-18 16:07:56 +02:00
469e1e1f92 Use WebSocket to update likes 2020-04-18 15:24:57 +02:00
526f698bf4 Automatically change the number of unread conversations 2020-04-18 14:33:07 +02:00
a8c358fd58 Fix issue 2020-04-18 14:20:07 +02:00
0700014b3a Automatically refresh the list of notifications when required 2020-04-18 14:17:14 +02:00
1b13a90615 Use Websocket to update number of unread notifications 2020-04-18 14:14:54 +02:00
36f89a9a53 Listen to WebSocket close events 2020-04-18 13:48:21 +02:00
de3cd9c7b7 Connect to WebSocket 2020-04-17 16:04:47 +02:00
9021ca7168 Rename HomeRoute => MainRoute 2020-04-17 15:26:37 +02:00
7549a9ff22 Add initialization layer 2020-04-17 15:25:26 +02:00
6239c10579 Decode HTML characters 2020-04-17 14:19:38 +02:00
78e75cffdb Improve widget 2020-04-17 14:06:01 +02:00
2c1ae783e3 Can delete all the notifications 2020-04-17 13:50:47 +02:00
8b6e464644 Improve code 2020-04-17 13:29:00 +02:00
003eb1efc2 Diplay the number of unread notifications / conversations 2020-04-17 13:28:01 +02:00
90d58bbee3 Open notifications by default 2020-04-17 12:15:13 +02:00
025e5bdf1c Fix overflow issue 2020-04-17 12:06:37 +02:00
31dfec89ee Force refresh of current user account image when image settings panel is closed 2020-04-17 12:00:42 +02:00
9b53a3b0c9 Improve links color 2020-04-17 11:56:28 +02:00
03c4a4eae0 Automatically cleanup user information 2020-04-17 11:53:47 +02:00
d822e0edd8 Can always refresh group page 2020-04-17 10:42:37 +02:00
b326507417 Automatically reset post create form 2020-04-17 10:41:10 +02:00
414f81b32f Fix issue 2020-04-17 10:37:02 +02:00
bffdab1423 Improve search appearance 2020-04-17 10:32:22 +02:00
0494a9058d Create search page 2020-04-17 10:30:29 +02:00
ef9a2c7190 Can zoom full screen images 2020-04-17 08:53:46 +02:00
7e01947da9 Can generate a random account image 2020-04-17 08:44:57 +02:00
7bb805bffd Add no account image screen 2020-04-16 19:36:34 +02:00
ef9510e731 Can delete account image 2020-04-16 19:35:09 +02:00
6e0f6d1d79 Can change account image visibility level 2020-04-16 19:30:25 +02:00
8feea380a4 Can upload new account image 2020-04-16 19:16:44 +02:00
7071600c3f Ready to implement account settings 2020-04-16 16:33:44 +02:00
806c6fbc2b Add groups notifications support 2020-04-16 16:04:15 +02:00
90cbd7ab23 Fix issue with new API 2020-04-16 15:14:27 +02:00
0ec0f216e2 Use DisplayString for messages 2020-04-16 15:10:47 +02:00
32c491ae84 Remove Navigator references from conversations pages 2020-04-16 14:58:02 +02:00
3fa45f9744 Remove useless column 2020-04-16 14:27:55 +02:00
69f8710f31 Simplify user page 2020-04-16 14:20:24 +02:00
824be11013 Cache parsed emojies 2020-04-16 14:07:21 +02:00
6e96a554ff Little optimisation 2020-04-16 13:34:49 +02:00
3bbb09e813 Fix user access denied page 2020-04-16 13:26:04 +02:00
cecf18f5a0 Turn user page route into a screen 2020-04-16 13:13:31 +02:00
7014ded7f0 Optimize parsing 2020-04-16 12:18:39 +02:00
45d3f93192 Add references support 2020-04-16 12:06:57 +02:00
2bb75da017 Add references support 2020-04-16 12:06:01 +02:00
7de882338d Parse URLs 2020-04-16 10:53:09 +02:00
3389ca18f7 Parse emojies 2020-04-16 10:14:45 +02:00
b7be59bc6e Include BBcode parser 2020-04-16 09:53:19 +02:00
ec1732088a Add about dialog 2020-04-16 09:29:37 +02:00
302e5f22ce Can load older posts on user page 2020-04-16 09:17:10 +02:00
c7502e6a04 Can load older posts on group page 2020-04-16 09:07:23 +02:00
8881ef3af4 Fix appearance issues 2020-04-16 08:58:56 +02:00
f5914a8d34 Add group create post form 2020-04-16 08:52:26 +02:00
d6f0147339 Improve scrolling of Group Page 2020-04-16 08:43:41 +02:00
cf5b1180a9 Fix issue: when creating a comment on a list of posts where user never appeared before 2020-04-16 08:34:39 +02:00
f0a23bcb47 Display group posts 2020-04-16 08:24:34 +02:00
e777c4c991 Increase like icon size on posts 2020-04-15 19:26:51 +02:00
f8a70faf28 Add like button on group page 2020-04-15 19:23:08 +02:00
dde909457d Simplify use of like widget 2020-04-15 19:17:29 +02:00
2d26395d73 Use Like widget on Post element 2020-04-15 19:07:15 +02:00
5f70669a84 Create like widget 2020-04-15 18:58:45 +02:00
add1712b7d Can update following status of a group 2020-04-15 18:39:07 +02:00
566f205dc9 Start to build group page 2020-04-15 18:23:38 +02:00
bd33e1f9c2 Handles the case of closed registrations 2020-04-15 18:09:22 +02:00
b10163575f Start to build groups page 2020-04-15 18:06:20 +02:00
c7d8843f06 Can specify arguments for pages 2020-04-15 16:03:04 +02:00
b52748a93b Automatically refresh groups list 2020-04-15 14:34:48 +02:00
8d49a80e79 Can respond to group membership invitations 2020-04-15 14:31:45 +02:00
cd677deec0 Add an icon to the requested state 2020-04-15 14:07:50 +02:00
2c9dc5199c Can cancel membership request 2020-04-15 14:04:47 +02:00
eaeb07db69 Can cancel membership request 2020-04-15 13:56:59 +02:00
d0bafd5bd9 Can remove membership 2020-04-15 13:25:55 +02:00
4bedbc4b25 Start to display user groups 2020-04-15 12:04:19 +02:00
8300fc8ca9 Fix HTTPs issue 2020-04-15 11:13:39 +02:00
f16480092b Fix new API support 2020-03-30 22:44:08 +02:00
c0b64580f9 Switch server 2020-03-30 22:43:46 +02:00
b397fe33b7 Thanks to Tristan for French translations ! 2020-03-29 17:27:40 +02:00
8655d20234 Implement translations system 2020-03-28 17:11:11 +01:00
96a3c05497 Add new translation 2020-03-28 16:29:16 +01:00
bed6539d5d First translation 2020-03-28 16:27:37 +01:00
6e867041e8 Updated Dio 2020-03-24 15:01:34 +01:00
13394811bb First build attempt 2020-03-24 14:37:00 +01:00
a19579d4fd Target SDK 29 2020-03-24 13:17:51 +01:00
7e817106b1 Updated Flutter, Gradle & migrated to android x 2020-03-24 13:15:49 +01:00
1be499f242 Add support for PDFs 2019-11-16 09:24:20 +01:00
527927da82 Fix little issues with countdown timer. 2019-11-02 20:17:00 +01:00
bcf9a1586a Add support for countdown posts 2019-11-02 20:14:34 +01:00
c714d24dfa Fix issue on slow connections 2019-11-02 20:11:06 +01:00
a603d5bd3a Create account form is working 2019-11-02 18:54:30 +01:00
32a32224ca Can open Term Of Service from Create Account Page. 2019-11-02 18:16:16 +01:00
0162224b7f Start to work on create account form 2019-11-02 18:09:34 +01:00
458 changed files with 27025 additions and 4125 deletions

8
.gitignore vendored
View File

@ -1,3 +1,6 @@
# Comunic - Configurations private entrypoints
lib/*private*.dart
# Miscellaneous
*.class
*.log
@ -68,3 +71,8 @@
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
.flutter-plugins-dependencies
local.properties
.gradle

24
Makefile Normal file
View File

@ -0,0 +1,24 @@
beta_online_release:
flutter build apk --flavor beta -t lib/main_online.dart
beta_dev_release:
flutter build apk --flavor beta -t lib/main_dev.dart
beta_online_release_split_per_abi:
flutter build apk --flavor beta -t lib/main_online.dart --target-platform android-arm,android-arm64,android-x64 --split-per-abi
stable_release_split_per_abi:
flutter build apk --flavor stable -t lib/main_online.dart --target-platform android-arm,android-arm64,android-x64 --split-per-abi
stable_release:
flutter build apk --flavor stable -t lib/main_online.dart
forez_release:
flutter build apk --flavor forez -t lib/forez/main_forez_online.dart
forez_release_split_per_abi:
flutter build apk --flavor forez -t lib/forez/main_forez_online.dart --target-platform android-arm,android-arm64,android-x64 --split-per-abi
.PHONY: beta_offline_release beta_online_release_split_per_abi stable_release_split_per_abi stable_release beta_dev_release

View File

@ -19,10 +19,12 @@ No special configuration is required. Use the `lib/main_dev.dart` file as entryp
### Releases
To make release builds, the application needs to be signed. Create a file named `key.properties` in the android directory with the following content:
```
storePassword=store password
keyPassword=key password
keyAlias=key alias
storeFile=path to keystore file
storePassword=store password
keyAlias=key alias
keyPassword=key password
forezKeyAlias=key alias
forezKeyPassword=key password
```
Use the `lib/main_online.dart` as entry point to the application.

View File

@ -22,6 +22,7 @@ if (flutterVersionName == null) {
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
@ -33,20 +34,36 @@ if (keystorePropertiesFile.exists()) {
}
android {
compileSdkVersion 28
compileSdkVersion flutter.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
sourceSets {
main.java.srcDirs += 'src/main/java'
}
lintOptions {
disable 'InvalidPackage'
// TODO remove this fix to use Gradle plugin 4 ASAP
checkReleaseBuilds false
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "org.communiquons.comunic"
minSdkVersion 16
targetSdkVersion 28
minSdkVersion 23
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
@ -57,25 +74,41 @@ android {
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
forezRelease {
keyAlias keystoreProperties['forezKeyAlias']
keyPassword keystoreProperties['forezKeyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
flavorDimensions "version"
productFlavors {
stable {
signingConfig signingConfigs.release
}
beta {
signingConfig signingConfigs.release
applicationId "org.communiquons.beta"
}
forez {
signingConfig signingConfigs.forezRelease
applicationId "org.communiquons.forez"
}
}
packagingOptions {
exclude 'META-INF/proguard/androidx-annotations.pro'
}
}
@ -84,7 +117,11 @@ flutter {
}
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.neovisionaries:nv-websocket-client:2.14'
testImplementation 'junit:junit:4.13.1'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
apply plugin: 'com.google.gms.google-services'

3
android/app/proguard-rules.pro vendored Normal file
View File

@ -0,0 +1,3 @@
## Flutter WebRTC
-keep class com.cloudwebrtc.webrtc.** { *; }
-keep class org.webrtc.** { *; }

View File

@ -3,7 +3,9 @@
package="org.communiquons.comunic">
<application
tools:replace="android:label"
android:label="Comunic Beta" />
android:label="Comunic Beta"
android:usesCleartextTraffic="true"
tools:replace="android:label" />
</manifest>

View File

@ -0,0 +1,39 @@
{
"project_info": {
"project_number": "1007877315904",
"project_id": "comunic-ae92c",
"storage_bucket": "comunic-ae92c.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:1007877315904:android:d1db6417ef236d850aeea5",
"android_client_info": {
"package_name": "org.communiquons.beta"
}
},
"oauth_client": [
{
"client_id": "1007877315904-6l6lj4d93tf7btckjpjear0js45mvuj5.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAfhNbEhHkmVYPQK200rJGxH9hc7qHlcwU"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "1007877315904-6l6lj4d93tf7btckjpjear0js45mvuj5.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108"
android:tint="#FFFFFF">
<group android:scaleX="0.33269298"
android:scaleY="0.33269298"
android:translateX="35.369194"
android:translateY="20.2176">
<group android:translateY="158.50157">
<path android:pathData="M79,-42L107,-33.578125Q104.1875,-21.8125,98.15625,-13.921875Q92.140625,-6.03125,83.1875,-2.015625Q74.25,2,60.4375,2Q43.671875,2,33.046875,-2.890625Q22.421875,-7.796875,14.703125,-20.140625Q7,-32.484375,7,-51.75Q7,-77.421875,20.5625,-91.203125Q34.140625,-105,58.953125,-105Q78.375,-105,89.484375,-97.140625Q100.59375,-89.296875,106,-73.046875L78,-67Q76.53125,-71.546875,74.921875,-73.65625Q72.265625,-77.1875,68.421875,-79.09375Q64.578125,-81,59.828125,-81Q49.0625,-81,43.328125,-72.265625Q39,-65.796875,39,-51.921875Q39,-34.75,44.140625,-28.375Q49.296875,-22,58.625,-22Q67.65625,-22,72.28125,-27.125Q76.90625,-32.25,79,-42Z"
android:fillColor="#FFFFFF"/>
</group>
</group>
</vector>

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#3c3f40" />
</shape>
</item>
<!-- You can insert your own image assets here -->
<item>
<bitmap
android:gravity="center"
android:src="@drawable/splash_icon" />
</item>
</layer-list>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#3C3F41</color>
</resources>

View File

@ -4,4 +4,7 @@
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
<!-- Use clear connection in dev mode -->
<application android:usesCleartextTraffic="true" />
</manifest>

View File

@ -0,0 +1,11 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.communiquons.comunic">
<application
android:label="#Forez"
android:usesCleartextTraffic="true"
tools:replace="android:label" />
</manifest>

View File

@ -0,0 +1,40 @@
{
"project_info": {
"project_number": "500630888942",
"firebase_url": "https://forez-1b859.firebaseio.com",
"project_id": "forez-1b859",
"storage_bucket": "forez-1b859.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:500630888942:android:9764f377f1598befd02eff",
"android_client_info": {
"package_name": "org.communiquons.forez"
}
},
"oauth_client": [
{
"client_id": "500630888942-bnrmk599c8q7viijmbkjp3t5fc8806nf.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyDYhRp1wa6WuSENeq1Dl4b1k2BGZCnnqRo"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "500630888942-bnrmk599c8q7viijmbkjp3t5fc8806nf.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,42 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="#FFFFFF">
<group android:scaleX="0.18648648"
android:scaleY="0.18648648"
android:translateX="2.6756756"
android:translateY="2.6756756">
<path
android:pathData="M66.488,96.548c-0.304,-0.282 -30.184,-28.843 -17.21,-74.752l1.443,0.408c-12.718,45.003 16.494,72.971 16.79,73.248L66.488,96.548z"
android:fillColor="#000000"/>
<path
android:pathData="M51.307,79.136c0,0 -11.572,2.956 -15.542,-9.378C35.764,69.758 48.012,67.057 51.307,79.136z"
android:fillColor="#000000"/>
<path
android:pathData="M31.203,52.781c0,0 0.253,13.431 14.951,11.826C46.154,64.607 45.309,52.528 31.203,52.781z"
android:fillColor="#000000"/>
<path
android:pathData="M44.283,48.953c0,0 -11.604,1.791 -13.147,-15.157C31.137,33.795 45.233,33.141 44.283,48.953z"
android:fillColor="#000000"/>
<path
android:pathData="M44.329,31.538c0,0 -13.085,-5.743 -5.397,-22.045C38.932,9.493 50.318,17.18 44.329,31.538z"
android:fillColor="#000000"/>
<path
android:pathData="M49.574,20.516c0,0 -7.518,-12.628 5.152,-19.47C54.727,1.046 63.174,8.818 49.574,20.516z"
android:fillColor="#000000"/>
<path
android:pathData="M56.039,77.342c0,0 -2.521,-12.166 11.542,-15.354C67.581,61.987 70.963,74.527 56.039,77.342z"
android:fillColor="#000000"/>
<path
android:pathData="M51.685,62.538c0,0 -0.928,-12.587 12.671,-16.64C64.355,45.898 65.199,62.875 51.685,62.538z"
android:fillColor="#000000"/>
<path
android:pathData="M49.913,47.841c0,0 -0.338,-14.528 13.853,-15.119C63.766,32.722 59.036,49.361 49.913,47.841z"
android:fillColor="#000000"/>
<path
android:pathData="M51.263,31.382c0,0 -0.421,-11.331 12.503,-13.443C63.766,17.939 63.595,30.551 51.263,31.382z"
android:fillColor="#000000"/>
</group>
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,42 @@
<!-- Source : https://thenounproject.com/term/wheat/13673/ -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<group android:scaleX="0.5076"
android:scaleY="0.5076"
android:translateX="28.62"
android:translateY="28.62">
<path
android:pathData="M66.488 96.548c-0.304 -0.282 -30.184 -28.843 -17.21 -74.752l1.443 0.408c-12.718 45.003 16.494 72.971 16.79 73.248L66.488 96.548z"
android:fillColor="#FFFFFF" />
<path
android:pathData="M51.307 79.136c0 0 -11.572 2.956 -15.542 -9.378C35.764 69.758 48.012 67.057 51.307 79.136z"
android:fillColor="#FFFFFF" />
<path
android:pathData="M31.203 52.781c0 0 0.253 13.431 14.951 11.826C46.154 64.607 45.309 52.528 31.203 52.781z"
android:fillColor="#FFFFFF" />
<path
android:pathData="M44.283 48.953c0 0 -11.604 1.791 -13.147 -15.157C31.137 33.795 45.233 33.141 44.283 48.953z"
android:fillColor="#FFFFFF" />
<path
android:pathData="M44.329 31.538c0 0 -13.085 -5.743 -5.397 -22.045C38.932 9.493 50.318 17.18 44.329 31.538z"
android:fillColor="#FFFFFF" />
<path
android:pathData="M49.574 20.516c0 0 -7.518 -12.628 5.152 -19.47C54.727 1.046 63.174 8.818 49.574 20.516z"
android:fillColor="#FFFFFF" />
<path
android:pathData="M56.039 77.342c0 0 -2.521 -12.166 11.542 -15.354C67.581 61.987 70.963 74.527 56.039 77.342z"
android:fillColor="#FFFFFF" />
<path
android:pathData="M51.685 62.538c0 0 -0.928 -12.587 12.671 -16.64C64.355 45.898 65.199 62.875 51.685 62.538z"
android:fillColor="#FFFFFF" />
<path
android:pathData="M49.913 47.841c0 0 -0.338 -14.528 13.853 -15.119C63.766 32.722 59.036 49.361 49.913 47.841z"
android:fillColor="#FFFFFF" />
<path
android:pathData="M51.263 31.382c0 0 -0.421 -11.331 12.503 -13.443C63.766 17.939 63.595 30.551 51.263 31.382z"
android:fillColor="#FFFFFF" />
</group>
</vector>

View File

@ -0,0 +1,37 @@
<!-- Source : https://thenounproject.com/term/wheat/13673/ -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportWidth="100"
android:viewportHeight="100"
android:width="100dp"
android:height="100dp">
<path
android:pathData="M66.488 96.548c-0.304 -0.282 -30.184 -28.843 -17.21 -74.752l1.443 0.408c-12.718 45.003 16.494 72.971 16.79 73.248L66.488 96.548z"
android:fillColor="#000000" />
<path
android:pathData="M51.307 79.136c0 0 -11.572 2.956 -15.542 -9.378C35.764 69.758 48.012 67.057 51.307 79.136z"
android:fillColor="#000000" />
<path
android:pathData="M31.203 52.781c0 0 0.253 13.431 14.951 11.826C46.154 64.607 45.309 52.528 31.203 52.781z"
android:fillColor="#000000" />
<path
android:pathData="M44.283 48.953c0 0 -11.604 1.791 -13.147 -15.157C31.137 33.795 45.233 33.141 44.283 48.953z"
android:fillColor="#000000" />
<path
android:pathData="M44.329 31.538c0 0 -13.085 -5.743 -5.397 -22.045C38.932 9.493 50.318 17.18 44.329 31.538z"
android:fillColor="#000000" />
<path
android:pathData="M49.574 20.516c0 0 -7.518 -12.628 5.152 -19.47C54.727 1.046 63.174 8.818 49.574 20.516z"
android:fillColor="#000000" />
<path
android:pathData="M56.039 77.342c0 0 -2.521 -12.166 11.542 -15.354C67.581 61.987 70.963 74.527 56.039 77.342z"
android:fillColor="#000000" />
<path
android:pathData="M51.685 62.538c0 0 -0.928 -12.587 12.671 -16.64C64.355 45.898 65.199 62.875 51.685 62.538z"
android:fillColor="#000000" />
<path
android:pathData="M49.913 47.841c0 0 -0.338 -14.528 13.853 -15.119C63.766 32.722 59.036 49.361 49.913 47.841z"
android:fillColor="#000000" />
<path
android:pathData="M51.263 31.382c0 0 -0.421 -11.331 12.503 -13.443C63.766 17.939 63.595 30.551 51.263 31.382z"
android:fillColor="#000000" />
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#1b5e20" />
</shape>
</item>
<!-- You can insert your own image assets here -->
<item>
<bitmap
android:gravity="center"
android:src="@drawable/ic_wheat_white" />
</item>
</layer-list>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#1B5E20</color>
</resources>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">@android:color/white</item>
</style>
</resources>

View File

@ -5,35 +5,94 @@
<!-- Internet connection is required to access to the API -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- These permissions are required to make video calls (WebRTC) -->
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<!-- This is required for independent push notifications service to work
(when FCM service can not be used) -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<!-- This is required on Android 11+ for image picker -->
<queries>
<intent>
<action android:name="android.media.action.IMAGE_CAPTURE" />
</intent>
<intent>
<action android:name="android.media.action.VIDEO_CAPTURE" />
</intent>
</queries>
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:label="Comunic"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@drawable/ic_app_rounded"
android:label="Comunic"
android:roundIcon="@mipmap/ic_launcher_round"
tools:ignore="GoogleAppIndexingWarning">
<meta-data
android:name="flutterEmbedding"
android:value="2" />
<!-- Default Firebase push notifications icons -->
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_notifications" />
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:windowSoftInputMode="adjustResize"
android:exported="true">
<!-- This keeps the window background of the activity showing
until Flutter renders its first frame. It can be removed if
there is no splash screen (such as the default splash screen
defined in @style/LaunchTheme). -->
<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true" />
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme" />
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- This let the image cropper work -->
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
<!-- Independent push notifications service -->
<service android:name=".independentnotifications.NotificationsService" />
<!-- Boot receiver to start independent push notifications service -->
<receiver android:name=".BootReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<!-- Cold boot -->
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
</application>
</manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,24 @@
package org.communiquons.comunic;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import org.communiquons.comunic.independentnotifications.NotificationsService;
public class BootReceiver extends BroadcastReceiver {
private static final String TAG = BootReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
if (intent == null || !intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
Log.e(TAG, "Invalid call to intent!");
return;
}
Log.v(TAG, "Boot received, starting independent push notifications service if required...");
NotificationsService.startService(context);
}
}

View File

@ -1,13 +1,33 @@
package org.communiquons.comunic;
import android.os.Bundle;
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;
import androidx.annotation.NonNull;
import org.communiquons.comunic.independentnotifications.NotificationsChannel;
import org.communiquons.comunic.independentnotifications.NotificationsService;
import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugin.common.MethodChannel;
public class MainActivity extends FlutterActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
}
private static final String INDEPENDENT_NOTIFICATIONS_CHANNEL = "org.communiquons.comunic/independent-push-notifications-service";
@Override
protected void onStart() {
super.onStart();
NotificationsService.startService(this);
}
@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
super.configureFlutterEngine(flutterEngine);
new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), INDEPENDENT_NOTIFICATIONS_CHANNEL)
.setMethodCallHandler(new NotificationsChannel(this));
}
}

View File

@ -0,0 +1,92 @@
package org.communiquons.comunic.independentnotifications;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.PowerManager;
import android.provider.Settings;
import androidx.annotation.NonNull;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
public class NotificationsChannel implements MethodChannel.MethodCallHandler {
private final Context context;
public NotificationsChannel(Activity context) {
this.context = context.getApplicationContext();
}
@Override
public void onMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result result) {
try {
switch (call.method) {
case "needPreConfiguration":
result.success(needPreConfiguration());
break;
case "preConfigure":
preConfigure(result);
break;
case "configure":
configure((String) call.arguments, result);
break;
case "disable":
disable(result);
break;
default:
result.notImplemented();
break;
}
} catch (Exception e) {
e.printStackTrace();
result.error("Failed to execute native code!", e.getMessage(), null);
}
}
private boolean needPreConfiguration() {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
return !context.getSystemService(PowerManager.class).isIgnoringBatteryOptimizations(context.getPackageName());
}
return false;
}
/**
* Pre-configure independent notifications service
*/
private void preConfigure(@NonNull MethodChannel.Result result) {
if (needPreConfiguration() && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
// See https://stackoverflow.com/a/41853011
Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
result.success(null);
}
/**
* Configure Independent Push Notifications service
*
* @param wsURL The URL this service will have to connect to
*/
private void configure(@NonNull String wsURL, @NonNull MethodChannel.Result result) {
NotificationsService.configure(wsURL, context);
result.success(null);
}
/**
* Disable push notifications service
*/
private void disable(@NonNull MethodChannel.Result result) {
NotificationsService.disable(context);
result.success(null);
}
}

View File

@ -0,0 +1,295 @@
package org.communiquons.comunic.independentnotifications;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.ContextCompat;
import com.neovisionaries.ws.client.WebSocket;
import com.neovisionaries.ws.client.WebSocketAdapter;
import com.neovisionaries.ws.client.WebSocketException;
import com.neovisionaries.ws.client.WebSocketFactory;
import com.neovisionaries.ws.client.WebSocketFrame;
import org.communiquons.comunic.MainActivity;
import org.communiquons.comunic.R;
import org.json.JSONObject;
import java.util.List;
import java.util.Map;
public class NotificationsService extends Service implements Runnable {
private static final String TAG = NotificationsService.class.getSimpleName();
public static final String SVC_CHANNEL_ID = "IndependentPushServiceChannel";
public static final String NOTIFS_CHANNEL_ID = "NotificationsPushServiceChannel";
private static final String INDEPENDENT_PUSH_NOTIFICATIONS_SERVICE = "independent-push-notifications-service";
private static final String WS_URL_PREF_KEY = "ws_url";
private static final int NOTIFS_ID = 10;
private static final int CONNECT_TIMEOUT = 1000;
private static final int RECONNECT_INTERVAL = 60000;
private static final int PING_INTERVAL = 15000;
private Thread thread;
private boolean stop = false;
private final Object lock = new Object();
public static void configure(@NonNull String wsURL, @NonNull Context context) {
SharedPreferences prefs = context.getSharedPreferences(INDEPENDENT_PUSH_NOTIFICATIONS_SERVICE, MODE_PRIVATE);
if (prefs.getString(WS_URL_PREF_KEY, "").equals(wsURL))
return;
stopService(context);
prefs.edit().putString(WS_URL_PREF_KEY, wsURL).apply();
startService(context);
}
public static void disable(@NonNull Context context) {
SharedPreferences prefs = context.getSharedPreferences(INDEPENDENT_PUSH_NOTIFICATIONS_SERVICE, MODE_PRIVATE);
prefs.edit().remove(WS_URL_PREF_KEY).apply();
stopService(context);
}
public static void stopService(@NonNull Context context) {
Intent serviceIntent = new Intent(context, NotificationsService.class);
context.stopService(serviceIntent);
}
public static void startService(@NonNull Context context) {
SharedPreferences prefs = context.getSharedPreferences(INDEPENDENT_PUSH_NOTIFICATIONS_SERVICE, MODE_PRIVATE);
if (!prefs.contains(WS_URL_PREF_KEY)) {
Log.v(TAG, "Independent push notifications service not configured ! Skipping!");
return;
}
Log.v(TAG, "Start independent push notifications service...");
Intent intent = new Intent(context, NotificationsService.class);
ContextCompat.startForegroundService(context, intent);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (thread != null) {
System.out.println("The service has already been started. Skipping initialization...");
return START_STICKY;
}
createServiceNotificationChannel();
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this,
0,
notificationIntent,
android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M ? PendingIntent.FLAG_IMMUTABLE : 0);
Notification notification = new NotificationCompat.Builder(this, SVC_CHANNEL_ID)
.setContentTitle("Comunic")
.setContentText(getText(R.string.independent_push_notification_notification_text))
.setSmallIcon(R.drawable.ic_notifications)
.setContentIntent(pendingIntent)
.build();
startForeground(1, notification);
initService();
return START_STICKY;
}
private void createServiceNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel serviceChannel = new NotificationChannel(
SVC_CHANNEL_ID,
"Foreground Service Channel",
NotificationManager.IMPORTANCE_LOW
);
NotificationManager manager = getSystemService(NotificationManager.class);
manager.createNotificationChannel(serviceChannel);
}
}
private void createPushNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel serviceChannel = new NotificationChannel(
NOTIFS_CHANNEL_ID,
"Independent Push Service Channel",
NotificationManager.IMPORTANCE_DEFAULT
);
NotificationManager manager = getSystemService(NotificationManager.class);
manager.createNotificationChannel(serviceChannel);
}
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
Log.v(TAG, "Destroying service");
super.onDestroy();
if (thread != null) {
thread.interrupt();
stop = true;
}
}
private void initService() {
thread = new Thread(this);
thread.start();
}
@Override
public void run() {
try {
while (!stop) {
try {
connect();
} catch (InterruptedException e) {
Log.e(TAG, "Thread interrupted!");
return;
} catch (Exception e) {
Log.e(TAG, "Failed to connect to push notifications service!");
e.printStackTrace();
}
Log.v(TAG, "Wait a little before reconnecting...");
// Wait attempting new connection
// noinspection BusyWait
Thread.sleep(RECONNECT_INTERVAL);
}
} catch (InterruptedException e) {
e.printStackTrace();
Log.e(TAG, "Stop thread");
}
}
private void connect() throws Exception {
String url = getSharedPreferences(INDEPENDENT_PUSH_NOTIFICATIONS_SERVICE, MODE_PRIVATE)
.getString(WS_URL_PREF_KEY, null);
Log.v(TAG, "Connect to " + url);
WebSocket ws = new WebSocketFactory().createSocket(url, CONNECT_TIMEOUT);
ws.setPingInterval(PING_INTERVAL);
ws.addListener(new WebSocketAdapter() {
@Override
public void onConnected(WebSocket websocket, Map<String, List<String>> headers) {
Log.v(TAG, "Connected to independent push notifications service!");
}
@Override
public void onDisconnected(WebSocket websocket, WebSocketFrame serverCloseFrame, WebSocketFrame clientCloseFrame, boolean closedByServer) {
Log.v(TAG, "Disconnected from independent push notifications websocket!");
synchronized (lock) {
lock.notify();
}
}
@Override
public void onTextFrame(WebSocket websocket, WebSocketFrame frame) {
handleTextFrame(frame);
}
@Override
public void onError(WebSocket websocket, WebSocketException cause) {
Log.e(TAG, "An error occured, closing WebSocket!");
cause.printStackTrace();
websocket.disconnect();
}
});
ws.connect();
// wait for connection to complete
synchronized (lock) {
lock.wait();
}
}
private void handleTextFrame(WebSocketFrame frame) {
if (!frame.isTextFrame())
return;
Log.v(TAG, "Notification: " + frame.getPayloadText());
JSONObject jsonObject;
try {
jsonObject = new JSONObject(frame.getPayloadText());
if (jsonObject.has("drop_id"))
dropNotification(jsonObject.getString("drop_id"));
else if (jsonObject.has("id"))
sendNotification(new PushNotification(jsonObject));
} catch (Exception e) {
e.printStackTrace();
}
}
private void dropNotification(String id) {
new Handler(Looper.getMainLooper()).post(() -> {
NotificationManagerCompat notifManager = NotificationManagerCompat.from(NotificationsService.this);
notifManager.cancel(id, NOTIFS_ID);
});
}
private void sendNotification(PushNotification n) {
new Handler(Looper.getMainLooper()).post(() -> postNotification(n));
}
private void postNotification(PushNotification n) {
createPushNotificationChannel();
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(
this,
0,
intent,
android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M ? PendingIntent.FLAG_IMMUTABLE : 0
);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, NOTIFS_CHANNEL_ID)
.setSmallIcon(R.drawable.ic_notifications)
.setContentTitle(n.getTitle())
.setContentText(n.getBody())
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setContentIntent(pendingIntent)
.setAutoCancel(true);
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this);
notificationManagerCompat.notify(n.getId(), NOTIFS_ID, builder.build());
}
}

View File

@ -0,0 +1,46 @@
package org.communiquons.comunic.independentnotifications;
import org.json.JSONException;
import org.json.JSONObject;
public class PushNotification {
private final String id;
private final int timeCreate;
private final int timeout;
private final String title;
private final String body;
private final String image;
public PushNotification(JSONObject input) throws JSONException {
id = input.getString("id");
timeCreate = input.getInt("time_create");
timeout = input.optInt("timeout");
title = input.optString("title");
body = input.optString("body");
image = input.optString("image");
}
public String getId() {
return id;
}
public int getTimeCreate() {
return timeCreate;
}
public int getTimeout() {
return timeout;
}
public String getTitle() {
return title;
}
public String getBody() {
return body;
}
public String getImage() {
return image;
}
}

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="#FFFFFF">
<group android:scaleX="0.13083024"
android:scaleY="0.13083024"
android:translateX="5.8509784"
android:translateY="0.96">
<group android:translateY="133.60825">
<path android:pathData="M73.765625,-33.171875L87.265625,-33.171875Q85.71875,-18.53125,76.328125,-8.765625Q66.9375,1,48.578125,1Q30.78125,1,19.890625,-11.859375Q9,-24.734375,9,-46.046875L9,-57.109375Q9,-78.78125,20,-91.890625Q31.015625,-105,49.875,-105Q67.125,-105,76.421875,-95.390625Q85.734375,-85.78125,87.265625,-70.59375L73.765625,-70.59375Q72.21875,-81.40625,66.859375,-87.703125Q61.515625,-94,49.640625,-94Q36.0625,-94,29.03125,-83.90625Q22,-73.8125,22,-57.296875L22,-46.84375Q22,-31.546875,28.390625,-20.765625Q34.796875,-10,48.4375,-10Q61.375,-10,66.6875,-16.109375Q72,-22.234375,73.765625,-33.171875Z"
android:fillColor="#000000"/>
</group>
</group>
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108"
android:tint="#FFFFFF">
<group android:scaleX="0.33269298"
android:scaleY="0.33269298"
android:translateX="35.369194"
android:translateY="20.2176">
<group android:translateY="158.50157">
<path android:pathData="M79,-42L107,-33.578125Q104.1875,-21.8125,98.15625,-13.921875Q92.140625,-6.03125,83.1875,-2.015625Q74.25,2,60.4375,2Q43.671875,2,33.046875,-2.890625Q22.421875,-7.796875,14.703125,-20.140625Q7,-32.484375,7,-51.75Q7,-77.421875,20.5625,-91.203125Q34.140625,-105,58.953125,-105Q78.375,-105,89.484375,-97.140625Q100.59375,-89.296875,106,-73.046875L78,-67Q76.53125,-71.546875,74.921875,-73.65625Q72.265625,-77.1875,68.421875,-79.09375Q64.578125,-81,59.828125,-81Q49.0625,-81,43.328125,-72.265625Q39,-65.796875,39,-51.921875Q39,-34.75,44.140625,-28.375Q49.296875,-22,58.625,-22Q67.65625,-22,72.28125,-27.125Q76.90625,-32.25,79,-42Z"
android:fillColor="#FFFFFF"/>
</group>
</group>
</vector>

View File

@ -1,12 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<item>
<shape android:shape="rectangle">
<solid android:color="#1C227E" />
</shape>
</item>
<!-- You can insert your own image assets here -->
<!-- <item>
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
android:src="@drawable/splash_icon" />
</item>
</layer-list>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="independent_push_notification_notification_text">Le service de notifications est en cours d\'exécution</string>
</resources>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#1BA1E2</color>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="independent_push_notification_notification_text">Push notifications service is running</string>
</resources>

View File

@ -5,4 +5,9 @@
Flutter draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">@android:color/white</item>
</style>
</resources>

View File

@ -0,0 +1,68 @@
{
"project_info": {
"project_number": "1007877315904",
"project_id": "comunic-ae92c",
"storage_bucket": "comunic-ae92c.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:1007877315904:android:d1db6417ef236d850aeea5",
"android_client_info": {
"package_name": "org.communiquons.beta"
}
},
"oauth_client": [
{
"client_id": "1007877315904-6l6lj4d93tf7btckjpjear0js45mvuj5.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAfhNbEhHkmVYPQK200rJGxH9hc7qHlcwU"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "1007877315904-6l6lj4d93tf7btckjpjear0js45mvuj5.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:1007877315904:android:c30eb760a5ffca750aeea5",
"android_client_info": {
"package_name": "org.communiquons.comunic"
}
},
"oauth_client": [
{
"client_id": "1007877315904-6l6lj4d93tf7btckjpjear0js45mvuj5.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAfhNbEhHkmVYPQK200rJGxH9hc7qHlcwU"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "1007877315904-6l6lj4d93tf7btckjpjear0js45mvuj5.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}

View File

@ -1,18 +1,23 @@
buildscript {
ext.kotlin_version = '1.5.30'
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.android.tools.build:gradle:4.1.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// Firebase
classpath 'com.google.gms:google-services:4.3.10'
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
@ -26,4 +31,4 @@ subprojects {
task clean(type: Delete) {
delete rootProject.buildDir
}
}

View File

@ -1 +1,4 @@
org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true

View File

@ -1,6 +1,6 @@
#Fri Jun 23 08:50:38 CEST 2017
#Tue Mar 24 12:27:30 CET 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip

View File

@ -0,0 +1 @@
include ':app'

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
assets/icon/forez_icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

3
assets/langs.json Normal file
View File

@ -0,0 +1,3 @@
{
"fr_FR": "fr"
}

85
assets/langs/de.json Normal file
View File

@ -0,0 +1,85 @@
{
"%days%d": "%days% T",
"%hours% h": "%hours% h",
"%mins% min": "%mins% Min",
"%months% months": "%months% Monate",
"%num% likes": "%num% Personen gefällt das",
"%num% members": "%num% Mitglieder",
"%secs%s": "%sec% s",
"%years% years": "%years% Jahre",
"1 Like": "1 Person gefällt das",
"1 member": "1 Mitglied",
"1 month": "1 Monat",
"1 year": "1 Jahr",
"A network error occured!": "Ein Netzfelher ist augetreten!",
"Accept": "Annehmen",
"Account created": "Account geschafft",
"An account is already associated to this email address!": "Diese E-Mail-Adresse wird schon mit einem Konto verbindet!",
"An error occured while creating your account. Please try again.": "Während der Schaffung des Kontos ist ein Felher aufgetreten. Versuchen Sie bitte noch einmal.",
"App settings": "Anwendungseinstellungen",
"Cancel": "Abbrechen",
"Confirm": "Bestätigen",
"Confirm operation": "Den Einstatz bestätigen",
"Confirm your password": "Das Passwort bestätigen",
"Could not get conversation information!": "Die Nachrichten des Gesprächs haben nicht wiedererlangt werden gekannt!",
"Create a conversation": "Ein Gespräch schaffen",
"Create an account": "Ein Konto schaffen",
"Delete": "Löschen",
"Delete friend": "Einen Freund löschen",
"Do you really want to sign out from the application ?": "Wollen Sie tatsächlich ",
"Email address": "E-Mail-Adresse",
"Enable dark theme": "Das dunkle Thema anwenden",
"Error": "Fehler",
"Error while creating your account": "Während der Schaffung ihres Kontos ist ein Felher aufgetreten.",
"First name": "Vorname",
"Follow": "Folgen",
"Follow conversation": "Das Gespräch folgen",
"Following": "Gefolgt",
"Friends": "Freunden",
"Friends of %name%": "Freunden von %name%",
"Friends only": "Nur für die Freunde",
"Group members only": "Nur für die Mitglieder",
"I have read and accepted the Terms Of Service.": "Ich habe die Nutzungsbedingungen gelesen und angenommen.",
"Invalid credentials!": "Ungültigen Anmeldedaten!",
"Invalid email address!": "Ungültiger E-Mail-Adresse!",
"Invalid first name!": "Ungültige Vorname!",
"Invalid last name!": "Ungültiger Nachname!",
"Invalid password!": "Ungültiges Passwort!",
"Last name": "Nachname",
"Like": "Gefällt mir",
"Loading": "Laden ausstehend",
"Login": "Einloggen",
"Me only": "Nur für mich",
"Menu": "Menü",
"New message": "Neue Meldung",
"Newest": "Neuest",
"OK": "OK",
"Ok": "Ok",
"Online": "Angeschlossen",
"PDF": "PDF",
"Password": "Passwort",
"Please sign into your Comunic account: ": "Einloggen Sie Sie bitte in ihrem Comunic-Konto",
"Post": "Beitrag",
"Public": "Publik",
"Reject": "Absagen",
"Remove": "Löschen",
"Retry": "Versuchen noch einmal",
"Send": "Senden",
"Send a message": "Eine Meldung senden",
"Sign in": "Sich einloggen",
"Sign out": "Log-out",
"The password and its confirmation do not match!": "Das Passwort und seine Bestätigung vergleichen nicht!",
"This account is private.": "Dieses Konto ist privat.",
"Too many accounts have been created from this IP address for now. Please try again later.": "Zu viele Konten sind bisher mit dieser IP-Adresse geshafft worden. Versuchen Sie bitte später noch einmal.",
"Too many unsuccessfull login attempts! Please try again later...": "Zu vielen erfolglose Anmeldeversuche! Versuchen Sie bitte später noch einmal...",
"Try again": "Noch einmal versuchen",
"Update message": "Die Meldung ändern",
"You must accept the Terms Of Service to continue.": "Sie müssen die Nutzungsbedingungen lesen, um weiterzugehen.",
"You will need to restart the application to apply changes": "Sie müssen die Anwendung neu starten, um die Veränderungen anzusetzen",
"Your account has been successfully created. You can now login to start to use it.": "Ihr Konto ist erfolgreich geschafft worden. Sie können Sie jetzt anmelden und es verwalten.",
"cancel": "abbrechen",
"created a new post": "hat einen Beitrag geschafft",
"delete": "bestätigen",
"https://www.youtube.com/watch/?v=": "https://www.youtube.com/watch/?v=",
"posted a comment": "hat einen Kommentar gepostet"
}

694
assets/langs/fr.json Normal file
View File

@ -0,0 +1,694 @@
{
"#Forez now integrates the conversation system of Comunic, so you have access both to public and private conversations!": "#Forez intègre maintenant le système de conversations de Comunic, donc vous pouvez créer et participer aussi bien à des conversations privées que publiques !",
"%1% : %2%": "%1% : %2%",
"%1% added %2% to the conversation": "%1% a ajouté %2% à la conversation",
"%1% and %2% are writing...": "%1% et %2% sont en train d'écrire...",
"%1% created the conversation": "%1% a créé la conversation",
"%1% is writing...": "%1% est en train d'écrire...",
"%1% left the conversation": "%1% a quitté la conversation",
"%1% members": "%1% membres",
"%1% removed %2% from the conversation": "%1% a retiré %2% de la conversation",
"%app% can send push notifications to your device.": "%app% peut envoyer des notifications à votre appareil.",
"%days% Days %hours% Hours %minutes% Minutes %seconds% Seconds": "\"%days% Jours %hours% Heures %minutes% Minutes %seconds% Secondes\"",
"%days%d": "%days% j",
"%hours% h": "%hours% h",
"%mins% min": "%mins% min",
"%months% months": "%months% mois",
"%num% like": "%num% J'aime",
"%num% likes": "%num% personnes aiment",
"%num% members": "%num% membres",
"%secs%s": "%secs% s",
"%years% years": "%years% ans",
"'%1%' copied to clipboard!": "'%1%' copié dans le presse papier !",
"'%c%' was copied to clipboard": "'%c%' a été copié dans le presse-papier",
"1 Like": "1 personne aime",
"1 member": "1 membre",
"1 month": "1 mois",
"1 year": "1 an",
"10 years": "10 ans",
"15 days": "15 jours",
"2 years": "2 ans",
"3 months": "3 mois",
"5 years": "5 ans",
"50 years": "50 ans",
"6 months": "6 mois",
"7 days": "7 jours",
":yourShortcut:": ":votreRaccourcis:",
"A moderator has to approve requests": "Un modérateur doit approuver les requêtes",
"A network error occured!": "Une erreur de réseau s'est produite !",
"A network error occurred!": "Erreur lors de la connexion au serveur !",
"A registration is required to access this group page.": "Une inscription est nécessaire pour accéder à cette page de groupe !",
"ALL": "TOUS",
"About": "A propos",
"About this application": "A propos de cette application",
"Absent": "Absent",
"Accept": "Accepter",
"Accept request": "Accepter la demande",
"Access restrictions": "Restrictions d'accès",
"Accessible to everyone, including non-Comunic users": "Accessible par tout le monde, y compris les personnes extérieures à Comunic",
"Account created": "Compte créé",
"Account image": "Image de compte",
"Account image allow to quickly recognize people.\\n\\nYou can decide to define one now!": "Les images de compte permettent de reconnaître facilement les personnes.\\n\\nVous pouvez définir la vôtre dès maintenant !",
"Account image visibility": "Visibilité de l'image de compte",
"Account image visiblity": "Visibilité de votre image de compte",
"Account images allow to quickly recognize people.": "Les images de comptes permettent de reconnaître rapidement les membres du réseau",
"Account visibility": "Visibilité du compte",
"Add": "Ajouter",
"Add image": "Ajouter une image",
"Add member": "Ajouter un membre",
"Add new emoji": "Ajouter un nouvel émoticon",
"Admin": "Admin",
"Administrator": "Administrateur",
"Administrators only": "Uniquement les administrateurs",
"All members": "Tous les membres",
"All the members of the group can access the conversation": "Tous les membres du groupe peuvent accéder à la conversation",
"All the members of the group can create posts on the group": "Tous les membres du groupe peuvent créer des posts",
"Allow all members of the conversation to add users": "Autoriser tous les membres de la conversation d'ajouter des utilisateurs",
"Allow comments on your page": "Autoriser les commentaires sur votre page",
"Allow comunic to send emails": "Autoriser Comunic à envoyer des mails",
"Allow conversations notification": "Autoriser les notifications de conversations",
"Allow posts from your friends on your page": "Autoriser les posts de vos amis sur votre page",
"Allow users to create new choices": "Autoriser les utilisateurs à créer de nouveaux choix",
"An account is already associated to this email address!": "Un compte est déjà associer à cette addresse e-mail !",
"An error occured while creating your account. Please try again.": "Une erreur s'est produite lors de la création du compte. Veuillez ré-essayer.",
"An error occurred while checking your options !": "Erreur lors de la récupération de vos options de récupération !",
"An error occurred while checking your recovery options !": "Erreur lors de la récupération de vos options de récupération !",
"An error occurred while creating your account. Please try again.": "Erreur lors de la création de votre compte. Veuillez réessayer",
"Answer %num%": "Réponse %num%",
"Answer 1": "Réponse 1",
"Answer 2": "Réponse 2",
"Answer your security questions": "Répondre à vos questions de sécurité",
"Anyone can join the group without approval": "Tout les utilisateurs peuvent rejoindre le groupe sans approbation",
"App settings": "Paramètres de l'application",
"Appearance": "Apparence",
"Application settings": "Paramètres de l'application",
"Are you sure do you want to remove this friend from your list of friends ? A friendship request will have to be sent to get this user back to your list!": "Voulez-vous vraiment supprimer cet ami de votre liste d'amis ? Il faudra une demande d'ami pour réintégrer cet utilisateur à votre liste !",
"Audio Player": "Lecteur audio",
"Audio record": "Enregistrement audio",
"Automatically delete unread notifications after": "Supprimer automatiquement les notifications non lues après",
"Automatically delete your account if you have been inactive for": "Supprimer votre compte si vous avez été déconnecté pendant",
"Automatically delete your comments after": "Supprimer automatiquement vos commentaires après",
"Automatically delete your conversation messages after": "Supprimer automatiqumenet vos messages de conversations après",
"Automatically delete your likes after": "Supprimer automatiquement vos \"J'aime\" après",
"Automatically delete your posts after": "Supprimer automatiquement vos posts après",
"Battery optimization settings will appear. To make push notifications service work better, please disable battery optimization for Comunic...": "Les paramètres d'optimisation de la batterie vont apparaître. Afin de permettre au système de notifications de mieux fonctionner, veuillez désactiver l'optimisation de la batterie pour Comunic...",
"Before we continue, you must be aware that #Forez is now based on Comunic, so you are using Comunic in fact...": "Avant de continuer, vous devez savoir que #Forez est maintenant basé sur Comunic, donc vous utilisez indirectement Comunic de fait...",
"Block the creation of new responses": "Bloquer la création de nouvelles réponses",
"Browse files": "Parcourir les fichiers",
"Camera": "Caméra",
"Can access to all group posts": "Peut accéder à tous les posts du groupe",
"Can always create posts, invite users and respond to membership request": "Peut toujours envoyer des posts, inviter des utilisateurs et répondre aux demande d'inscription au groupe",
"Can change members privileges and group settings": "Peut changer les privilèges des utilisateurs et les paramètres du groupe",
"Cancel": "Annuler",
"Cancel request": "Annuler la demande",
"Cancel response to survey": "Annuler la réponse au sondage",
"Change account image visibility": "Changer la visibilité de l'image de compte",
"Change level": "Changer le niveau",
"Change logo": "Changer",
"Change password": "Changer le mot de passe",
"Change your password": "Changer de mot de passe",
"Change your security questions": "Changer les questions de sécurité",
"Checking availability...": "Vérification de la disponibilité...",
"Choose a new password": "Choisir un nouveau mot de passe",
"Choose a user": "Choisir un utilisateur",
"Choose a video": "Choisir une vidéo",
"Choose a virtual directory": "Choisir un répertoire virtuel",
"Choose an image": "Choisir une image",
"Choose the notifications you receive on your phone": "Configurer les notifications que vous recevrez sur votre appareil",
"Close": "Fermer",
"Closed registration": "Inscription fermée",
"Comunic": "Comunic",
"Comunic can now send you notifications to your device when the application is closed if you want.": "Comunic peut maintenant vous envoyer des notifications même lorsque l'application est fermée si vous le souhaitez.",
"Comunic is a free and OpenSource social network that respect your privacy.": "Comunic est un réseau social libre qui respecte votre vie privée.",
"Comunic users": "Les utilisateurs de Comunic",
"Configure": "Configurer",
"Configure Comunic to use our own self-hosted notifications service. This option is much more privacy-friendly, but it will drain your battery.": "Utilisez notre service auto-hébergé de notifications. Cette option permet de mieux préserver votre vie privée, mais consomme plus d'énergie.",
"Configure the main settings of your account": "Configurer les paramètres principaux de votre compte",
"Confirm": "Confirmer",
"Confirm deletion": "Confirmer la suppression",
"Confirm operation": "Confirmer l'opération",
"Confirm you new password": "Confirmer le mot de passe",
"Confirm your password": "Confirmer le mot de passe",
"Congratulations! Your password has now been successfully changed!": "Félicitations ! Votre mot de passe a bien été changé !",
"Connected users": "Utilisateurs connectés",
"Contact us": "Contactez-nous",
"Conversation color (optional)": "Couleur de conversation (optionnel)",
"Conversation logo": "Logo de la conversation",
"Conversation members": "Membres de la conversation",
"Conversation name (optional)": "Nom de la conversation (optionnel)",
"Conversation name (optionnal)": "Nom de la conversation (optionnel)",
"Conversation visibility": "Visibilité de la conversation",
"Conversations": "Conversations",
"Copy URL": "Copier l'URL",
"Copy message": "Copier le message",
"Could not block the creation of new choices!": "Erreur lors du bloquage de la création de nouveaux choix !",
"Could not cancel invitation!": "Erreur lors de l'annulation de l'invitation !",
"Could not cancel your membership request!": "Erreur lors de l'annulation de votre demande à rejoindre ce groupe !",
"Could not cancel your response to the survey !": "Impossible d'annuler votre réponse au sondage !",
"Could not change group membership level!": "Erreur lors du changement du niveau d'inscription au groupe !",
"Could not change your password!": "Erreur lors du changement de votre mot de passe !",
"Could not connect to a remote peer!": "Erreur lors de la connexion à un membre de l'appel !",
"Could not connect to server!": "Echec de la connexion au serveur",
"Could not create a new choice for this survey!": "Erreur lors de la création d'un nouveau choix pour ce sondage !",
"Could not create a new group!": "Erreur lors de la création du groupe !",
"Could not create comment!": "Impossible de créer le commentaire ! ",
"Could not create post !": "Impossible de créer le post !",
"Could not create the conversation!": "Impossible de créer la conversation !",
"Could not delete all your notifications!": "Erreur lors de la suppression de vos notifications !",
"Could not delete conversation message!": "Impossible de supprimer le message de la conversation !",
"Could not delete custom emoji!": "Erreur lors de la suppression de l'émoticon personnalisé !",
"Could not delete group logo!": "Erreur lors de la suppression du logo du groupe !",
"Could not delete the comment!": "Impossible de supprimer le commentaire !",
"Could not delete the conversation!": "Impossible de supprimer la conversation !",
"Could not delete the group": "Erreur lors de la suppression du groupe !",
"Could not delete the post!": "Impossible de supprimer le post !",
"Could not delete this person from your friends list!": "Impossible de supprimer cet utilisateur de votre liste d'amis !",
"Could not delete user account image!": "Erreur lors de la suppression de votre image de compte !",
"Could not delete your account!": "Erreur lors de la suppression de votre compte !",
"Could not disconnect you from all your devices!": "Erreur lors de la déconnexion de tous vos appareils !",
"Could not find a private conversation!": "Impossible de trouver une conversation privée !",
"Could not find related resource!": "La ressource liée n'a pas été trouvée !",
"Could not generate new random logo!": "Erreur lors de la génération d'un logo aléatoire !",
"Could not get account image settings!": "Erreur lors de la récupération des paramètres de l'image de compte !",
"Could not get basic group information!": "Erreur lors de la récupération des informations de base du groupe !",
"Could not get conversation information!": "Impossible de récupérer les informations de la conversation !",
"Could not get group settings!": "Erreur lors de la récupération des paramètres du groupe !",
"Could not get the list of friends of %name% !": "Impossible de récupérer la liste d'amis de %name% !",
"Could not get the list of friends of this user !": "Erreur lors de la récupération de la liste d'amis de cet utilisateur !",
"Could not get the list of notifications!": "Impossible de récupérer la liste des notifications !",
"Could not get the list of posts !": "Impossible de récupérer la liste des posts !",
"Could not get user information!": "Impossible de récupérer les informations de l'utilisateur !",
"Could not initialize call!": "Erreur lors de l'initialisation de l'appel !",
"Could not invite a user!": "Erreur lors de l'envoi de l'invitation pour l'utilisateur !",
"Could not leave the conversation!": "Erreur lors du retrait de la conversation !",
"Could not load conversation information!": "Erreur lors de la récupération des informations sur la conversation !",
"Could not load friendship information!": "Erreur lors de la récupération des informations sur cet ami !",
"Could not load general settings!": "Erreur lors du chargement des paramètres généraux !",
"Could not load information about the conversation": "Impossible de récupérer les informations sur la conversation",
"Could not load information about the group!": "Erreur lors du chargement des informations du groupe !",
"Could not load settings!": "Erreur lors du chargement des paramètres",
"Could not load the list of groups!": "Erreur lors du chargement de la liste des groupes !",
"Could not load the list of members of this conversation!": "Erreur lors de la récupération des membres de cette conversation !",
"Could not load the list of members of this group!": "Erreur lors de la récupération de la liste des membres de ce groupe !",
"Could not load the list of messages!": "Impossible de charger la liste des messages !",
"Could not load the list of unread conversations!": "Erreur lors de la récupération de la liste des conversations non lues !",
"Could not load your list of friends!": "Impossible de charger votre liste d'amis !",
"Could not load your security questions!": "Erreur lors de la récupération de vos questions de sécurité !",
"Could not peform search!": "Erreur lors de l'exécution de la recherche !",
"Could not perform search!": "Erreur lors de l'exécution de la recherche !",
"Could not pick a PDF!": "Erreur lors du choix d'un PDF",
"Could not refresh user information!": "Erreur lors de la récupération des informations de l'utilisateur !",
"Could not remove this membership!": "Erreur lors de la suppression de l'inscription !",
"Could not remove your membership to this group!": "Erreur lors de la suppresison de votre inscription à ce groupe !",
"Could not respond to friendship request!": "Impossible de répondre à la demande d'ami !",
"Could not respond to membership request!": "Erreur lors de la réponse à la demande d'inscription !",
"Could not respond to your invitation!": "Erreur lors de la réponse à l'invitation !",
"Could not retrieve created comment!": "Impossible d'afficher le commentaire !",
"Could not retrieve the list of conversations!": "Impossible d'afficher la liste des conversations !",
"Could not search virtual directory!": "Erreur lors de la recherche du répertoire virtuel !",
"Could not send message!": "Impossible d'envoyer le message !",
"Could not send your membership request!": "Erreur lors de l'envoi de votre demande d'inscription !",
"Could not send your response to the survey!": "Impossible d'envoyer votre réponse au sondage !",
"Could not start streaming!": "Erreur lors du démarrage du flux !",
"Could not update account image visibility level!": "Erreur lors de la mise à jour de la visibilité de votre image de compte !",
"Could not update comment content!": "Impossible de modifier le contenu du mcommentaire !",
"Could not update following status!": "Impossible de modifier le statut de suivi !",
"Could not update general settings!": "Erreur lors de la mise à jour des paramètres généraux !",
"Could not update group membership!": "Erreur lors de la mise à jour de l'inscription !",
"Could not update group settings!": "Erreur lors de la mise à jour des paramètres du groupe !",
"Could not update message content!": "Impossible de modifier le contenu du message !",
"Could not update password!": "Erreur lors de la mise à jour de votre mot de passe !",
"Could not update post content!": "Impossible de modifier le contenu du post !",
"Could not update post visibility!": "Impossible de modifier la visibilité du post !",
"Could not update security questions!": "Erreur lors de la mise à jour des questions de sécurité !",
"Could not update the conversation!": "Impossible de modifier la conversation !",
"Could not update your membership!": "Impossible de modifier votre adhésion !",
"Could not upload emoji!": "Erreur lors de l'upload de l'émoticon !",
"Could not upload new logo!": "Erreur lors de l'envoi du nouveau logo !",
"Could not upload your account image!": "Erreur lors de l'envoi de votre image de compte !",
"Could not upload your generated account image!": "Erreur lors de l'envoi de votre nouvelle image de compte !",
"Could not validate these security answers!": "Erreur lors de la validation de ces réponses de sécurité !",
"Could not validate your password reset token! Maybe it has expired now...": "Impossible de vérifier votre clé de changement de mot de passe ! Peut-être a-t-elle expiré...",
"Create a conversation": "Créer une conversation",
"Create a new choice": "Créer un nouveau choix",
"Create a new conversation": "Créer une nouvelle conversation",
"Create a new post...": "Créer un nouveau post...",
"Create account": "Créer un compte",
"Create an account": "Créer un compte",
"Create the conversation": "Créer la conversation",
"Created on": "Créé le",
"Creator": "Créateur",
"Crop Photo": "Rogner la photo",
"Current account image": "Image de compte actuelle",
"Current choices:": "Choix actuels :",
"Current level: %level%": "Niveau actuel : %level%",
"Current logo": "Logo actuel",
"Custom emojis": "Emoticons personnalisés",
"Customize your account image": "Personalisez votre image de compte",
"Danger zone": "Zone de danger",
"Data conservation policy": "Politique de conservation des données",
"Debug features": "Fonctionnalités de développement",
"Delete": "Supprimer",
"Delete account image": "Supprimer l'image de compte",
"Delete comment": "Supprimer le commentaire",
"Delete conversation": "Supprimer la conversation",
"Delete friend": "Supprimer un ami",
"Delete group": "Supprimer le groupe",
"Delete logo": "Supprimer le logo",
"Delete your account": "Supprimer votre compte",
"Deprecated application version": "Version obsolète de l'application",
"Description": "Description",
"Did not get permission to access microphone!": "Permission d'accéder au microphone refusée !",
"Directory": "Annuaire",
"Disable notifications service. You will always be able to change it from application settings.": "Désactiver le service de notifications push. Vous pourrez toujours changer d'avis depuis les paramètres de l'application.",
"Disabled": "Désactivé",
"Disconnect all your devices": "Déconnecter tous vos appareils",
"Disconnect all your devices from Comunic, including the current one. Use this option if one of the device you use for Comunic was stolen.": "Déconnecte tous vos appareils de Comunic, en incluant l'appareil actuel. Nous vous recommandons d'utiliser cette option si vous avez des raisons de penser que l'un des appareils que vous utiliser pour accéder à Comunic a été volé.",
"Do it now!": "Le faire maintenant !",
"Do not send notification": "Ne pas envoyer de notifications",
"Do you really want to block new choices creation?": "Voulez-vous vraiment bloquer la création de nouveaux choix ?",
"Do you really want to block new responses ?": "Voulez-vous vraiment bloquer la création de nouveaux choix ?",
"Do you really want to cancel the invitation sent to %u%?": "Voulez-vous vraiment annuler l'invitation envoyée à %u% ?",
"Do you really want to cancel your response to this survey ?": "Voulez-vous vraiment annuler votre réponse au sondage ?",
"Do you really want to delete all your notifications?": "Voulez-vous vraiment supprimer toute vos notifications ?",
"Do you really want to delete the logo of this group ?": "Voulez-vous vraiment supprimer le logo de ce groupe ?",
"Do you really want to delete this comment ?": "Voulez-vous vraiment supprimer ce commentaire ?",
"Do you really want to delete this conversation?": "Voulez-vous vraiment supprimer cette conversation ?",
"Do you really want to delete this custom emoji ?": "Voulez-vous vraiment supprimer cet émoticon personnalisé ?",
"Do you really want to delete this group ? All the posts related to it will be permanently deleted!": "Voulez-vous vraiment supprimer ce groupe ? Tous les posts s'y rapportant seront également supprimés !",
"Do you really want to delete this group membership ?": "Voulez-vous vraiment quitter ce groupe ?",
"Do you really want to delete this logo?": "Voulez-vous vraiment supprimer ce logo ?",
"Do you really want to delete this message ? The operation can not be cancelled !": "Voulez-vous vraiment supprimer ce message ? Cette opération est irréversible !",
"Do you really want to delete this post ? The operation can not be reverted !": "Voulez-vous vraiment supprimer ce post ? Cette opération est irréversible !",
"Do you really want to delete your account image ?": "Voulez-vous vraiment supprimer votre image de compte ?",
"Do you really want to delete your account? This operation CAN NOT be reverted!": "Voulez-vous vraiment supprimer votre compte ? Cette opération NE PEUT PAS être annulée !",
"Do you really want to disconnect all your devices from Comunic ?": "Voulez-vous vraiment déconnecter tous vos appareils de Comunic ?",
"Do you really want to leave this call ?": "Voulez-vous vraiment quitter cet appel ?",
"Do you really want to leave this conversation ?": "Voulez-vous vraiment quitter cette conversation ?",
"Do you really want to leave this conversation ? As you are its last admin, it will be completely deleted!": "Voulez-vous vraiment quitter cette conversation ? Comme vous êtes son dernier administrateur, celle-ci sera complètement supprimée !",
"Do you really want to reject the request of %u% to join the Forez group?": "Voulez-vous vraiment rejeter la requête faite par %u% de rejoindre le groupe ?",
"Do you really want to reject this friendship request?": "Voulez-vous vraiment rejeter cette demande d'amis ?",
"Do you really want to reject this invitation?": "Voulez-vous vraiment refuser cette invitation ?",
"Do you really want to remove this conversation from your list of conversations ? If you are the owner of this conversation, it will be completely deleted!": "Voulez-vous vraiment supprimer la conversation de votre liste ? Si vous êtes le créateur de cette conversation, elle sera définitivement supprimée !",
"Do you really want to remove this membership ?": "Voulez-vous vraiment supprimer cette inscription ?",
"Do you really want to sign out from the application ?": "Voulez-vous vraiment vous déconnecter de l'application ?",
"Do you want to unselected currently selected image ?": "Voulez-vous désélectionner l'image ?",
"Done": "Terminé",
"Download update outside Play Store": "Télécharger la mise hors du Play Store",
"Easily specify the days you are in Forez plain, so that everyone can know it!": "Indiquez facilement les jours où vous êtes dans la plaine du Forez, que tout le monde puisse le savoir !",
"Email address": "Adresse e-mail",
"Email address...": "Adresse mail...",
"Enable dark theme": "Activer le thème sombre",
"Error": "Erreur",
"Error while creating your account": "Une erreur s'est produite lors de la création de votre compte.",
"Error while pausing playback!": "Erreur lors de la pause de la lecture !",
"Error while playing record!": "Erreur lors de la lecture de l'enregistrement !",
"Error while processing action!": "Erreur lors du traitement de l'action !",
"Error while processing new signal!": "Erreur lors du traitement d'un signal !",
"Error while recording!": "Erreur lors de l'enregistrement !",
"Error while resuming playback!": "Erreur lors de la reprise de la lecture !",
"Error while stopping playback!": "Erreur lors de l'arrêt de la lecture !",
"Events organisation in Forez plain": "Organisation d'événements dans la plaine du Forez",
"Every members": "Tous les membres",
"Everyone": "Tout le monde",
"Everyone can choose to join the group without moderator approval": "Tout le monde peut rejoindre le groupe, sans l'approbation d'un modérateur",
"Everyone can request a membership, but a moderator review the request": "Tout le monde peut demander à rejoindre le groupe, mais un modérateur doit accepter les demandes",
"Failed to add member to conversation!": "Echec de l'ajout d'un membre à la conversation !",
"Failed to change conversation logo !": "Erreur lors du changement de logo pour la conversation !",
"Failed to change conversation visibility level!": "Erreur lors du changement du niveau de visibilité de la conversation !",
"Failed to choose an image!": "Erreur lors du choix d'une image !",
"Failed to configure push notifications!": "Erreur lors de la configuration des notifications push !",
"Failed to create a conversation!": "Erreur lors de la création de la conversation !",
"Failed to delete conversation!": "Echec de la suppression de la conversation !",
"Failed to execute image cropper!": "Echec de l'exécution du rogneur d'image !",
"Failed to initialize audio player!": "Echec de l'initialisation du lecteur audio !",
"Failed to initialize video!": "Erreur lors de l'initialisation de la vidéo !",
"Failed to load conversation settings!": "Echec du chargement des paramètres de la conversation !",
"Failed to load data!": "Erreur lors du chargement des données !",
"Failed to load members list!": "Erreur lors du chargement de la liste des membres !",
"Failed to load message information!": "Echec du chargement des informations du message !",
"Failed to load notifications settings!": "Erreur lors du chargement des paramètres de notification !",
"Failed to load privacy settings!": "Erreur lors du chargement des paramètres de vie privée !",
"Failed to load push notifications settings!": "Erreur lors du chargement des paramètres de notifications push !",
"Failed to load the list of Forez groups!": "Erreur lors du chargement de la liste des groupes #Forez !",
"Failed to load tour!": "Erreur lors du chargement du tour de présentation !",
"Failed to load user information!": "Erreur lors du chargement des informations utilisateur !",
"Failed to load user information, maybe it is not a Forez member yet?": "Erreur lors du chargement des informations de l'utilisateur, peut-être n'est-il pas encore membre du groupe #Forez ?",
"Failed to pick an image for the post!": "Echec de la sélection d'une image pour le post !",
"Failed to pick an image!": "Echec de la sélection d'une image !",
"Failed to register to group!": "Erreur lors de l'inscription au groupe !",
"Failed to remove conversation logo!": "Erreur lors de la suppression du logo de la conversation !",
"Failed to remove member!": "Echec de la suppression d'un membre !",
"Failed to send a file!": "Erreur lors de l'envoi d'un fichier !",
"Failed to send report!": "Erreur lors de l'envoi du signalement !",
"Failed to start recording!": "Erreur lors du lancement de l'enregistrement !",
"Failed to toggle admin status of user!": "Echec du changement du status administrateur d'un membre !",
"Failed to update conversation settings!": "Echec de la mise à jour des paramètres de la conversation !",
"Failed to update data conservation policy!": "Echec de la mise à jour des paramètres de vie privée !",
"Failed to update information!": "Erreur lors de la mise à jour des informations !",
"Failed to update settings!": "Erreur lors de la mise à jour des paramètres !",
"Failed to upload new account image!": "Echec de l'envoi de la nouvelle image de compte !",
"First name": "Prénom",
"Follow": "Suivre",
"Follow conversation": "Suivre la conversation",
"Following": "Suivi",
"Force mobile mode": "Forcer l'utilisation du mode mobile",
"Force the smartphone mode of the application to be used, even when tablet mode could be used.": "Forcer l'utilisation du mode smartphone de l'application, même lorsque le mode tablette est disponible.",
"Forez group": "Groupe #Forez",
"Forez special features enabled": "Fonctionalités #Forez activées",
"Form can not be submitted at this point!": "Impossible de soumettre le formulaire à ce stade !",
"Free social network that respect your privacy": "Réseau social libre qui respecte votre vie privée",
"Friends": "Amis",
"Friends of %name%": "Amis de %name%",
"Friends only": "Amis seulement",
"General": "Général",
"General information": "Informations générales",
"General settings": "Paramètres généraux",
"Generate a new random logo": "Générer un logo aléatoire",
"Generate a random account image": "Générer une image de compte aléatoire",
"Go to the Play Store": "Accéder au Play Store",
"Great, you are now a member of a Forez group!": "Vous êtes maintenant membre d'un groupe #Forez !",
"Group": "Groupe",
"Group ID": "Identifiant du gorupe",
"Group URL (optional)": "URL du groupe (optionnelle)",
"Group conversation": "Conversation de groupe",
"Group conversations": "Conversations de groupe",
"Group description (optional)": "Description du groupe (optionnelle)",
"Group information & public posts are available to everyone.": "Les informations du groupe ainsi que ses posts public sont accessibles à tous",
"Group logo": "Logo du groupe",
"Group members": "Membres du groupe",
"Group members only": "Membres du groupe seulement",
"Group name": "Nom du groupe",
"Group registration level": "Inscription au groupe",
"Group settings": "Paramètres du groupe",
"Group visibility": "Visibilité du groupe",
"Group: %group_name%": "Groupe : %group_name%",
"Groups": "Groupes",
"Here are your options to reset your account:": "Voici les options à votre disposition pour réinitialiser votre compte :",
"Here you can make actions to protect your privacy": "Agissez pour protéger votre vie privée",
"Hopefully this will not be too long.": "Cela ne devrait pas être trop long...",
"I have read and accepted the Terms Of Service.": "J'ai lu et accepté les Conditions d'utilisation.",
"If you do not trust us, you can always check out our source code to verify it!": "Le code source du réseau est librement accessible si vous souhaitez le vérifier !",
"Image": "Image",
"Image gallery": "Galerie",
"Input YouTube URL": "Entrez l'URL de la vidéo YouTube",
"Invalid URL!": "URL invalide !",
"Invalid YouTube link!": "Lien YouTube invalide !",
"Invalid credentials!": "Identifiants invalides !",
"Invalid email address!": "Adresse e-mail invalide !",
"Invalid first name!": "Prénom invalide !",
"Invalid last name!": "Nom invalide !",
"Invalid password!": "Mot de passe invalide !",
"Invalid shortcut!": "Raccourcis invalide !",
"Invalid value!": "Valeur invalide !",
"Invited": "Invité",
"It is also easy to create your own groups!": "Vous pouvez également créer facilement vos propres groupes !",
"It is also possible to make video calls!": "Il est même possible de passer des appels vidéos !",
"Join a Forez group": "Rejoindre un groupe #Forez",
"Join the network": "Rejoindre le réseau",
"Last name": "Nom",
"Learn more about us": "En savoir plus sur nous",
"Leave": "Quitter",
"Let us ask you one last time. Do you really want to delete your account? If you decide to do so, your data will be permanently removed from our servers, so we will not be able to recover your account. If you decide to proceed, the deletion process will start immediatly and you will automatically get disconnected from your account.": "Laissez-nous vous demander une dernière fois. Voulez-vous vraiment supprimer votre compte ? Si vous décidez de continuer, les données liées à votre compte vont être supprimées de manière permanente de nos serveurs, et nous ne seront pas en mesure de les restaurer. Si vous décidez de poursuivre, le processus de supprimer vas débuter immédiatement et vous serez automatiquement déconnecté de votre compte.",
"Let's configure a few things and present you some features of the network...": "Commençons par un peu de configuration et une présentation rapide des fonctionalités du réseau...",
"Let's first join a Forez group!": "Commençons par rejoindre un groupe #Forez",
"Let's go!": "C'est parti !",
"Like": "J'aime",
"Loading": "Chargement",
"Loading...": "Chargement...",
"Location": "Adresse",
"Location (optional)": "Adresse (optionnelle)",
"Login": "Connexion",
"Login to Comunic": "Connexion à Comunic",
"Main account information": "Informations principales du compte",
"Make members list public": "Rendre la liste des membres publique",
"Make your email address public": "Rendre votre adresse mail publique",
"Make your friends list public": "Rendre votre liste d'amis publique",
"Manage local application settings": "Paramètres locaux de l'application",
"Manage security options of your account": "Accédez aux options de sécurité pour votre compte",
"Me only": "Moi seulement",
"Member": "Membre",
"Member for": "Membre depuis",
"Member for %t%": "Membre depuis %t%",
"Members": "Membres",
"Members list visibility": "Visibilité de la liste des membres",
"Membership": "Inscription",
"Menu": "Menu",
"Message not seen yet": "Message non vu",
"Message rejected by the server!": "Message rejeté par le serveur !",
"Message seen": "Message vu",
"Message statistics": "Statistiques du message",
"Missing Forez group!": "Groupe #Forez manquant !",
"Moderated registration": "Inscription modérée",
"Moderator": "Modérateur",
"Moderators and administrators": "Modérateurs et administrateurs",
"Moderators only": "Modérateurs uniquement",
"My Page": "Ma page",
"My friends": "Mes amis",
"My friends only": "Mes amis uniquement",
"Name": "Nom",
"Name of the group": "Nom du groupe",
"Name of the group to create": "Nom du groupe à créer",
"Never": "Jamais",
"New choice": "Nouveau choix",
"New choice...": "Nouveau choix...",
"New comment...": "Nouveau commentaire...",
"New content...": "Nouveau contenu...",
"New content:": "Nouveau contenu :",
"New conversation name": "Nom de la nouvelle conversation",
"New file": "Nouveau fichier",
"New membership level": "Nouveau niveau d'appartenance au groupe",
"New message": "Nouveau message",
"New message...": "Nouveau message...",
"New password": "Nouveau mot de passe",
"New survey": "Nouveau sondage",
"Newest": "Plus récent",
"Next": "Suivant",
"Night mode": "Thème sombre",
"No account image yet...": "Pas encore d'image de compte...",
"No choice yet.": "Aucun choix pour le moment.",
"No response yet to this survey.": "Pas encore de réponse à ce sondage",
"Note": "Note",
"Note: Your two questions and answers MUST be completed in order to be able to recover your account using your security questions!": "Note : Vos deux questions de sécurité DOIVENT être complétées pour que vous puissiez récupérer l'accès à votre compte depuis vos questions de sécurité !",
"Notifications": "Notifications",
"Number of friends": "Nombre d'amis",
"OK": "OK",
"Ok": "Ok",
"On invitation only": "Sur invitation uniquement",
"Ongoing call": "Appel en cours",
"Online": "Connecté",
"Only moderators and administrators": "Seulement les modérateurs et les administrateurs",
"Only moderators and administrators of the group can access the conversation": "Seuls les modérateurs et les administrateurs du groupe peuvent accéder à la conversation",
"Only moderators and administrators of the group can create posts on it": "Seuls les modérateurs et les administrateurs du groupe peuvent créer des posts",
"Only the administrators of the group can access the conversation": "Seul les administrateurs du groupe peuvent accéder à la conversation",
"Open": "Ouvert",
"Open group": "Groupe ouvert",
"Open in full screen": "Ouvrir en plein écran",
"Open page": "Page ouverte",
"Open registration": "Inscription ouverte",
"Owner": "Propriétaire",
"PDF": "PDF",
"Page visibility": "Visibilité de la page",
"Password": "Mot de passe",
"Password forgotten": "Mot de passe oublié",
"Password required": "Mot de passe requis",
"Permanently delete your account and all data related to it.": "Supprimer de manière permanente votre compte et toute les données qui y sont rattachées",
"Personal Website": "Site web personnel",
"Personal website URL (optional)": "Site web personnel (optionnel)",
"Playback paused...": "Lecture en pause",
"Playing...": "Lecture...",
"Please answer now your security questions:": "Veuillez répondre à vos questions de sécurité :",
"Please check back soon!": "Revenez plus tard finir la configuration de l'application !",
"Please choose new account image visibility level:": "Veuillez choisir un nouveau niveau de visibilité pour votre image de compte :",
"Please choose now the Forez group you want to join...": "Veuillez maintenant choisir le groupe #Forez que vous souhaitez rejoindre...",
"Please choose the reason of your report:": "Veuillez indiquer la raison de votre signalement",
"Please click on the day you will be in the plain, so that everyone gets informed ! ;)": "Veuillez cliquer sur les jours où vous serez présent dans la plaine du Forez, que tout le monde soit au courant ;)",
"Please enter message content: ": "Veuillez entrer le contenu du message :",
"Please enter new message content:": "Veuillez entrer le contenu du nouveau message :",
"Please enter your email address to reset your password:": "Veuillez entrer votre adresse mail pour changer votre mot de passe :",
"Please give a name to the new conversation": "Veuillez donner un nom à la nouvelle conversation",
"Please sign into your Comunic account: ": "Veuillez vous connecter à votre compte Comunic :",
"Please specify the new choice for the survey": "Veuillez spécifier le nouveau choix pour ce sondage",
"Post": "Post",
"Post content": "Contenu du post",
"Posts": "Posts",
"Posts creation level": "Création de posts",
"Presence": "Présence",
"Presence in Forez": "Présence dans le Forez",
"Presence settings": "Présence dans le Forez",
"Present today": "Présent aujourd'hui",
"Privacy": "Vie privée",
"Privacy policy": "Politique de confidentialité",
"Privacy settings": "Vie privée",
"Private": "Privé",
"Private conversation": "Conversation privée",
"Private group": "Groupe privé",
"Private page": "Page privée",
"Private, accessible only to your friends": "Privé, accessible uniquement par vous et vos amis",
"Protect more your privacy, but drains battery and is less reliable.": "Protège mieux votre vie privée, mais vide plus rapidement la batterie et est moins fiable.",
"Public": "Public",
"Public note (optional)": "Note publique (optionnelle)",
"Public page": "Page publique",
"Public, accessible to all Comunic members": "Publique, accessible par tous les membres de Comunic",
"Push notifications": "Notifications push",
"Push notifications status": "Status des notifications push",
"Question": "Question",
"Question 1": "Question 1",
"Question 2": "Question 2",
"Ready": "Prêt",
"Reason of report": "Raison du signalement",
"Receive notifications for the conversations you follow.": "Recevoir des notifications push pour les conversations que vous suivez",
"Record audio": "Faire un enregistrement audio",
"Recording...": "Enregistrement...",
"Registration process": "Processus d'inscription",
"Reject": "Rejeter",
"Reject request": "Rejeter la demande",
"Remove": "Supprimer",
"Remove selected image": "Supprimer l'image sélectionnée",
"Replace image": "Remplacer l'image",
"Report abuse": "Signaler un abus",
"Report successfully saved. Thank you for your contribution!": "Le report a bien été pris en compte. Merci pour votre contribution !",
"Request membership": "Demander de rejoindre le groupe",
"Requested": "En attente",
"Respond to survey": "Répondre au sondage",
"Retry": "Ré-essayer",
"Save your battery life.": "Plus économe en énergie",
"Search": "Recherche",
"Search a user, a group...": "Rechercher un utilisateur, un groupe...",
"Search user...": "Rechercher un utilisateur...",
"Search...": "Rechercher...",
"Secrete group": "Groupe secret",
"Security": "Sécurité",
"See the tour again": "Revoir la présentation de l'application",
"Select new post visibility level": "Sélectionner la nouvelle visibilité du post",
"Send": "Envoyer",
"Send a message": "Envoyer un message",
"Send request": "Envoyer la demande",
"Send us an email to ask for help": "Envoyez-nous un mail pour demander notre aide",
"Set your own emoticon shorcuts": "Définissez vos propres raccourcis d'émoticons",
"Settings": "Paramètres",
"Shortcut": "Raccourcis",
"Show more comments": "Afficher plus de commentaires",
"Show performances overlay": "Afficher les informations sur les performances",
"Sign in": "Connexion",
"Sign out": "Déconnexion",
"Specified email address was not found!": "L'adresse mail spécifiée n'a pas été trouvée !",
"Specify URL": "Spécifier l'URL",
"Statistics": "Statistiques",
"Stop streaming": "Arrêter de partager ma vidéo & mon audio",
"Submit": "Valider",
"Switch camera": "Changer de caméra",
"Take a picture": "Prendre une photo",
"Take a video": "Prendre une vidéo",
"Terms of Use": "Conditions d'utilisation du réseau",
"The application is yours": "L'application est à vous",
"The group is accessible to accepted members only.": "Le groupe n'est accessible qu'à ses membres",
"The group is visible only to invited members.": "Le groupe n'apparaît qu'à ses membres, et aux personnes invitées à le rejoindre.",
"The only way to join the group is to be invited by a moderator": "Seul un modérateur peut inviter quelqu'un à rejoindre le groupe",
"The password and its confirmation do not match!": "La confirmation ne correspond pas au mot de passe !",
"The post has been successfully created!": "Le post a été créé avec succès !",
"There is no message yet in this conversation.": "Il y n'a pas encore de message dans cette conversation.",
"There is no post to display here yet.": "Il n'y a pas encore de post à afficher.",
"This account is private.": "Ce compte est privé.",
"This conversation is managed by a group": "Cette conversation est rattachée à un groupe",
"This conversation is managed by a group. You can not leave it this way. If you do not want to receive notifications from this conversation anymore, you can stop following it in the conversation settings": "Cette conversation est rattachée à un groupe. Vous ne pouvez pas la quitter de cette manière. Si vous ne souhaitez plus recevoir de notification de cette conversation, vous pouvez cesser de la suivre dans les paramètres de celle-ci.",
"This feature is available only in the Comunic application!": "Cette fonctionalité n'est disponible que dans l'application Comunic !",
"This file could not be sent: it is too big! (Max allowed size: %1%)": "Ce fichier ne peut pas être envoyé : il est trop lourd ! (Taille maximale autorisée: %1%)",
"This kind of notification is not supported yet by this application.": "Ce type de notification n'est pas encore supportée par l'application.",
"This password is not the same as the other one!": "Ce mot de passe est différent de l'autre",
"This version of the Comunic application is deprecated. You might still be able to use it, but some features may not work. We recommend you to update to the latest version of the application.": "Cette version de l'application Comunic est obsolète. Vous pouvez continuer à l'utiliser, mais certaines fonctionalités pourront ne plus fonctionner. Nous vous recommandons d'installer la dernière version de l'applicatioon.",
"This virtual directory is invalid / unvailable !": "Ce répertoire virtuel est invalide / indisponible !",
"This will help you to reach them to exchange information!": "Cela vous permettra d'échanger facilement des informations avec elles !",
"Toggle admin status": "Changer le status d'admin",
"Too many accounts have been created from this IP address for now. Please try again later.": "Trop de comptes ont été créés avec cette addresse IP pour l'instant. Veuillez ré-essayer plus tard.",
"Too many unsuccessful login attempts! Please try again later...": "Trop de tentatives de connexion ont échoué. Veuillez ré-essayer plus tard...",
"Too many unsuccessfull login attempts! Please try again later...": "Trop de tentatives de connexion ont échoué. Veuillez ré-essayer plus tard...",
"Try again": "Essayer à nouveau",
"URL": "URL",
"Unavailable": "Indisponible",
"Unsafe value!": "Valeur non sûre !",
"Update": "Modifier",
"Update a conversation": "Modifier une conversation",
"Update comment content": "Modifier le contenu du commentaire",
"Update content": "Modifier le contenu",
"Update conversation": "Mise à jour d'une conversation",
"Update message": "Modifier un message",
"Update post content": "Modifier le contenu du post",
"Update security questions": "Mise à jour des questions de sécurité",
"Update the conversation": "Modifier la conversation",
"Upload a new logo": "Envoyer un nouveau logo",
"Upload an account image": "Envoyer une nouvelle image de compte",
"Upload new account image": "Changer l'image de compte",
"Use Google services": "Utiliser les services de Google",
"Use Google services (recommended)": "Utiliser les services de Google (recommandé)",
"Use independent notifications service": "Utiliser notre service indépendant",
"Use independent service": "Utiliser le service indépendant",
"Use the Google Play services to send you notifications. This option is less privacy-friendly, but it will work on most phones and will save your battery life.": "Utiliser les services Google Play pour vous envoyer des notifications. Cette option n'a aucun impact sur la batterie de votre téléphone et fonctionne sur la plupart des téléphones.",
"Use the old application anyway": "Utiliser l'ancienne version",
"User ID": "Numéro d'utilisateur",
"Version %version% - Build %build%": "Version %version% - Build %build%",
"Virtual directory": "Répertoire virtuel",
"Virtual directory (optional)": "Dossier virtuel (optionnel)",
"Visibility": "Visibilité",
"Visitor": "Visiteur",
"Website": "Site web",
"Welcome to #Forez, the central application dedicated to events planning in the Forez plain!": "Bienvenue dans #Forez, l'application dédiée à la planification d'événements dans la plaine du Forez !",
"Welcome to Comunic, the social network that respect your privacy!": "Bienvenue dans Comunic, le réseau social qui respecte votre vie privée !",
"Who can create posts": "Qui peut créer des posts",
"With Comunic, you can have conversations with all your friends.": "Comunic vous permet de créer des conversations avec vos amis.",
"With Comunic, you can have conversations with all your friends.\\n\\nIt is also possible to make video calls!": "Comunic vous permet de créer des conversations avec vos amis.\\n\\nIl est même possible de passer des appels vidéos !",
"You can choose a new password.": "Vous pouvez choisir un nouveau mot de passe.",
"You can decide to define one now!": "Vous pouvez définir la vôtre dès maintenant !",
"You can join groups where people share the same interests as you!": "Vous pouvez rejoindre des groups où des personnes partagent les même intérêts que vous",
"You can join groups where people share the same interests as you!\\n\\nIt is also easy to create your own groups!": "Vous pouvez rejoindre des groups où des personnes partagent les même intérêts que vous\\n\\nVous pouvez également créer facilement vos propres groupes !",
"You can not access this group yet, please wait for a member of the group to accept your request.": "Vous ne pouvez pas encore accéder à ce groupe, veuillez attendre qu'un membre du groupe accepte votre demande d'inscription.",
"You can not access this group yet, please wait for a member of the group to accept your request.\\nHopefully this will not be too long.\\nPlease check back soon!": "Vous ne pouvez pas encore accéder à ce groupe, veuillez attendre qu'un membre du groupe accepte votre demande.\\nCela ne devrait pas être trop long...",
"You can reach us at contact@communiquons.org": "Vous pouvez nous contacter à l'adresse contact@communiquons.org",
"You can search the people you know and ask them to become your friends!": "Vous pouvez rechercher vos connaissances et les demander en amis !",
"You can search the people you know and ask them to become your friends!\\n\\nThis will help you to reach them to exchange information!": "Vous pouvez rechercher vos connaissances et les demander en amis, pour entrer facilement en contact avec elles !",
"You can use this virtual directory.": "Vous pouvez utiliser ce répertoire virtuel.",
"You do not have any conversation yet!": "Vous n'avez pas encore de conversation !",
"You do not have any friend yet!": "Vous n'avez pas encore d'amis sur Comunic !",
"You do not have any notification now.": "Vous n'avez pas de notification pour l'intant.",
"You do not have any unread conversation yet...": "Vous n'avez aucune conversation non lue pour le moment...",
"You have already sent a report for this resource!": "Vous avez déjà soumis un signalement pour cette ressource !",
"You must accept the Terms Of Service to continue.": "Vous devez accepter les Conditions d'utilisation pour continuer.",
"You security questions have been successfully updated!": "Vos questions de sécurité ont été mises avec succès !",
"You will need to restart the application to apply changes": "Vous aurez besoin de redémarrer l'application pour appliquer les changements",
"YouTube movie": "Vidéo YouTube",
"Your account has been successfully created. You can now login to start to use it.": "Votre compte a été créé avec succès. Vous pouvez à présent vous connecter pour commencer à l'utiliser !",
"Your account image is visible by everyone, including users external to Comunic.": "Votre image de compte est visible par tout le monde, ainsi que les personnes non connectées.",
"Your account image is visible only by your friends.": "Votre image de compte n'est visible que par vos amis",
"Your account image is visible only to connected Comunic users.": "Votre image de compte n'est accessible qu'aux personnes connectées.",
"Your current password": "Mot de passe actuel",
"Your data is YOUR DATA. We will never use it or sell it.": "Vos données sont VOS DONNÉES. Nous ne les exploiterons ou ne les vendront jamais.",
"Your data is YOUR DATA. We will never use it or sell it.\\n\\nIf you do not trust us, you can always check out our source code to verify it!": "Vos données sont VOS DONNÉES. Nous ne les exploiterons ou ne les vendront jamais.\\n\\nLe code source du réseau est librement accessible si vous souhaitez le vérifier !",
"Your friends list": "Votre liste d'amis",
"Your new password": "Votre nouveau mot de passe",
"Your page settings": "Paramètres de votre page",
"Your password has been successfully changed!": "Votre mot de passe a été changé avec succès !",
"Your password must be composed of at least %num% characters!": "Votre mot de passe doit être composé d'au moins %num% caractères !",
"Your password must contains characters of at least %num% of the following categories : %upper% upper case letter, %lower% lowercase letter, %digit% digit, %special% special character.": "Votre mot de passe doit contenir des caractères d'au moins %num% des catégories suivants : %upper% lettre majuscule, %lower% lettre minuscule, %digit% chiffre, %special% caractères spéciaux.",
"Your password must not contains part of your email address!": "Votre mot de passe ne doit pas contenir des parties de votre adresse mail !",
"Your password must not contains your first name!": "Votre mot de passe ne doit pas contenir votre prénom !",
"Your password must not contains your last name!": "Votre mot de passe ne doit pas contenir votre nom !",
"Your response: %response%": "Votre réponse : %response%",
"Your security questions can be used to recover an access to your account when you loose your password...": "Vos questions de sécurité peuvent être utilisées pour récupérer l'accès à votre compte lorsque vous perdez votre mot de passe...",
"accepted his invitation to join the group": "a accepté son invitation à rejoindre le groupe",
"accepted you request to join the group": "a accepté votre demande à rejoindre le groupe",
"accepted your friendship request.": "a accepté cotre demande d'ami",
"cancel": "annuler",
"created a new post": "a créé un nouveau post",
"delete": "supprimer",
"https://www.youtube.com/watch/?v=": "https://www.youtube.com/watch/?v=",
"invited you to join the group": "vous a invité à rejoindre le groupe",
"on %user_name%'s page": "sur la page de %user_name%",
"on his / her page": "sur sa page",
"on the group %group%.": "sur le groupe %group%",
"posted a comment": "a posté un commentaire",
"rejected his invitation to join the group": "a rejeté son invitation à rejoindre le groupe",
"rejected your friendship request.": "a rejeté votre demande d'ami",
"rejected your request to join the group": "a rejeté votre demande à rejoindre le groupe",
"sent a request to join the group": "a envoyé une demande à rejoindre le groupe",
"sent you a friendship request.": "vous a envoyé une demande d'ami"
}

13
build_all_comunic_releases.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
DEST="/home/pierre/Desktop"
make stable_release_split_per_abi && \
mv build/app/outputs/flutter-apk/app-armeabi-v7a-stable-release.apk "$DEST" && \
mv build/app/outputs/flutter-apk/app-arm64-v8a-stable-release.apk "$DEST" && \
mv build/app/outputs/flutter-apk/app-x86_64-stable-release.apk "$DEST" && \
mv build/app/outputs/mapping/stableRelease/mapping.txt "$DEST" && \
make stable_release && \
mv build/app/outputs/flutter-apk/app-stable-release.apk "$DEST"
echo "Done. Artifacts copied to $DEST"

8
build_all_forez.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
DEST="/home/pierre/Desktop"
make forez_release_split_per_abi && \
mv build/app/outputs/flutter-apk/app-armeabi-v7a-forez-release.apk "$DEST" && \
mv build/app/outputs/flutter-apk/app-arm64-v8a-forez-release.apk "$DEST" && \
mv build/app/outputs/flutter-apk/app-x86_64-forez-release.apk "$DEST" && \
mv build/app/outputs/mapping/forezRelease/mapping.txt "$DEST"

1
build_comunic_ios.sh Executable file
View File

@ -0,0 +1 @@
flutter build ipa --flavor comunic -t lib/main_online.dart

1
build_forez_ios.sh Executable file
View File

@ -0,0 +1 @@
flutter build ipa --flavor forez -t lib/forez/main_forez_online.dart

View File

@ -0,0 +1,4 @@
flutter_icons:
android: false
ios: true
image_path: assets/icon/forez_icon.png

Some files were not shown because too many files have changed in this diff Show More