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

Compare commits

...

392 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
404 changed files with 15599 additions and 5169 deletions

5
.gitignore vendored
View File

@ -1,3 +1,6 @@
# Comunic - Configurations private entrypoints
lib/*private*.dart
# Miscellaneous
*.class
*.log
@ -71,3 +74,5 @@
.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,25 +34,33 @@ if (keystorePropertiesFile.exists()) {
}
android {
compileSdkVersion 30
compileSdkVersion flutter.compileSdkVersion
compileOptions {
// Required to use WebRTC
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 21
targetSdkVersion 30
minSdkVersion 23
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@ -65,29 +74,37 @@ 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
useProguard true
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 {
@ -100,7 +117,11 @@ flutter {
}
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
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'

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"
}

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

@ -8,12 +8,29 @@
<!-- 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.
@ -21,22 +38,29 @@
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<application
android:label="Comunic"
android:icon="@mipmap/ic_launcher"
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
@ -44,19 +68,31 @@
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<!-- Specify that the launch screen should continue being displayed -->
<!-- until Flutter renders its first frame. -->
<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background" />
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>

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,6 +1,33 @@
package org.communiquons.comunic;
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 {
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

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>
<string name="independent_push_notification_notification_text">Push notifications service is running</string>
</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.5.4'
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

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip

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

View File

@ -1,4 +1,14 @@
{
"#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",
@ -9,47 +19,82 @@
"%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",
@ -59,18 +104,25 @@
"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",
@ -79,9 +131,16 @@
"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 !",
@ -121,6 +180,7 @@
"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 !",
@ -171,9 +231,14 @@
"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%",
@ -181,6 +246,7 @@
"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",
@ -190,46 +256,108 @@
"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 sociale libre qui respecte votre vie privée",
"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",
@ -238,9 +366,13 @@
"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",
@ -250,10 +382,13 @@
"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",
@ -267,42 +402,68 @@
"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.",
@ -310,14 +471,20 @@
"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",
@ -326,44 +493,73 @@
"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",
@ -378,28 +574,44 @@
"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 converation.": "Il y n'a pas encore de message dans cette conversation.",
"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é",
@ -407,29 +619,59 @@
"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 et le gérer.",
"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",

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

32
ios/.gitignore vendored Normal file
View File

@ -0,0 +1,32 @@
*.mode1v3
*.mode2v3
*.moved-aside
*.pbxuser
*.perspectivev3
**/*sync/
.sconsign.dblite
.tags*
**/.vagrant/
**/DerivedData/
Icon?
**/Pods/
**/.symlinks/
profile
xcuserdata
**/.generated/
Flutter/App.framework
Flutter/Flutter.framework
Flutter/Flutter.podspec
Flutter/Generated.xcconfig
Flutter/app.flx
Flutter/app.zip
Flutter/flutter_assets/
Flutter/flutter_export_environment.sh
ServiceDefinitions.json
Runner/GeneratedPluginRegistrant.*
# Exceptions to above rules.
!default.mode1v3
!default.mode2v3
!default.pbxuser
!default.perspectivev3

View File

@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"

View File

@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"

83
ios/Podfile Normal file
View File

@ -0,0 +1,83 @@
# Uncomment this line to define a global platform for your project
platform :ios, '10.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end
File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
flutter_ios_podfile_setup
target 'Runner' do
use_frameworks!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
# You can remove unused permissions here
# for more infomation: https://github.com/BaseflowIT/flutter-permission-handler/blob/develop/permission_handler/ios/Classes/PermissionHandlerEnums.h
# e.g. when you don't need camera permission, just add 'PERMISSION_CAMERA=0'
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
## dart: PermissionGroup.calendar
'PERMISSION_EVENTS=0',
## dart: PermissionGroup.reminders
'PERMISSION_REMINDERS=0',
## dart: PermissionGroup.contacts
'PERMISSION_CONTACTS=0',
## dart: PermissionGroup.camera
# 'PERMISSION_CAMERA=0',
## dart: PermissionGroup.microphone
# 'PERMISSION_MICROPHONE=0',
## dart: PermissionGroup.speech
'PERMISSION_SPEECH_RECOGNIZER=0',
## dart: PermissionGroup.photos
#'PERMISSION_PHOTOS=0'
## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
'PERMISSION_LOCATION=0',
## dart: PermissionGroup.notification
# 'PERMISSION_NOTIFICATIONS=0',
## dart: PermissionGroup.mediaLibrary
# 'PERMISSION_MEDIA_LIBRARY=0',
## dart: PermissionGroup.sensors
'PERMISSION_SENSORS=0'
]
end
end
end

