Compare commits
392 Commits
Author | SHA1 | Date | |
---|---|---|---|
18cb8be655 | |||
c5ee235ebd | |||
a24bb147c8 | |||
ae56635564 | |||
c02f6f1deb | |||
31fed62616 | |||
aff7e7434c | |||
f18b632ac8 | |||
b14eae6689 | |||
bae83430ab | |||
2c44793def | |||
b86a456a03 | |||
e969c85188 | |||
de8b4f7fb4 | |||
f624971717 | |||
49a1098a28 | |||
64bbce2084 | |||
504be2e5ef | |||
79ed8e934e | |||
1bd7840be6 | |||
e80232931e | |||
20b19d0a4a | |||
ec16984b8a | |||
80a1c4e0c4 | |||
512b058d34 | |||
73f20a543d | |||
2ee4590364 | |||
2a50190e94 | |||
5040fbb101 | |||
11829273e2 | |||
56c5eb335b | |||
0bd7426813 | |||
75c596226b | |||
a0abdc4f1b | |||
2ac5caaf96 | |||
98354ee3cc | |||
9e6d3761fe | |||
48c9ee37b6 | |||
41446f0e5b | |||
0f9a59b4a7 | |||
f0f7096c94 | |||
adbc036c16 | |||
45e8f34c81 | |||
06312512a6 | |||
5398970868 | |||
820491b09a | |||
7a0b44e446 | |||
299a95ea45 | |||
3a997cdc56 | |||
ab2c5da0da | |||
2424fd38d6 | |||
3c08384a4f | |||
c199540aff | |||
49a9186978 | |||
1f3230363e | |||
1a4988d192 | |||
cd7cafe315 | |||
42b4f99efa | |||
173487f801 | |||
61e279f719 | |||
94ae3434e4 | |||
78ae2a574a | |||
75b06e7df8 | |||
71a72d4f04 | |||
90b3ffbe81 | |||
bfe932c053 | |||
4fd8c4d613 | |||
ecc4f5bffe | |||
c849ee0bac | |||
04114dede1 | |||
fff33f907a | |||
9a82301c52 | |||
48ececf93c | |||
bc6068c2a1 | |||
5b680bb922 | |||
2b05fbda35 | |||
30494ff74a | |||
062abc5a03 | |||
21506f769e | |||
e180f0bc13 | |||
7ae50e21a4 | |||
ae75429b1d | |||
f2380ba60a | |||
b4140e61ad | |||
aa44688d66 | |||
45cd7f1481 | |||
a076c08429 | |||
fa8c1f46a1 | |||
0b4306990a | |||
4e7950582a | |||
3c179d4b83 | |||
622c1a5abf | |||
48eb525f18 | |||
acb24b0b36 | |||
b9fe15e190 | |||
98b9c44315 | |||
1f0fa1faaa | |||
a92664ac81 | |||
06d1d08f6d | |||
77030609c0 | |||
6470e2145c | |||
e7b4574920 | |||
82464a8a77 | |||
8d84c52570 | |||
34355eceed | |||
90aca5132a | |||
3c8bdd380f | |||
473ed0d95c | |||
979be989ac | |||
ffba5530ec | |||
5d080671c3 | |||
f018e78047 | |||
3ed56eaa3d | |||
bce087fcce | |||
946bef045b | |||
96b737de67 | |||
d142a0de3b | |||
a682b1c881 | |||
5f12ab29aa | |||
1e958f9d05 | |||
05245ae98c | |||
d1144346e5 | |||
4b92b8fe55 | |||
6dccb21be6 | |||
79458759c6 | |||
76a27dd1df | |||
9de39f4caa | |||
82dd07c4d4 | |||
908095c1d1 | |||
4192f374f7 | |||
5514588571 | |||
db0e035cdd | |||
14074617bd | |||
7ed3a1810f | |||
508286423b | |||
3555c602e9 | |||
6ea573df03 | |||
4cd1d2aee5 | |||
80623c75be | |||
8a581d158a | |||
5da8a64d3d | |||
f830ae20bb | |||
027ea9bb81 | |||
36ef79a169 | |||
e010a14a59 | |||
4a68a4a86a | |||
c34f750254 | |||
3ea02ea98c | |||
f92846cb76 | |||
5ab21bd63e | |||
db04366f56 | |||
5cb7fced5b | |||
5a751ae81f | |||
7147ca65e6 | |||
8802a52816 | |||
8e8a3c711d | |||
fae18f0abd | |||
56f92173f2 | |||
38d3f4de8d | |||
c04f85c40b | |||
ecd11fbf29 | |||
616755aa38 | |||
a07c7af715 | |||
de7feb36ce | |||
88217202f8 | |||
7db08f2653 | |||
64c71450ff | |||
90996d6be7 | |||
621efae92b | |||
44b6fb65bc | |||
c4790635df | |||
4ed382a7c4 | |||
e3ccef537a | |||
229491cd79 | |||
1de7e699d7 | |||
e301b0e95b | |||
0edea3edd4 | |||
18d3ae6955 | |||
1129726bbd | |||
e6c645f1e8 | |||
d178e8b1c3 | |||
0cd6ed284b | |||
1fa4ed59d4 | |||
e78afa290c | |||
306271cfb5 | |||
522ef8e471 | |||
46f9c917b5 | |||
a022e8bfd1 | |||
2292454830 | |||
d980239a68 | |||
00f044be72 | |||
da876f5978 | |||
96fb14e7de | |||
1f0abe9c2b | |||
6baf02e258 | |||
91139e25db | |||
532d2412e3 | |||
eeefaf87f3 | |||
116e6ce66d | |||
899270961a | |||
7c8a82566f | |||
2533c23703 | |||
9c61252610 | |||
f6e45fcc76 | |||
bd78f7b198 | |||
1bf41bcc20 | |||
ab60593f12 | |||
9555d35521 | |||
92ab82d7a1 | |||
7bfbc85d5f | |||
dafa9e157a | |||
d426bf1eb6 | |||
7ec872d833 | |||
95a38e9e8d | |||
c2ce5ca05f | |||
dc23826f1a | |||
f5ad2129d4 | |||
bdbdc2c790 | |||
5fd74f9047 | |||
4f72b59265 | |||
f995003306 | |||
efe60a63de | |||
bf7e63fdd0 | |||
566a5037bb | |||
2c2475dc22 | |||
bdcd0a2e64 | |||
447cdac476 | |||
ed5d48a0b9 | |||
c96d4e9ff0 | |||
320c7b4a4c | |||
f0f2f06ec2 | |||
0c75575a70 | |||
2857440d0c | |||
d9662ed189 | |||
4652694eb9 | |||
f05462e333 | |||
752cdb04a5 | |||
bf53babf53 | |||
0af31bc3a0 | |||
3520d5db58 | |||
6e274fa21a | |||
cc760c5a24 | |||
862401755d | |||
e44a8add98 | |||
1400bbbeb7 | |||
7e9a594bae | |||
db49b6fa6b | |||
612fc7b0d9 | |||
38c639331f | |||
150ecf7b52 | |||
15ba251440 | |||
f546cdb060 | |||
144417bc56 | |||
4e2c2317e0 | |||
b76220705f | |||
4db2120de9 | |||
662c4ab3eb | |||
7497fc5c65 | |||
5bca30b634 | |||
5be678615c | |||
661475dec7 | |||
1d0609f66e | |||
66d8fbd234 | |||
0fb83079a6 | |||
22f27a24de | |||
5773981750 | |||
054b2a1d32 | |||
07b42df06a | |||
6d1fc388d0 | |||
bd548fe532 | |||
a97ac81de2 | |||
1ba7784324 | |||
160a3e1f27 | |||
20e486fe26 | |||
afeb8c4a7d | |||
7dd91df471 | |||
cc73782da9 | |||
ca948e4b28 | |||
ed109d8c26 | |||
a14a701f4d | |||
cc553e803d | |||
0920a36cef | |||
e31c91a55c | |||
bd794f8079 | |||
e474725965 | |||
4a905174bf | |||
1aa39ea64f | |||
577b935e92 | |||
63be2e3843 | |||
af15c1ccbd | |||
b48af1d638 | |||
e8c74a8685 | |||
06ab90de1e | |||
6e4207f517 | |||
bc0dcbdbb1 | |||
a994d9978c | |||
30b3dc6921 | |||
b1b7772532 | |||
f8910c8f8b | |||
e70aaabbc9 | |||
ea45bf828c | |||
2a00530126 | |||
ad2cf6d4f9 | |||
230cb2c018 | |||
819e2a7590 | |||
fb80f3bd52 | |||
f9db9aa632 | |||
a630a5ae79 | |||
ed9f5e396c | |||
4614f3ae2e | |||
d10b1d0d22 | |||
99ae726c0a | |||
642f5e11fc | |||
cbbda7237b | |||
0b2f939376 | |||
fdec22c28a | |||
bd73e265cc | |||
5d0ead5889 | |||
ba60fa9e37 | |||
f54cc22fc6 | |||
d8b2dd2599 | |||
7ccc7a492e | |||
1e0e2fca52 | |||
dbb2a3f1a1 | |||
bd5ed8fb33 | |||
3546bacc83 | |||
201200299c | |||
c1196a6359 | |||
bedc3f5277 | |||
5a25769b71 | |||
05c806b358 | |||
70eb088756 | |||
b0cfeec513 | |||
e35a0d2fd4 | |||
e638398b2e | |||
f3626f233f | |||
ece9164d93 | |||
e7b1beca50 | |||
6fc1a263d2 | |||
b84eba59e3 | |||
8f7ca14586 | |||
19d4e1d31c | |||
701d5d3c27 | |||
ec4ca238de | |||
f70717a987 | |||
e02ab259b6 | |||
a4181e3d42 | |||
858f81d05e | |||
46affd4e68 | |||
3518594eea | |||
8f2574a555 | |||
3257fd865f | |||
f9502d1700 | |||
b9babd43a8 | |||
c8ca80f6e7 | |||
217111e3fd | |||
8705aa1b0d | |||
0458d5431c | |||
75a80b1018 | |||
52d217a89c | |||
1f1ed0cda4 | |||
6c00e0bcab | |||
2989e98c50 | |||
08c77340a0 | |||
a23b76b552 | |||
dacccf57b5 | |||
b094361f5a | |||
1ee9a2c5cc | |||
25a25e4c70 | |||
d4a0748249 | |||
1ea286f3ef | |||
a32e968992 | |||
0cd9371460 | |||
1b0a3fd24b | |||
54e37b3e69 | |||
2519adeef4 | |||
4f9001cb2b | |||
613ceadfaa | |||
459757b292 | |||
e399f71a78 | |||
c5d1512375 | |||
16ec9a8e00 | |||
c19cbaac88 | |||
277c08048d | |||
482e938744 | |||
1d0bd45632 | |||
3a39387365 | |||
4d885affb9 | |||
0ad8d5c393 | |||
e5ed4fadda | |||
581059cb1d | |||
0c526abfe8 |
5
.gitignore
vendored
@ -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
@ -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
|
@ -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.
|
||||
|
@ -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'
|
@ -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>
|
39
android/app/src/beta/google-services.json
Normal 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"
|
||||
}
|
@ -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>
|
||||
|
11
android/app/src/forez/AndroidManifest.xml
Normal 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>
|
40
android/app/src/forez/google-services.json
Normal 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"
|
||||
}
|
BIN
android/app/src/forez/ic_launcher-playstore.png
Normal file
After Width: | Height: | Size: 19 KiB |
@ -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>
|
BIN
android/app/src/forez/res/drawable-hdpi/ic_notifications.png
Normal file
After Width: | Height: | Size: 480 B |
BIN
android/app/src/forez/res/drawable-mdpi/ic_notifications.png
Normal file
After Width: | Height: | Size: 308 B |
BIN
android/app/src/forez/res/drawable-xhdpi/ic_notifications.png
Normal file
After Width: | Height: | Size: 663 B |
BIN
android/app/src/forez/res/drawable-xxhdpi/ic_notifications.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
@ -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>
|
37
android/app/src/forez/res/drawable/ic_wheat.xml
Normal 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>
|
BIN
android/app/src/forez/res/drawable/ic_wheat_white.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
18
android/app/src/forez/res/drawable/launch_background.xml
Normal 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>
|
@ -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>
|
@ -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>
|
BIN
android/app/src/forez/res/mipmap-hdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
android/app/src/forez/res/mipmap-hdpi/ic_launcher_round.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
android/app/src/forez/res/mipmap-mdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
android/app/src/forez/res/mipmap-mdpi/ic_launcher_round.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
android/app/src/forez/res/mipmap-xhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
android/app/src/forez/res/mipmap-xhdpi/ic_launcher_round.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
android/app/src/forez/res/mipmap-xxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
android/app/src/forez/res/mipmap-xxhdpi/ic_launcher_round.png
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
android/app/src/forez/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
android/app/src/forez/res/mipmap-xxxhdpi/ic_launcher_round.png
Normal file
After Width: | Height: | Size: 11 KiB |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_launcher_background">#1B5E20</color>
|
||||
</resources>
|
18
android/app/src/forez/res/values/styles.xml
Normal 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>
|
@ -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>
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
@ -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));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
@ -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());
|
||||
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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>
|
BIN
android/app/src/main/res/drawable-hdpi/ic_notifications.png
Normal file
After Width: | Height: | Size: 390 B |
BIN
android/app/src/main/res/drawable-mdpi/ic_notifications.png
Normal file
After Width: | Height: | Size: 280 B |
BIN
android/app/src/main/res/drawable-xhdpi/ic_notifications.png
Normal file
After Width: | Height: | Size: 509 B |
BIN
android/app/src/main/res/drawable-xxhdpi/ic_notifications.png
Normal file
After Width: | Height: | Size: 750 B |
4
android/app/src/main/res/values-fr/strings.xml
Normal 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>
|
18
android/app/src/main/res/values-night/styles.xml
Normal 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>
|
4
android/app/src/main/res/values/strings.xml
Normal 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>
|
68
android/app/src/stable/google-services.json
Normal 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"
|
||||
}
|
@ -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
|
||||
}
|
||||
}
|
@ -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
|
||||
|
BIN
assets/icon/comunic_icon.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/icon/forez_icon.png
Normal file
After Width: | Height: | Size: 19 KiB |
@ -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
@ -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
@ -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
@ -0,0 +1 @@
|
||||
flutter build ipa --flavor comunic -t lib/main_online.dart
|
1
build_forez_ios.sh
Executable file
@ -0,0 +1 @@
|
||||
flutter build ipa --flavor forez -t lib/forez/main_forez_online.dart
|
4
flutter_launcher_icons-forez.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
flutter_icons:
|
||||
android: false
|
||||
ios: true
|
||||
image_path: assets/icon/forez_icon.png
|
32
ios/.gitignore
vendored
Normal 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
|
@ -1 +1,2 @@
|
||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||
#include "Generated.xcconfig"
|
||||
|
@ -1 +1,2 @@
|
||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||
#include "Generated.xcconfig"
|
||||
|
83
ios/Podfile
Normal 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
@ -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
|
@ -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 */
|
||||
};
|
||||
|
@ -2,6 +2,6 @@
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "group:Runner.xcodeproj">
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
@ -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>
|
@ -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>
|
@ -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>
|
78
ios/Runner.xcodeproj/xcshareddata/xcschemes/forez.xcscheme
Normal 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>
|
3
ios/Runner.xcworkspace/contents.xcworkspacedata
generated
@ -4,4 +4,7 @@
|
||||
<FileRef
|
||||
location = "group:Runner.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:Pods/Pods.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
@ -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>
|
@ -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>
|
13
ios/Runner/AppDelegate.swift
Normal 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)
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 409 B |
After Width: | Height: | Size: 1007 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 688 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 1007 B |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 5.5 KiB |
@ -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"}}
|
@ -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
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 564 B After Width: | Height: | Size: 432 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 862 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 632 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 862 B |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.4 KiB |