286
ios/Podfile.lock Normal file
View File

@ -0,0 +1,286 @@
PODS:
- connectivity (0.0.1):
- Flutter
- Reachability
- DKImagePickerController/Core (4.3.2):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
- DKImagePickerController/ImageDataManager (4.3.2)
- DKImagePickerController/PhotoGallery (4.3.2):
- DKImagePickerController/Core
- DKPhotoGallery
- DKImagePickerController/Resource (4.3.2)
- DKPhotoGallery (0.0.17):
- DKPhotoGallery/Core (= 0.0.17)
- DKPhotoGallery/Model (= 0.0.17)
- DKPhotoGallery/Preview (= 0.0.17)
- DKPhotoGallery/Resource (= 0.0.17)
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Core (0.0.17):
- DKPhotoGallery/Model
- DKPhotoGallery/Preview
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Model (0.0.17):
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Preview (0.0.17):
- DKPhotoGallery/Model
- DKPhotoGallery/Resource
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Resource (0.0.17):
- SDWebImage
- SwiftyGif
- emoji_picker (0.0.3):
- Flutter
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
- Firebase/CoreOnly (7.3.0):
- FirebaseCore (= 7.3.0)
- Firebase/Messaging (7.3.0):
- Firebase/CoreOnly
- FirebaseMessaging (~> 7.3.0)
- firebase_core (1.0.1):
- Firebase/CoreOnly (= 7.3.0)
- Flutter
- firebase_messaging (9.0.0):
- Firebase/Messaging (= 7.3.0)
- firebase_core
- Flutter
- FirebaseCore (7.3.0):
- FirebaseCoreDiagnostics (~> 7.0)
- GoogleUtilities/Environment (~> 7.0)
- GoogleUtilities/Logger (~> 7.0)
- FirebaseCoreDiagnostics (7.11.0):
- GoogleDataTransport (~> 8.4)
- GoogleUtilities/Environment (~> 7.0)
- GoogleUtilities/Logger (~> 7.0)
- nanopb (~> 2.30908.0)
- FirebaseInstallations (7.11.0):
- FirebaseCore (~> 7.0)
- GoogleUtilities/Environment (~> 7.0)
- GoogleUtilities/UserDefaults (~> 7.0)
- PromisesObjC (~> 1.2)
- FirebaseInstanceID (7.11.0):
- FirebaseCore (~> 7.0)
- FirebaseInstallations (~> 7.0)
- GoogleUtilities/Environment (~> 7.0)
- GoogleUtilities/UserDefaults (~> 7.0)
- FirebaseMessaging (7.3.0):
- FirebaseCore (~> 7.0)
- FirebaseInstanceID (~> 7.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.0)
- GoogleUtilities/Environment (~> 7.0)
- GoogleUtilities/Reachability (~> 7.0)
- GoogleUtilities/UserDefaults (~> 7.0)
- Flutter (1.0.0)
- flutter_webrtc (0.2.2):
- Flutter
- GoogleWebRTC (= 1.1.31999)
- Libyuv (= 1703)
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- GoogleDataTransport (8.4.0):
- GoogleUtilities/Environment (~> 7.2)
- nanopb (~> 2.30908.0)
- PromisesObjC (~> 1.2)
- GoogleUtilities/AppDelegateSwizzler (7.3.1):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
- GoogleUtilities/Network
- GoogleUtilities/Environment (7.3.1):
- PromisesObjC (~> 1.2)
- GoogleUtilities/Logger (7.3.1):
- GoogleUtilities/Environment
- GoogleUtilities/Network (7.3.1):
- GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Reachability
- "GoogleUtilities/NSData+zlib (7.3.1)"
- GoogleUtilities/Reachability (7.3.1):
- GoogleUtilities/Logger
- GoogleUtilities/UserDefaults (7.3.1):
- GoogleUtilities/Logger
- GoogleWebRTC (1.1.31999)
- image_cropper (0.0.4):
- Flutter
- TOCropViewController (~> 2.6.0)
- image_picker (0.0.1):
- Flutter
- libwebp (1.2.0):
- libwebp/demux (= 1.2.0)
- libwebp/mux (= 1.2.0)
- libwebp/webp (= 1.2.0)
- libwebp/demux (1.2.0):
- libwebp/webp
- libwebp/mux (1.2.0):
- libwebp/demux
- libwebp/webp (1.2.0)
- Libyuv (1703)
- nanopb (2.30908.0):
- nanopb/decode (= 2.30908.0)
- nanopb/encode (= 2.30908.0)
- nanopb/decode (2.30908.0)
- nanopb/encode (2.30908.0)
- package_info (0.0.1):
- Flutter
- path_provider (0.0.1):
- Flutter
- "permission_handler (5.1.0+2)":
- Flutter
- PromisesObjC (1.2.12)
- Reachability (3.2)
- record_mp3 (0.0.1):
- Flutter
- SDWebImage (5.11.1):
- SDWebImage/Core (= 5.11.1)
- SDWebImage/Core (5.11.1)
- shared_preferences (0.0.1):
- Flutter
- sqflite (0.0.2):
- Flutter
- FMDB (>= 2.7.5)
- SwiftyGif (5.4.0)
- TOCropViewController (2.6.0)
- url_launcher (0.0.1):
- Flutter
- video_player (0.0.1):
- Flutter
- video_thumbnail (0.0.1):
- Flutter
- libwebp
- wakelock (0.0.1):
- Flutter
DEPENDENCIES:
- connectivity (from `.symlinks/plugins/connectivity/ios`)
- emoji_picker (from `.symlinks/plugins/emoji_picker/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
- Flutter (from `Flutter`)
- flutter_webrtc (from `.symlinks/plugins/flutter_webrtc/ios`)
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
- image_picker (from `.symlinks/plugins/image_picker/ios`)
- package_info (from `.symlinks/plugins/package_info/ios`)
- path_provider (from `.symlinks/plugins/path_provider/ios`)
- permission_handler (from `.symlinks/plugins/permission_handler/ios`)
- record_mp3 (from `.symlinks/plugins/record_mp3/ios`)
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- url_launcher (from `.symlinks/plugins/url_launcher/ios`)
- video_player (from `.symlinks/plugins/video_player/ios`)
- video_thumbnail (from `.symlinks/plugins/video_thumbnail/ios`)
- wakelock (from `.symlinks/plugins/wakelock/ios`)
SPEC REPOS:
https://cdn.cocoapods.org/:
- DKImagePickerController
- DKPhotoGallery
- Firebase
- FirebaseCore
- FirebaseCoreDiagnostics
- FirebaseInstallations
- FirebaseInstanceID
- FirebaseMessaging
- FMDB
- GoogleDataTransport
- GoogleUtilities
- GoogleWebRTC
- libwebp
- Libyuv
- nanopb
- PromisesObjC
- Reachability
- SDWebImage
- SwiftyGif
- TOCropViewController
EXTERNAL SOURCES:
connectivity:
:path: ".symlinks/plugins/connectivity/ios"
emoji_picker:
:path: ".symlinks/plugins/emoji_picker/ios"
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
firebase_core:
:path: ".symlinks/plugins/firebase_core/ios"
firebase_messaging:
:path: ".symlinks/plugins/firebase_messaging/ios"
Flutter:
:path: Flutter
flutter_webrtc:
:path: ".symlinks/plugins/flutter_webrtc/ios"
image_cropper:
:path: ".symlinks/plugins/image_cropper/ios"
image_picker:
:path: ".symlinks/plugins/image_picker/ios"
package_info:
:path: ".symlinks/plugins/package_info/ios"
path_provider:
:path: ".symlinks/plugins/path_provider/ios"
permission_handler:
:path: ".symlinks/plugins/permission_handler/ios"
record_mp3:
:path: ".symlinks/plugins/record_mp3/ios"
shared_preferences:
:path: ".symlinks/plugins/shared_preferences/ios"
sqflite:
:path: ".symlinks/plugins/sqflite/ios"
url_launcher:
:path: ".symlinks/plugins/url_launcher/ios"
video_player:
:path: ".symlinks/plugins/video_player/ios"
video_thumbnail:
:path: ".symlinks/plugins/video_thumbnail/ios"
wakelock:
:path: ".symlinks/plugins/wakelock/ios"
SPEC CHECKSUMS:
connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467
DKImagePickerController: b5eb7f7a388e4643264105d648d01f727110fc3d
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
emoji_picker: 0e868059aa18f9473d234f3d0701fbd4d5fd310c
file_picker: 3e6c3790de664ccf9b882732d9db5eaf6b8d4eb1
Firebase: 26223c695fe322633274198cb19dca8cb7e54416
firebase_core: d2e03528e2a600891f6f460b5e92932624480d1d
firebase_messaging: fc1811236795c2313b8339c35d31295b1cd8486f
FirebaseCore: 4d3c72622ce0e2106aaa07bb4b2935ba2c370972
FirebaseCoreDiagnostics: 68ad972f99206cef818230f3f3179d52ccfb7f8c
FirebaseInstallations: a58d4f72ec5861840b84df489f2668d970df558a
FirebaseInstanceID: ad5135045a498d7775903efd39762d2cdfa1be27
FirebaseMessaging: 68d1bcb14880189558a8ae57167abe0b7e417232
Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c
flutter_webrtc: 39898454258b54ba51996850d5da8d5d53bf1524
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
GoogleDataTransport: cd9db2180fcecd8da1b561aea31e3e56cf834aa7
GoogleUtilities: e1d9ed4e544fc32a93e00e721400cbc3f377200d
GoogleWebRTC: b39a78c4f5cc6b0323415b9233db03a2faa7b0f0
image_cropper: f1668dd8d2cad2d357955caad15a40547856edcb
image_picker: 50e7c7ff960e5f58faa4d1f4af84a771c671bc4a
libwebp: e90b9c01d99205d03b6bb8f2c8c415e5a4ef66f0
Libyuv: 5f79ced0ee66e60a612ca97de1e6ccacd187a437
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0
PromisesObjC: 3113f7f76903778cf4a0586bd1ab89329a0b7b97
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
record_mp3: b842d3900f65a0707e4064d9bcfac6323dea0b4f
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
SwiftyGif: 5d4af95df24caf1c570dbbcb32a3b8a0763bc6d7
TOCropViewController: 3105367e808b7d3d886a74ff59bf4804e7d3ab38
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
video_player: 9cc823b1d9da7e8427ee591e8438bfbcde500e6e
video_thumbnail: c4e2a3c539e247d4de13cd545344fd2d26ffafd1
wakelock: b0843b2479edbf6504d8d262c2959446f35373aa
PODFILE CHECKSUM: efdcc144b284f95c85507e2c43974fc68ced9a09
COCOAPODS: 1.10.0

View File

@ -9,10 +9,9 @@
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
6B56B0EAFAE8328410BF4F0C /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F57A07BDAAD5F07639423EE8 /* Pods_Runner.framework */; };
8F2AEBBC26394110007DF92A /* LaunchScreenForez.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8F2AEBBA26394110007DF92A /* LaunchScreenForez.storyboard */; };
8FFF7880264272F1002E5895 /* config in Resources */ = {isa = PBXBuildFile; fileRef = 8FFF787F264272F1002E5895 /* config */; };
9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; };
978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
@ -28,8 +27,6 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */,
9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@ -37,22 +34,34 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
0769C1FC4748FF157F071E0B /* Pods-Runner.release-comunic.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-comunic.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-comunic.xcconfig"; sourceTree = "<group>"; };
0A8CE5857732A0F515E33C25 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
20DA6CDBC5D21B7A03FBA065 /* Pods-Runner.releas-forez.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.releas-forez.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.releas-forez.xcconfig"; sourceTree = "<group>"; };
2FBB8251B13B9E957E7F76E5 /* Pods-Runner.profile-forez.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-forez.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-forez.xcconfig"; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
8CF757033A070BF5F6AD7355 /* Pods-Runner.debug-comunic.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-comunic.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-comunic.xcconfig"; sourceTree = "<group>"; };
8F2AEBBB26394110007DF92A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreenForez.storyboard; sourceTree = "<group>"; };
8FEFC7EA26405694003B7DF3 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = "<group>"; };
8FFF787F264272F1002E5895 /* config */ = {isa = PBXFileReference; lastKnownFileType = folder; path = config; sourceTree = "<group>"; };
9731915131511AD49411A740 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
A98D940B3C36CF84D8933849 /* Pods-Runner.debug-forez.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-forez.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-forez.xcconfig"; sourceTree = "<group>"; };
BAC869DEB5FEB71778616187 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
ED9CDE697E34B6ED3FFA1873 /* Pods-Runner.profile-comunic.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-comunic.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-comunic.xcconfig"; sourceTree = "<group>"; };
F56F7D6F078F8E260FFA50A7 /* Pods-Runner.release-forez.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-forez.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-forez.xcconfig"; sourceTree = "<group>"; };
F57A07BDAAD5F07639423EE8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -60,8 +69,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
6B56B0EAFAE8328410BF4F0C /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -71,9 +79,7 @@
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
3B80C3931E831B6300D905FE /* App.framework */,
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
9740EEBA1CF902C7004384FC /* Flutter.framework */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
9740EEB31CF90195004384FC /* Generated.xcconfig */,
@ -84,10 +90,12 @@
97C146E51CF9000F007C117D = {
isa = PBXGroup;
children = (
8FFF787F264272F1002E5895 /* config */,
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
CF3B75C9A7D2FA2A4C99F110 /* Frameworks */,
C3375AB17BDCCDCD87D22C72 /* Pods */,
DA49D93A3035C0301E27EAE5 /* Frameworks */,
);
sourceTree = "<group>";
};
@ -102,6 +110,8 @@
97C146F01CF9000F007C117D /* Runner */ = {
isa = PBXGroup;
children = (
8FEFC7EA26405694003B7DF3 /* Runner.entitlements */,
8F2AEBBA26394110007DF92A /* LaunchScreenForez.storyboard */,
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */,
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */,
97C146FA1CF9000F007C117D /* Main.storyboard */,
@ -123,6 +133,31 @@
name = "Supporting Files";
sourceTree = "<group>";
};
C3375AB17BDCCDCD87D22C72 /* Pods */ = {
isa = PBXGroup;
children = (
BAC869DEB5FEB71778616187 /* Pods-Runner.debug.xcconfig */,
9731915131511AD49411A740 /* Pods-Runner.release.xcconfig */,
0A8CE5857732A0F515E33C25 /* Pods-Runner.profile.xcconfig */,
A98D940B3C36CF84D8933849 /* Pods-Runner.debug-forez.xcconfig */,
20DA6CDBC5D21B7A03FBA065 /* Pods-Runner.releas-forez.xcconfig */,
2FBB8251B13B9E957E7F76E5 /* Pods-Runner.profile-forez.xcconfig */,
8CF757033A070BF5F6AD7355 /* Pods-Runner.debug-comunic.xcconfig */,
0769C1FC4748FF157F071E0B /* Pods-Runner.release-comunic.xcconfig */,
F56F7D6F078F8E260FFA50A7 /* Pods-Runner.release-forez.xcconfig */,
ED9CDE697E34B6ED3FFA1873 /* Pods-Runner.profile-comunic.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
DA49D93A3035C0301E27EAE5 /* Frameworks */ = {
isa = PBXGroup;
children = (
F57A07BDAAD5F07639423EE8 /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@ -130,12 +165,15 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
2A04C6C38B737FCC60D37633 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
8FFF788226427350002E5895 /* Copy GoogleService-Info.plist to the correct location */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
C9EE070942D44B728369915C /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@ -157,6 +195,7 @@
TargetAttributes = {
97C146ED1CF9000F007C117D = {
CreatedOnToolsVersion = 7.3.1;
DevelopmentTeam = QRU542F2B8;
};
};
};
@ -165,6 +204,7 @@
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
English,
en,
Base,
);
@ -184,9 +224,11 @@
buildActionMask = 2147483647;
files = (
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
8FFF7880264272F1002E5895 /* config in Resources */,
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */,
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
8F2AEBBC26394110007DF92A /* LaunchScreenForez.storyboard in Resources */,
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -194,6 +236,28 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
2A04C6C38B737FCC60D37633 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@ -206,7 +270,25 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
8FFF788226427350002E5895 /* Copy GoogleService-Info.plist to the correct location */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "Copy GoogleService-Info.plist to the correct location";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "setopt KSH_ARRAYS BASH_REMATCH\nenvironment=\"default\"\n\n# Regex to extract the scheme name from the Build Configuration\n# We have named our Build Configurations as Debug-dev, Debug-prod etc.\n# Here, dev and prod are the scheme names. This kind of naming is required by Flutter for flavors to work.\n# We are using the $CONFIGURATION variable available in the XCode build environment to extract \n# the environment (or flavor)\n# For eg.\n# If CONFIGURATION=\"Debug-prod\", then environment will get set to \"prod\".\nif [[ $CONFIGURATION =~ -([^-]*)$ ]]; then\nenvironment=${BASH_REMATCH[1]}\nfi\n\necho $environment\n\n# Name and path of the resource we're copying\nGOOGLESERVICE_INFO_PLIST=GoogleService-Info.plist\nGOOGLESERVICE_INFO_FILE=${PROJECT_DIR}/config/${environment}/${GOOGLESERVICE_INFO_PLIST}\n\n# Make sure GoogleService-Info.plist exists\necho \"Looking for ${GOOGLESERVICE_INFO_PLIST} in ${GOOGLESERVICE_INFO_FILE}\"\nif [ ! -f $GOOGLESERVICE_INFO_FILE ]\nthen\necho \"No GoogleService-Info.plist found. Please ensure it's in the proper directory.\"\nexit 1\nfi\n\n# Get a reference to the destination location for the GoogleService-Info.plist\n# This is the default location where Firebase init code expects to find GoogleServices-Info.plist file\nPLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app\necho \"Will copy ${GOOGLESERVICE_INFO_PLIST} to final destination: ${PLIST_DESTINATION}\"\n\n# Copy over the prod GoogleService-Info.plist for Release builds\ncp \"${GOOGLESERVICE_INFO_FILE}\" \"${PLIST_DESTINATION}\"\n# unsetopt KSH_ARRAYS\n";
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
@ -220,7 +302,87 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n";
};
C9EE070942D44B728369915C /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/DKImagePickerController/DKImagePickerController.framework",
"${BUILT_PRODUCTS_DIR}/DKPhotoGallery/DKPhotoGallery.framework",
"${BUILT_PRODUCTS_DIR}/FMDB/FMDB.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseCore/FirebaseCore.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseInstallations/FirebaseInstallations.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseMessaging/FirebaseMessaging.framework",
"${BUILT_PRODUCTS_DIR}/GoogleDataTransport/GoogleDataTransport.framework",
"${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
"${PODS_ROOT}/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework",
"${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework",
"${BUILT_PRODUCTS_DIR}/Reachability/Reachability.framework",
"${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework",
"${BUILT_PRODUCTS_DIR}/SwiftyGif/SwiftyGif.framework",
"${BUILT_PRODUCTS_DIR}/TOCropViewController/TOCropViewController.framework",
"${BUILT_PRODUCTS_DIR}/connectivity/connectivity.framework",
"${BUILT_PRODUCTS_DIR}/emoji_picker/emoji_picker.framework",
"${BUILT_PRODUCTS_DIR}/file_picker/file_picker.framework",
"${BUILT_PRODUCTS_DIR}/image_cropper/image_cropper.framework",
"${BUILT_PRODUCTS_DIR}/image_picker/image_picker.framework",
"${BUILT_PRODUCTS_DIR}/libwebp/libwebp.framework",
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
"${BUILT_PRODUCTS_DIR}/package_info/package_info.framework",
"${BUILT_PRODUCTS_DIR}/path_provider/path_provider.framework",
"${BUILT_PRODUCTS_DIR}/record_mp3/record_mp3.framework",
"${BUILT_PRODUCTS_DIR}/shared_preferences/shared_preferences.framework",
"${BUILT_PRODUCTS_DIR}/sqflite/sqflite.framework",
"${BUILT_PRODUCTS_DIR}/url_launcher/url_launcher.framework",
"${BUILT_PRODUCTS_DIR}/video_player/video_player.framework",
"${BUILT_PRODUCTS_DIR}/video_thumbnail/video_thumbnail.framework",
"${BUILT_PRODUCTS_DIR}/wakelock/wakelock.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DKImagePickerController.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DKPhotoGallery.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FMDB.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCore.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreDiagnostics.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseInstallations.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseInstanceID.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseMessaging.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleDataTransport.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyGif.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TOCropViewController.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/connectivity.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/emoji_picker.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/file_picker.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/image_cropper.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/image_picker.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libwebp.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/package_info.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/record_mp3.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqflite.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_player.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_thumbnail.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/wakelock.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@ -238,6 +400,14 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
8F2AEBBA26394110007DF92A /* LaunchScreenForez.storyboard */ = {
isa = PBXVariantGroup;
children = (
8F2AEBBB26394110007DF92A /* Base */,
);
name = LaunchScreenForez.storyboard;
sourceTree = "<group>";
};
97C146FA1CF9000F007C117D /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
@ -257,9 +427,8 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
249021D3217E4FDB00AE95B9 /* Profile */ = {
249021D3217E4FDB00AE95B9 /* Profile-comunic */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@ -303,15 +472,18 @@
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Profile;
name = "Profile-comunic";
};
249021D4217E4FDB00AE95B9 /* Profile */ = {
249021D4217E4FDB00AE95B9 /* Profile-comunic */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
APP_DISPLAY_NAME = Comunic;
APP_LAUNCH_STORYBOARD_NAME = LaunchScreen;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = S8QB4VV633;
DEVELOPMENT_TEAM = QRU542F2B8;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@ -323,15 +495,14 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = org.communiquons.comunic;
PRODUCT_BUNDLE_IDENTIFIER = org.PierreHubert.comunic;
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
name = Profile;
name = "Profile-comunic";
};
97C147031CF9000F007C117D /* Debug */ = {
8F2AEBB2263934FA007DF92A /* Debug-forez */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@ -381,11 +552,37 @@
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
name = "Debug-forez";
};
97C147041CF9000F007C117D /* Release */ = {
8F2AEBB3263934FA007DF92A /* Debug-forez */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
APP_DISPLAY_NAME = "#Forez";
APP_LAUNCH_STORYBOARD_NAME = LaunchScreenForez;
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-forez";
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = QRU542F2B8;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = org.PierreHubert.forez;
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
name = "Debug-forez";
};
8F2AEBB426393506007DF92A /* Release-forez */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@ -429,37 +626,18 @@
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
name = "Release-forez";
};
97C147061CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = org.communiquons.comunic;
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
};
97C147071CF9000F007C117D /* Release */ = {
8F2AEBB526393506007DF92A /* Release-forez */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
APP_DISPLAY_NAME = "#Forez";
APP_LAUNCH_STORYBOARD_NAME = LaunchScreenForez;
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-forez";
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = QRU542F2B8;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@ -471,11 +649,239 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = org.communiquons.comunic;
PRODUCT_BUNDLE_IDENTIFIER = org.PierreHubert.forez;
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;
name = "Release-forez";
};
8F2AEBB62639350E007DF92A /* Profile-forez */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = "Profile-forez";
};
8F2AEBB72639350E007DF92A /* Profile-forez */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
APP_DISPLAY_NAME = "#Forez";
APP_LAUNCH_STORYBOARD_NAME = LaunchScreenForez;
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-forez";
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = QRU542F2B8;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = org.PierreHubert.forez;
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
name = "Profile-forez";
};
97C147031CF9000F007C117D /* Debug-comunic */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = "Debug-comunic";
};
97C147041CF9000F007C117D /* Release-comunic */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = "Release-comunic";
};
97C147061CF9000F007C117D /* Debug-comunic */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
APP_DISPLAY_NAME = Comunic;
APP_LAUNCH_STORYBOARD_NAME = LaunchScreen;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = QRU542F2B8;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = org.PierreHubert.comunic;
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
name = "Debug-comunic";
};
97C147071CF9000F007C117D /* Release-comunic */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
APP_DISPLAY_NAME = Comunic;
APP_LAUNCH_STORYBOARD_NAME = LaunchScreen;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = QRU542F2B8;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = org.PierreHubert.comunic;
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
name = "Release-comunic";
};
/* End XCBuildConfiguration section */
@ -483,22 +889,28 @@
97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
97C147031CF9000F007C117D /* Debug */,
97C147041CF9000F007C117D /* Release */,
249021D3217E4FDB00AE95B9 /* Profile */,
97C147031CF9000F007C117D /* Debug-comunic */,
8F2AEBB2263934FA007DF92A /* Debug-forez */,
97C147041CF9000F007C117D /* Release-comunic */,
8F2AEBB426393506007DF92A /* Release-forez */,
249021D3217E4FDB00AE95B9 /* Profile-comunic */,
8F2AEBB62639350E007DF92A /* Profile-forez */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
defaultConfigurationName = "Release-comunic";
};
97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
97C147061CF9000F007C117D /* Debug */,
97C147071CF9000F007C117D /* Release */,
249021D4217E4FDB00AE95B9 /* Profile */,
97C147061CF9000F007C117D /* Debug-comunic */,
8F2AEBB3263934FA007DF92A /* Debug-forez */,
97C147071CF9000F007C117D /* Release-comunic */,
8F2AEBB526393506007DF92A /* Release-forez */,
249021D4217E4FDB00AE95B9 /* Profile-comunic */,
8F2AEBB72639350E007DF92A /* Profile-forez */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
defaultConfigurationName = "Release-comunic";
};
/* End XCConfigurationList section */
};

View File

@ -2,6 +2,6 @@
<Workspace
version = "1.0">
<FileRef
location = "group:Runner.xcodeproj">
location = "self:">
</FileRef>
</Workspace>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreviewsEnabled</key>
<false/>
</dict>
</plist>

View File

@ -23,13 +23,10 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
buildConfiguration = "Debug-comunic"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
@ -39,14 +36,13 @@
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
buildConfiguration = "Debug-comunic"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
@ -63,11 +59,9 @@
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Profile"
buildConfiguration = "Profile-comunic"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
@ -84,10 +78,10 @@
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
buildConfiguration = "Debug-comunic">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
buildConfiguration = "Release-comunic"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1220"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug-forez"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug-forez"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Releas-forez"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug-forez">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Releas-forez"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -4,4 +4,7 @@
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreviewsEnabled</key>
<false/>
</dict>
</plist>

View File

@ -0,0 +1,13 @@
import UIKit
import Flutter
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1 @@
{"images":[{"size":"20x20","idiom":"iphone","filename":"AppIcon-forez-20x20@2x.png","scale":"2x"},{"size":"20x20","idiom":"iphone","filename":"AppIcon-forez-20x20@3x.png","scale":"3x"},{"size":"29x29","idiom":"iphone","filename":"AppIcon-forez-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"iphone","filename":"AppIcon-forez-29x29@2x.png","scale":"2x"},{"size":"29x29","idiom":"iphone","filename":"AppIcon-forez-29x29@3x.png","scale":"3x"},{"size":"40x40","idiom":"iphone","filename":"AppIcon-forez-40x40@2x.png","scale":"2x"},{"size":"40x40","idiom":"iphone","filename":"AppIcon-forez-40x40@3x.png","scale":"3x"},{"size":"60x60","idiom":"iphone","filename":"AppIcon-forez-60x60@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"AppIcon-forez-60x60@3x.png","scale":"3x"},{"size":"20x20","idiom":"ipad","filename":"AppIcon-forez-20x20@1x.png","scale":"1x"},{"size":"20x20","idiom":"ipad","filename":"AppIcon-forez-20x20@2x.png","scale":"2x"},{"size":"29x29","idiom":"ipad","filename":"AppIcon-forez-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"ipad","filename":"AppIcon-forez-29x29@2x.png","scale":"2x"},{"size":"40x40","idiom":"ipad","filename":"AppIcon-forez-40x40@1x.png","scale":"1x"},{"size":"40x40","idiom":"ipad","filename":"AppIcon-forez-40x40@2x.png","scale":"2x"},{"size":"76x76","idiom":"ipad","filename":"AppIcon-forez-76x76@1x.png","scale":"1x"},{"size":"76x76","idiom":"ipad","filename":"AppIcon-forez-76x76@2x.png","scale":"2x"},{"size":"83.5x83.5","idiom":"ipad","filename":"AppIcon-forez-83.5x83.5@2x.png","scale":"2x"},{"size":"1024x1024","idiom":"ios-marketing","filename":"AppIcon-forez-1024x1024@1x.png","scale":"1x"}],"info":{"version":1,"author":"xcode"}}

View File

@ -1,122 +1,122 @@
{
"images" : [
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@3x.png",
"scale" : "3x"
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
"idiom" : "iphone",
"scale" : "1x",
"size" : "29x29"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@3x.png",
"scale" : "3x"
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@3x.png",
"scale" : "3x"
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@2x.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"filename" : "Icon-App-60x60@3x.png",
"scale" : "3x"
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@1x.png",
"scale" : "1x"
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@1x.png",
"scale" : "1x"
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@1x.png",
"scale" : "1x"
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@2x.png",
"scale" : "2x"
},
{
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "Icon-App-83.5x83.5@2x.png",
"scale" : "2x"
"scale" : "2x",
"size" : "76x76"
},
{
"filename" : "Icon-App-83.5x83.5@2x.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "Icon-App-1024x1024@1x.png",
"scale" : "1x"
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 862 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 862 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

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