Browse Source

Ejected to bare

Arnaud Vergnet 3 years ago
parent
commit
04ad4901c1
51 changed files with 1931 additions and 90 deletions
  1. 67
    0
      .gitignore
  2. 2
    2
      App.js
  3. 55
    0
      android/app/BUCK
  4. 211
    0
      android/app/build.gradle
  5. 19
    0
      android/app/build_defs.bzl
  6. 13
    0
      android/app/proguard-rules.pro
  7. 7
    0
      android/app/src/debug/AndroidManifest.xml
  8. 41
    0
      android/app/src/main/AndroidManifest.xml
  9. 0
    0
      android/app/src/main/assets/app.bundle
  10. 1
    0
      android/app/src/main/assets/app.manifest
  11. 40
    0
      android/app/src/main/java/fr/amicaleinsat/application/MainActivity.java
  12. 90
    0
      android/app/src/main/java/fr/amicaleinsat/application/MainApplication.java
  13. 28
    0
      android/app/src/main/java/fr/amicaleinsat/application/generated/BasePackageList.java
  14. BIN
      android/app/src/main/res/mipmap-hdpi/ic_launcher.png
  15. BIN
      android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
  16. BIN
      android/app/src/main/res/mipmap-mdpi/ic_launcher.png
  17. BIN
      android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
  18. BIN
      android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
  19. BIN
      android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
  20. BIN
      android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  21. BIN
      android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
  22. BIN
      android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  23. BIN
      android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
  24. 7
    0
      android/app/src/main/res/values/colors.xml
  25. 3
    0
      android/app/src/main/res/values/strings.xml
  26. 10
    0
      android/app/src/main/res/values/styles.xml
  27. 41
    0
      android/build.gradle
  28. BIN
      android/gradle/wrapper/gradle-wrapper.jar
  29. 5
    0
      android/gradle/wrapper/gradle-wrapper.properties
  30. 188
    0
      android/gradlew
  31. 100
    0
      android/gradlew.bat
  32. 9
    0
      android/settings.gradle
  33. 3
    69
      app.json
  34. 37
    0
      eject.txt
  35. 8
    0
      index.js
  36. 437
    0
      ios/Campus.xcodeproj/project.pbxproj
  37. 129
    0
      ios/Campus.xcodeproj/xcshareddata/xcschemes/Campus.xcscheme
  38. 20
    0
      ios/Campus/AppDelegate.h
  39. 81
    0
      ios/Campus/AppDelegate.m
  40. 42
    0
      ios/Campus/Base.lproj/LaunchScreen.xib
  41. 38
    0
      ios/Campus/Images.xcassets/AppIcon.appiconset/Contents.json
  42. 6
    0
      ios/Campus/Images.xcassets/Contents.json
  43. 95
    0
      ios/Campus/Info.plist
  44. 10
    0
      ios/Campus/Supporting/Expo.plist
  45. 0
    0
      ios/Campus/Supporting/app.bundle
  46. 1
    0
      ios/Campus/Supporting/app.manifest
  47. 5
    0
      ios/Campus/application.entitlements
  48. 16
    0
      ios/Campus/main.m
  49. 46
    0
      ios/Podfile
  50. 18
    17
      package.json
  51. 2
    2
      src/utils/withCollapsible.js

+ 67
- 0
.gitignore View File

@@ -15,3 +15,70 @@ web-report/
15 15
 !/.idea/
16 16
 /.idea/*
17 17
 !/.idea/runConfigurations
18
+
19
+# The following contents were automatically generated by expo-cli during eject
20
+# ----------------------------------------------------------------------------
21
+
22
+# OSX
23
+#
24
+.DS_Store
25
+
26
+# Xcode
27
+#
28
+build/
29
+*.pbxuser
30
+!default.pbxuser
31
+*.mode1v3
32
+!default.mode1v3
33
+*.mode2v3
34
+!default.mode2v3
35
+*.perspectivev3
36
+!default.perspectivev3
37
+xcuserdata
38
+*.xccheckout
39
+*.moved-aside
40
+DerivedData
41
+*.hmap
42
+*.ipa
43
+*.xcuserstate
44
+project.xcworkspace
45
+
46
+# Android/IntelliJ
47
+#
48
+build/
49
+.idea
50
+.gradle
51
+local.properties
52
+*.iml
53
+
54
+# node.js
55
+#
56
+node_modules/
57
+npm-debug.log
58
+yarn-error.log
59
+
60
+# BUCK
61
+buck-out/
62
+\.buckd/
63
+*.keystore
64
+
65
+# fastlane
66
+#
67
+# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
68
+# screenshots whenever they are needed.
69
+# For more information about the recommended setup visit:
70
+# https://docs.fastlane.tools/best-practices/source-control/
71
+
72
+*/fastlane/report.xml
73
+*/fastlane/Preview.html
74
+*/fastlane/screenshots
75
+
76
+# Bundle artifacts
77
+*.jsbundle
78
+
79
+# CocoaPods
80
+/ios/Pods/
81
+
82
+# Expo
83
+.expo/*
84
+/android/gradle.properties

+ 2
- 2
App.js View File

@@ -5,7 +5,6 @@ import {Platform, StatusBar, View, YellowBox} from 'react-native';
5 5
 import LocaleManager from './src/managers/LocaleManager';
6 6
 import AsyncStorageManager from "./src/managers/AsyncStorageManager";
7 7
 import CustomIntroSlider from "./src/components/Overrides/CustomIntroSlider";
8
-import {AppLoading} from 'expo';
9 8
 import type {CustomTheme} from "./src/managers/ThemeManager";
10 9
 import ThemeManager from './src/managers/ThemeManager';
11 10
 import {NavigationContainer} from '@react-navigation/native';
@@ -72,6 +71,7 @@ export default class App extends React.Component<Props, State> {
72 71
             this.onLoadFinished();
73 72
         });
74 73
         // console.log(Linking.makeUrl('path/into/app', { hello: 'world', goodbye: 'now' }))
74
+        console.log(global.HermesInternal !== null);
75 75
     }
76 76
 
77 77
     /**
@@ -182,7 +182,7 @@ export default class App extends React.Component<Props, State> {
182 182
      */
183 183
     render() {
184 184
         if (this.state.isLoading) {
185
-            return <AppLoading/>;
185
+            return null;
186 186
         } else if (this.state.showIntro || this.state.showUpdate || this.state.showAprilFools) {
187 187
             return <CustomIntroSlider
188 188
                 onDone={this.onIntroDone}

+ 55
- 0
android/app/BUCK View File

@@ -0,0 +1,55 @@
1
+# To learn about Buck see [Docs](https://buckbuild.com/).
2
+# To run your application with Buck:
3
+# - install Buck
4
+# - `npm start` - to start the packager
5
+# - `cd android`
6
+# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
7
+# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
8
+# - `buck install -r android/app` - compile, install and run application
9
+#
10
+
11
+load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
12
+
13
+lib_deps = []
14
+
15
+create_aar_targets(glob(["libs/*.aar"]))
16
+
17
+create_jar_targets(glob(["libs/*.jar"]))
18
+
19
+android_library(
20
+    name = "all-libs",
21
+    exported_deps = lib_deps,
22
+)
23
+
24
+android_library(
25
+    name = "app-code",
26
+    srcs = glob([
27
+        "src/main/java/**/*.java",
28
+    ]),
29
+    deps = [
30
+        ":all-libs",
31
+        ":build_config",
32
+        ":res",
33
+    ],
34
+)
35
+
36
+android_build_config(
37
+    name = "build_config",
38
+    package = "fr.amicaleinsat.application",
39
+)
40
+
41
+android_resource(
42
+    name = "res",
43
+    package = "fr.amicaleinsat.application",
44
+    res = "src/main/res",
45
+)
46
+
47
+android_binary(
48
+    name = "app",
49
+    keystore = "//android/keystores:debug",
50
+    manifest = "src/main/AndroidManifest.xml",
51
+    package_type = "debug",
52
+    deps = [
53
+        ":app-code",
54
+    ],
55
+)

+ 211
- 0
android/app/build.gradle View File

@@ -0,0 +1,211 @@
1
+apply plugin: "com.android.application"
2
+
3
+import com.android.build.OutputFile
4
+
5
+/**
6
+ * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
7
+ * and bundleReleaseJsAndAssets).
8
+ * These basically call `react-native bundle` with the correct arguments during the Android build
9
+ * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
10
+ * bundle directly from the development server. Below you can see all the possible configurations
11
+ * and their defaults. If you decide to add a configuration block, make sure to add it before the
12
+ * `apply from: "../../node_modules/react-native/react.gradle"` line.
13
+ *
14
+ * project.ext.react = [
15
+ *   // the name of the generated asset file containing your JS bundle
16
+ *   bundleAssetName: "index.android.bundle",
17
+ *
18
+ *   // the entry file for bundle generation
19
+ *   entryFile: "index.android.js",
20
+ *
21
+ *   // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format
22
+ *   bundleCommand: "ram-bundle",
23
+ *
24
+ *   // whether to bundle JS and assets in debug mode
25
+ *   bundleInDebug: false,
26
+ *
27
+ *   // whether to bundle JS and assets in release mode
28
+ *   bundleInRelease: true,
29
+ *
30
+ *   // whether to bundle JS and assets in another build variant (if configured).
31
+ *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
32
+ *   // The configuration property can be in the following formats
33
+ *   //         'bundleIn${productFlavor}${buildType}'
34
+ *   //         'bundleIn${buildType}'
35
+ *   // bundleInFreeDebug: true,
36
+ *   // bundleInPaidRelease: true,
37
+ *   // bundleInBeta: true,
38
+ *
39
+ *   // whether to disable dev mode in custom build variants (by default only disabled in release)
40
+ *   // for example: to disable dev mode in the staging build type (if configured)
41
+ *   devDisabledInStaging: true,
42
+ *   // The configuration property can be in the following formats
43
+ *   //         'devDisabledIn${productFlavor}${buildType}'
44
+ *   //         'devDisabledIn${buildType}'
45
+ *
46
+ *   // the root of your project, i.e. where "package.json" lives
47
+ *   root: "../../",
48
+ *
49
+ *   // where to put the JS bundle asset in debug mode
50
+ *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
51
+ *
52
+ *   // where to put the JS bundle asset in release mode
53
+ *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
54
+ *
55
+ *   // where to put drawable resources / React Native assets, e.g. the ones you use via
56
+ *   // require('./image.png')), in debug mode
57
+ *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
58
+ *
59
+ *   // where to put drawable resources / React Native assets, e.g. the ones you use via
60
+ *   // require('./image.png')), in release mode
61
+ *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
62
+ *
63
+ *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
64
+ *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
65
+ *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
66
+ *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
67
+ *   // for example, you might want to remove it from here.
68
+ *   inputExcludes: ["android/**", "ios/**"],
69
+ *
70
+ *   // override which node gets called and with what additional arguments
71
+ *   nodeExecutableAndArgs: ["node"],
72
+ *
73
+ *   // supply additional arguments to the packager
74
+ *   extraPackagerArgs: []
75
+ * ]
76
+ */
77
+
78
+project.ext.react = [
79
+    entryFile: "index.js",
80
+    enableHermes: true,
81
+]
82
+
83
+apply from: '../../node_modules/react-native-unimodules/gradle.groovy'
84
+apply from: "../../node_modules/react-native/react.gradle"
85
+
86
+/**
87
+ * Set this to true to create two separate APKs instead of one:
88
+ *   - An APK that only works on ARM devices
89
+ *   - An APK that only works on x86 devices
90
+ * The advantage is the size of the APK is reduced by about 4MB.
91
+ * Upload all the APKs to the Play Store and people will download
92
+ * the correct one based on the CPU architecture of their device.
93
+ */
94
+def enableSeparateBuildPerCPUArchitecture = false
95
+
96
+/**
97
+ * Run Proguard to shrink the Java bytecode in release builds.
98
+ */
99
+def enableProguardInReleaseBuilds = false
100
+
101
+/**
102
+ * The preferred build flavor of JavaScriptCore.
103
+ *
104
+ * For example, to use the international variant, you can use:
105
+ * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
106
+ *
107
+ * The international variant includes ICU i18n library and necessary data
108
+ * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
109
+ * give correct results when using with locales other than en-US.  Note that
110
+ * this variant is about 6MiB larger per architecture than default.
111
+ */
112
+def jscFlavor = 'org.webkit:android-jsc:+'
113
+
114
+/**
115
+ * Whether to enable the Hermes VM.
116
+ *
117
+ * This should be set on project.ext.react and mirrored here.  If it is not set
118
+ * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
119
+ * and the benefits of using Hermes will therefore be sharply reduced.
120
+ */
121
+def enableHermes = project.ext.react.get("enableHermes", false);
122
+
123
+android {
124
+    compileSdkVersion rootProject.ext.compileSdkVersion
125
+
126
+    compileOptions {
127
+        sourceCompatibility JavaVersion.VERSION_1_8
128
+        targetCompatibility JavaVersion.VERSION_1_8
129
+    }
130
+
131
+    defaultConfig {
132
+        applicationId 'fr.amicaleinsat.application'
133
+        minSdkVersion rootProject.ext.minSdkVersion
134
+        targetSdkVersion rootProject.ext.targetSdkVersion
135
+        versionCode 16
136
+        versionName "2.0.0"
137
+    }
138
+    splits {
139
+        abi {
140
+            reset()
141
+            enable enableSeparateBuildPerCPUArchitecture
142
+            universalApk false  // If true, also generate a universal APK
143
+            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
144
+        }
145
+    }
146
+    signingConfigs {
147
+        debug {
148
+            storeFile file('debug.keystore')
149
+            storePassword 'android'
150
+            keyAlias 'androiddebugkey'
151
+            keyPassword 'android'
152
+        }
153
+        release {
154
+            if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
155
+                storeFile file(MYAPP_UPLOAD_STORE_FILE)
156
+                storePassword MYAPP_UPLOAD_STORE_PASSWORD
157
+                keyAlias MYAPP_UPLOAD_KEY_ALIAS
158
+                keyPassword MYAPP_UPLOAD_KEY_PASSWORD
159
+            }
160
+        }
161
+    }
162
+    buildTypes {
163
+        debug {
164
+            signingConfig signingConfigs.debug
165
+        }
166
+        release {
167
+            // Caution! In production, you need to generate your own keystore file.
168
+            // see https://facebook.github.io/react-native/docs/signed-apk-android.
169
+            signingConfig signingConfigs.release
170
+            minifyEnabled enableProguardInReleaseBuilds
171
+            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
172
+        }
173
+    }
174
+    // applicationVariants are e.g. debug, release
175
+    applicationVariants.all { variant ->
176
+        variant.outputs.each { output ->
177
+            // For each separate APK per architecture, set a unique version code as described here:
178
+            // https://developer.android.com/studio/build/configure-apk-splits.html
179
+            def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
180
+            def abi = output.getFilter(OutputFile.ABI)
181
+            if (abi != null) {  // null for the universal-debug, universal-release variants
182
+                output.versionCodeOverride =
183
+                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
184
+            }
185
+
186
+        }
187
+    }
188
+}
189
+
190
+dependencies {
191
+    implementation fileTree(dir: "libs", include: ["*.jar"])
192
+    implementation "com.facebook.react:react-native:+"  // From node_modules
193
+    addUnimodulesDependencies()
194
+
195
+    if (enableHermes) {
196
+        def hermesPath = "../../node_modules/hermes-engine/android/";
197
+        debugImplementation files(hermesPath + "hermes-debug.aar")
198
+        releaseImplementation files(hermesPath + "hermes-release.aar")
199
+    } else {
200
+        implementation jscFlavor
201
+    }
202
+}
203
+
204
+// Run this once to be able to run the application with BUCK
205
+// puts all compile dependencies into folder libs for BUCK to use
206
+task copyDownloadableDepsToLibs(type: Copy) {
207
+    from configurations.compile
208
+    into 'libs'
209
+}
210
+
211
+apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

+ 19
- 0
android/app/build_defs.bzl View File

@@ -0,0 +1,19 @@
1
+"""Helper definitions to glob .aar and .jar targets"""
2
+
3
+def create_aar_targets(aarfiles):
4
+    for aarfile in aarfiles:
5
+        name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
6
+        lib_deps.append(":" + name)
7
+        android_prebuilt_aar(
8
+            name = name,
9
+            aar = aarfile,
10
+        )
11
+
12
+def create_jar_targets(jarfiles):
13
+    for jarfile in jarfiles:
14
+        name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
15
+        lib_deps.append(":" + name)
16
+        prebuilt_jar(
17
+            name = name,
18
+            binary_jar = jarfile,
19
+        )

+ 13
- 0
android/app/proguard-rules.pro View File

@@ -0,0 +1,13 @@
1
+# Add project specific ProGuard rules here.
2
+# By default, the flags in this file are appended to flags specified
3
+# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
4
+# You can edit the include path and order by changing the proguardFiles
5
+# directive in build.gradle.
6
+#
7
+# For more details, see
8
+#   http://developer.android.com/guide/developing/tools/proguard.html
9
+
10
+# Add any project specific keep options here:
11
+
12
+-keep class com.facebook.hermes.unicode.** { *; }
13
+-keep class com.facebook.jni.** { *; }

+ 7
- 0
android/app/src/debug/AndroidManifest.xml View File

@@ -0,0 +1,7 @@
1
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2
+    xmlns:tools="http://schemas.android.com/tools">
3
+
4
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
5
+
6
+    <application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" />
7
+</manifest>

+ 41
- 0
android/app/src/main/AndroidManifest.xml View File

@@ -0,0 +1,41 @@
1
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="fr.amicaleinsat.application">
2
+  <uses-permission android:name="android.permission.INTERNET"/>
3
+  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
4
+  <uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/>
5
+  <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE"/>
6
+  <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
7
+  <uses-permission android:name="android.permission.USE_FINGERPRINT"/>
8
+  <uses-permission android:name="android.permission.VIBRATE"/>
9
+  <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
10
+  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
11
+  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
12
+  <uses-permission android:name="android.permission.CAMERA" />
13
+  <uses-permission android:name="android.permission.READ_CONTACTS"/>
14
+  <uses-permission android:name="android.permission.READ_CALENDAR"/>
15
+  <uses-permission android:name="android.permission.WRITE_CALENDAR"/>
16
+  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
17
+  <uses-permission android:name="android.permission.RECORD_AUDIO"/>
18
+  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
19
+  <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
20
+  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
21
+  <uses-permission android:name="android.permission.WAKE_LOCK"/>
22
+  <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
23
+  <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme">
24
+    <meta-data android:name="com.facebook.sdk.AutoInitEnabled" android:value="false"/>
25
+    <meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled" android:value="false"/>
26
+    <meta-data android:name="com.facebook.sdk.AdvertiserIDCollectionEnabled" android:value="false"/>
27
+    <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:screenOrientation="portrait">
28
+      <intent-filter>
29
+        <action android:name="android.intent.action.MAIN"/>
30
+        <category android:name="android.intent.category.LAUNCHER"/>
31
+      </intent-filter>
32
+      <intent-filter>
33
+        <action android:name="android.intent.action.VIEW"/>
34
+        <category android:name="android.intent.category.DEFAULT"/>
35
+        <category android:name="android.intent.category.BROWSABLE"/>
36
+        <data android:scheme="campus-insat"/>
37
+      </intent-filter>
38
+    </activity>
39
+    <activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
40
+  </application>
41
+</manifest>

+ 0
- 0
android/app/src/main/assets/app.bundle View File


+ 1
- 0
android/app/src/main/assets/app.manifest View File

@@ -0,0 +1 @@
1
+{}

+ 40
- 0
android/app/src/main/java/fr/amicaleinsat/application/MainActivity.java View File

@@ -0,0 +1,40 @@
1
+package fr.amicaleinsat.application;
2
+
3
+import com.facebook.react.ReactActivity;
4
+import com.facebook.react.ReactActivityDelegate;
5
+import com.facebook.react.ReactRootView;
6
+import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
7
+import android.content.Intent;
8
+import android.content.res.Configuration;
9
+
10
+public class MainActivity extends ReactActivity {
11
+
12
+    // Added automatically by Expo Config
13
+    @Override
14
+    public void onConfigurationChanged(Configuration newConfig) {
15
+        super.onConfigurationChanged(newConfig);
16
+        Intent intent = new Intent("onConfigurationChanged");
17
+        intent.putExtra("newConfig", newConfig);
18
+        sendBroadcast(intent);
19
+    }
20
+
21
+
22
+    /**
23
+     * Returns the name of the main component registered from JavaScript.
24
+     * This is used to schedule rendering of the component.
25
+     */
26
+    @Override
27
+    protected String getMainComponentName() {
28
+        return "main";
29
+    }
30
+
31
+    @Override
32
+    protected ReactActivityDelegate createReactActivityDelegate() {
33
+        return new ReactActivityDelegate(this, getMainComponentName()) {
34
+            @Override
35
+            protected ReactRootView createRootView() {
36
+                return new RNGestureHandlerEnabledRootView(MainActivity.this);
37
+            }
38
+        };
39
+    }
40
+}

+ 90
- 0
android/app/src/main/java/fr/amicaleinsat/application/MainApplication.java View File

@@ -0,0 +1,90 @@
1
+package fr.amicaleinsat.application;
2
+
3
+import android.app.Application;
4
+import android.content.Context;
5
+
6
+import com.facebook.react.PackageList;
7
+import com.facebook.react.ReactApplication;
8
+import com.facebook.react.ReactNativeHost;
9
+import com.facebook.react.ReactPackage;
10
+import com.facebook.react.shell.MainReactPackage;
11
+import com.facebook.soloader.SoLoader;
12
+import fr.amicaleinsat.application.generated.BasePackageList;
13
+
14
+import org.unimodules.adapters.react.ReactAdapterPackage;
15
+import org.unimodules.adapters.react.ModuleRegistryAdapter;
16
+import org.unimodules.adapters.react.ReactModuleRegistryProvider;
17
+import org.unimodules.core.interfaces.Package;
18
+import org.unimodules.core.interfaces.SingletonModule;
19
+import expo.modules.constants.ConstantsPackage;
20
+import expo.modules.permissions.PermissionsPackage;
21
+import expo.modules.filesystem.FileSystemPackage;
22
+
23
+import java.lang.reflect.InvocationTargetException;
24
+import java.util.Arrays;
25
+import java.util.List;
26
+import javax.annotation.Nullable;
27
+
28
+public class MainApplication extends Application implements ReactApplication {
29
+  private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(
30
+    new BasePackageList().getPackageList(),
31
+    null
32
+  );
33
+
34
+  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
35
+    @Override
36
+    public boolean getUseDeveloperSupport() {
37
+      return BuildConfig.DEBUG;
38
+    }
39
+
40
+    @Override
41
+    protected List<ReactPackage> getPackages() {
42
+      List<ReactPackage> packages = new PackageList(this).getPackages();
43
+      packages.add(new ModuleRegistryAdapter(mModuleRegistryProvider));
44
+      return packages;
45
+    }
46
+
47
+    @Override
48
+    protected String getJSMainModuleName() {
49
+      return "index";
50
+    }
51
+  };
52
+
53
+  @Override
54
+  public ReactNativeHost getReactNativeHost() {
55
+    return mReactNativeHost;
56
+  }
57
+
58
+  @Override
59
+  public void onCreate() {
60
+    super.onCreate();
61
+    SoLoader.init(this, /* native exopackage */ false);
62
+    initializeFlipper(this); // Remove this line if you don't want Flipper enabled
63
+  }
64
+
65
+  /**
66
+   * Loads Flipper in React Native templates.
67
+   *
68
+   * @param context
69
+   */
70
+  private static void initializeFlipper(Context context) {
71
+    if (BuildConfig.DEBUG) {
72
+      try {
73
+        /*
74
+         We use reflection here to pick up the class that initializes Flipper,
75
+        since Flipper library is not available in release mode
76
+        */
77
+        Class<?> aClass = Class.forName("com.facebook.flipper.ReactNativeFlipper");
78
+        aClass.getMethod("initializeFlipper", Context.class).invoke(null, context);
79
+      } catch (ClassNotFoundException e) {
80
+        e.printStackTrace();
81
+      } catch (NoSuchMethodException e) {
82
+        e.printStackTrace();
83
+      } catch (IllegalAccessException e) {
84
+        e.printStackTrace();
85
+      } catch (InvocationTargetException e) {
86
+        e.printStackTrace();
87
+      }
88
+    }
89
+  }
90
+}

+ 28
- 0
android/app/src/main/java/fr/amicaleinsat/application/generated/BasePackageList.java View File

@@ -0,0 +1,28 @@
1
+package fr.amicaleinsat.application.generated;
2
+
3
+import java.util.Arrays;
4
+import java.util.List;
5
+import org.unimodules.core.interfaces.Package;
6
+
7
+public class BasePackageList {
8
+  public List<Package> getPackageList() {
9
+    return Arrays.<Package>asList(
10
+        new expo.modules.barcodescanner.BarCodeScannerPackage(),
11
+        new expo.modules.camera.CameraPackage(),
12
+        new expo.modules.constants.ConstantsPackage(),
13
+        new expo.modules.errorrecovery.ErrorRecoveryPackage(),
14
+        new expo.modules.filesystem.FileSystemPackage(),
15
+        new expo.modules.font.FontLoaderPackage(),
16
+        new expo.modules.imageloader.ImageLoaderPackage(),
17
+        new expo.modules.keepawake.KeepAwakePackage(),
18
+        new expo.modules.lineargradient.LinearGradientPackage(),
19
+        new expo.modules.localization.LocalizationPackage(),
20
+        new expo.modules.location.LocationPackage(),
21
+        new expo.modules.permissions.PermissionsPackage(),
22
+        new expo.modules.securestore.SecureStorePackage(),
23
+        new expo.modules.sqlite.SQLitePackage(),
24
+        new expo.modules.updates.UpdatesPackage(),
25
+        new expo.modules.webbrowser.WebBrowserPackage()
26
+    );
27
+  }
28
+}

BIN
android/app/src/main/res/mipmap-hdpi/ic_launcher.png View File


BIN
android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png View File


BIN
android/app/src/main/res/mipmap-mdpi/ic_launcher.png View File


BIN
android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png View File


BIN
android/app/src/main/res/mipmap-xhdpi/ic_launcher.png View File


BIN
android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png View File


BIN
android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png View File


BIN
android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png View File


BIN
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png View File


BIN
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png View File


+ 7
- 0
android/app/src/main/res/values/colors.xml View File

@@ -0,0 +1,7 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+<resources>
3
+  <color name="activityBackground">#ffffff</color>
4
+  <color name="navigationBarColor">#121212</color>
5
+  <color name="colorPrimaryDark">#be1522</color>
6
+  <color name="colorPrimary">#be1522</color>
7
+</resources>

+ 3
- 0
android/app/src/main/res/values/strings.xml View File

@@ -0,0 +1,3 @@
1
+<resources>
2
+    <string name="app_name">Campus</string>
3
+</resources>

+ 10
- 0
android/app/src/main/res/values/styles.xml View File

@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+<resources>
3
+  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
4
+    <item name="android:textColor">#000000</item>
5
+    <item name="android:windowBackground">@color/activityBackground</item>
6
+    <item name="android:navigationBarColor">@color/navigationBarColor</item>
7
+    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
8
+    <item name="colorPrimary">@color/colorPrimary</item>
9
+  </style>
10
+</resources>

+ 41
- 0
android/build.gradle View File

@@ -0,0 +1,41 @@
1
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
2
+
3
+buildscript {
4
+    ext {
5
+        buildToolsVersion = "28.0.3"
6
+        minSdkVersion = 21
7
+        compileSdkVersion = 28
8
+        targetSdkVersion = 28
9
+    }
10
+    repositories {
11
+        google()
12
+        jcenter()
13
+    }
14
+    dependencies {
15
+        classpath("com.android.tools.build:gradle:3.5.3")
16
+
17
+        // NOTE: Do not place your application dependencies here; they belong
18
+        // in the individual module build.gradle files
19
+    }
20
+}
21
+
22
+allprojects {
23
+    repositories {
24
+        mavenLocal()
25
+        maven {
26
+            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
27
+            url("$rootDir/../node_modules/react-native/android")
28
+        }
29
+        maven {
30
+            // Android JSC is installed from npm
31
+            url("$rootDir/../node_modules/jsc-android/dist")
32
+        }
33
+        maven {
34
+            // expo-camera bundles a custom com.google.android:cameraview
35
+            url "$rootDir/../node_modules/expo-camera/android/maven"
36
+        }
37
+        google()
38
+        jcenter()
39
+        maven { url 'https://jitpack.io' }
40
+    }
41
+}

BIN
android/gradle/wrapper/gradle-wrapper.jar View File


+ 5
- 0
android/gradle/wrapper/gradle-wrapper.properties View File

@@ -0,0 +1,5 @@
1
+distributionBase=GRADLE_USER_HOME
2
+distributionPath=wrapper/dists
3
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.3-all.zip
4
+zipStoreBase=GRADLE_USER_HOME
5
+zipStorePath=wrapper/dists

+ 188
- 0
android/gradlew View File

@@ -0,0 +1,188 @@
1
+#!/usr/bin/env sh
2
+
3
+#
4
+# Copyright 2015 the original author or authors.
5
+#
6
+# Licensed under the Apache License, Version 2.0 (the "License");
7
+# you may not use this file except in compliance with the License.
8
+# You may obtain a copy of the License at
9
+#
10
+#      http://www.apache.org/licenses/LICENSE-2.0
11
+#
12
+# Unless required by applicable law or agreed to in writing, software
13
+# distributed under the License is distributed on an "AS IS" BASIS,
14
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+# See the License for the specific language governing permissions and
16
+# limitations under the License.
17
+#
18
+
19
+##############################################################################
20
+##
21
+##  Gradle start up script for UN*X
22
+##
23
+##############################################################################
24
+
25
+# Attempt to set APP_HOME
26
+# Resolve links: $0 may be a link
27
+PRG="$0"
28
+# Need this for relative symlinks.
29
+while [ -h "$PRG" ] ; do
30
+    ls=`ls -ld "$PRG"`
31
+    link=`expr "$ls" : '.*-> \(.*\)$'`
32
+    if expr "$link" : '/.*' > /dev/null; then
33
+        PRG="$link"
34
+    else
35
+        PRG=`dirname "$PRG"`"/$link"
36
+    fi
37
+done
38
+SAVED="`pwd`"
39
+cd "`dirname \"$PRG\"`/" >/dev/null
40
+APP_HOME="`pwd -P`"
41
+cd "$SAVED" >/dev/null
42
+
43
+APP_NAME="Gradle"
44
+APP_BASE_NAME=`basename "$0"`
45
+
46
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48
+
49
+# Use the maximum available, or set MAX_FD != -1 to use that value.
50
+MAX_FD="maximum"
51
+
52
+warn () {
53
+    echo "$*"
54
+}
55
+
56
+die () {
57
+    echo
58
+    echo "$*"
59
+    echo
60
+    exit 1
61
+}
62
+
63
+# OS specific support (must be 'true' or 'false').
64
+cygwin=false
65
+msys=false
66
+darwin=false
67
+nonstop=false
68
+case "`uname`" in
69
+  CYGWIN* )
70
+    cygwin=true
71
+    ;;
72
+  Darwin* )
73
+    darwin=true
74
+    ;;
75
+  MINGW* )
76
+    msys=true
77
+    ;;
78
+  NONSTOP* )
79
+    nonstop=true
80
+    ;;
81
+esac
82
+
83
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84
+
85
+# Determine the Java command to use to start the JVM.
86
+if [ -n "$JAVA_HOME" ] ; then
87
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
88
+        # IBM's JDK on AIX uses strange locations for the executables
89
+        JAVACMD="$JAVA_HOME/jre/sh/java"
90
+    else
91
+        JAVACMD="$JAVA_HOME/bin/java"
92
+    fi
93
+    if [ ! -x "$JAVACMD" ] ; then
94
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
95
+
96
+Please set the JAVA_HOME variable in your environment to match the
97
+location of your Java installation."
98
+    fi
99
+else
100
+    JAVACMD="java"
101
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
102
+
103
+Please set the JAVA_HOME variable in your environment to match the
104
+location of your Java installation."
105
+fi
106
+
107
+# Increase the maximum file descriptors if we can.
108
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
109
+    MAX_FD_LIMIT=`ulimit -H -n`
110
+    if [ $? -eq 0 ] ; then
111
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
112
+            MAX_FD="$MAX_FD_LIMIT"
113
+        fi
114
+        ulimit -n $MAX_FD
115
+        if [ $? -ne 0 ] ; then
116
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
117
+        fi
118
+    else
119
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
120
+    fi
121
+fi
122
+
123
+# For Darwin, add options to specify how the application appears in the dock
124
+if $darwin; then
125
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
126
+fi
127
+
128
+# For Cygwin, switch paths to Windows format before running java
129
+if $cygwin ; then
130
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
131
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
132
+    JAVACMD=`cygpath --unix "$JAVACMD"`
133
+
134
+    # We build the pattern for arguments to be converted via cygpath
135
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
136
+    SEP=""
137
+    for dir in $ROOTDIRSRAW ; do
138
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
139
+        SEP="|"
140
+    done
141
+    OURCYGPATTERN="(^($ROOTDIRS))"
142
+    # Add a user-defined pattern to the cygpath arguments
143
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
144
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
145
+    fi
146
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
147
+    i=0
148
+    for arg in "$@" ; do
149
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
150
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
151
+
152
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
153
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
154
+        else
155
+            eval `echo args$i`="\"$arg\""
156
+        fi
157
+        i=$((i+1))
158
+    done
159
+    case $i in
160
+        (0) set -- ;;
161
+        (1) set -- "$args0" ;;
162
+        (2) set -- "$args0" "$args1" ;;
163
+        (3) set -- "$args0" "$args1" "$args2" ;;
164
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
165
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
166
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
167
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
168
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
169
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
170
+    esac
171
+fi
172
+
173
+# Escape application args
174
+save () {
175
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
176
+    echo " "
177
+}
178
+APP_ARGS=$(save "$@")
179
+
180
+# Collect all arguments for the java command, following the shell quoting and substitution rules
181
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
182
+
183
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
184
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
185
+  cd "$(dirname "$0")"
186
+fi
187
+
188
+exec "$JAVACMD" "$@"

+ 100
- 0
android/gradlew.bat View File

@@ -0,0 +1,100 @@
1
+@rem
2
+@rem Copyright 2015 the original author or authors.
3
+@rem
4
+@rem Licensed under the Apache License, Version 2.0 (the "License");
5
+@rem you may not use this file except in compliance with the License.
6
+@rem You may obtain a copy of the License at
7
+@rem
8
+@rem      http://www.apache.org/licenses/LICENSE-2.0
9
+@rem
10
+@rem Unless required by applicable law or agreed to in writing, software
11
+@rem distributed under the License is distributed on an "AS IS" BASIS,
12
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+@rem See the License for the specific language governing permissions and
14
+@rem limitations under the License.
15
+@rem
16
+
17
+@if "%DEBUG%" == "" @echo off
18
+@rem ##########################################################################
19
+@rem
20
+@rem  Gradle startup script for Windows
21
+@rem
22
+@rem ##########################################################################
23
+
24
+@rem Set local scope for the variables with windows NT shell
25
+if "%OS%"=="Windows_NT" setlocal
26
+
27
+set DIRNAME=%~dp0
28
+if "%DIRNAME%" == "" set DIRNAME=.
29
+set APP_BASE_NAME=%~n0
30
+set APP_HOME=%DIRNAME%
31
+
32
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
33
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
34
+
35
+@rem Find java.exe
36
+if defined JAVA_HOME goto findJavaFromJavaHome
37
+
38
+set JAVA_EXE=java.exe
39
+%JAVA_EXE% -version >NUL 2>&1
40
+if "%ERRORLEVEL%" == "0" goto init
41
+
42
+echo.
43
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
44
+echo.
45
+echo Please set the JAVA_HOME variable in your environment to match the
46
+echo location of your Java installation.
47
+
48
+goto fail
49
+
50
+:findJavaFromJavaHome
51
+set JAVA_HOME=%JAVA_HOME:"=%
52
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
53
+
54
+if exist "%JAVA_EXE%" goto init
55
+
56
+echo.
57
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
58
+echo.
59
+echo Please set the JAVA_HOME variable in your environment to match the
60
+echo location of your Java installation.
61
+
62
+goto fail
63
+
64
+:init
65
+@rem Get command-line arguments, handling Windows variants
66
+
67
+if not "%OS%" == "Windows_NT" goto win9xME_args
68
+
69
+:win9xME_args
70
+@rem Slurp the command line arguments.
71
+set CMD_LINE_ARGS=
72
+set _SKIP=2
73
+
74
+:win9xME_args_slurp
75
+if "x%~1" == "x" goto execute
76
+
77
+set CMD_LINE_ARGS=%*
78
+
79
+:execute
80
+@rem Setup the command line
81
+
82
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
83
+
84
+@rem Execute Gradle
85
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
86
+
87
+:end
88
+@rem End local scope for the variables with windows NT shell
89
+if "%ERRORLEVEL%"=="0" goto mainEnd
90
+
91
+:fail
92
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
93
+rem the _cmd.exe /c_ return code!
94
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
95
+exit /b 1
96
+
97
+:mainEnd
98
+if "%OS%"=="Windows_NT" endlocal
99
+
100
+:omega

+ 9
- 0
android/settings.gradle View File

@@ -0,0 +1,9 @@
1
+rootProject.name = 'Campus'
2
+
3
+apply from: '../node_modules/react-native-unimodules/gradle.groovy'
4
+includeUnimodulesProjects()
5
+
6
+apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle");
7
+applyNativeModulesSettingsGradle(settings)
8
+
9
+include ':app'

+ 3
- 69
app.json View File

@@ -1,70 +1,4 @@
1 1
 {
2
-  "expo": {
3
-    "name": "Campus",
4
-    "description": "Application mobile compatible Android et iOS pour l'Amicale INSA Toulouse. Grâce à cette application, vous avez facilement accès aux news du campus, aux emplois du temps, à l'état de la laverie, et bien d'autres services ! Ceci est une version Beta, Toutes les fonctionnalités ne sont pas encore implémentées, et il est possible de rencontrer quelques bugs.",
5
-    "slug": "application-amicale",
6
-    "backgroundColor": "#ffffff",
7
-    "privacy": "public",
8
-    "version": "2.0.0",
9
-    "platforms": [
10
-      "ios",
11
-      "android"
12
-    ],
13
-    "orientation": "portrait",
14
-    "primaryColor": "#be1522",
15
-    "icon": "./assets/android.icon.png",
16
-    "scheme": "campus-insat",
17
-    "facebookAutoInitEnabled": false,
18
-    "facebookAutoLogAppEventsEnabled": false,
19
-    "facebookAdvertiserIDCollectionEnabled": false,
20
-    "androidStatusBar": {
21
-      "barStyle": "light-content",
22
-      "hidden": false,
23
-      "translucent": false,
24
-      "backgroundColor": "#be1522"
25
-    },
26
-    "androidNavigationBar": {
27
-      "barStyle": "light-content",
28
-      "backgroundColor": "#121212"
29
-    },
30
-    "splash": {
31
-      "backgroundColor": "#be1522",
32
-      "resizeMode": "contain",
33
-      "image": "./assets/splash.png"
34
-    },
35
-    "notification": {
36
-      "icon": "./assets/icon-notification.png",
37
-      "color": "#be1522",
38
-      "androidMode": "default"
39
-    },
40
-    "updates": {
41
-      "enabled": false
42
-    },
43
-    "ios": {
44
-      "bundleIdentifier": "fr.amicaleinsat.application",
45
-      "icon": "./assets/ios.icon.png",
46
-      "appStoreUrl": "https://apps.apple.com/us/app/campus-amicale-insat/id1477722148?ls=1",
47
-      "usesIcloudStorage": false,
48
-      "usesAppleSignIn":  false,
49
-      "accessesContactNotes": false
50
-    },
51
-    "android": {
52
-      "package": "fr.amicaleinsat.application",
53
-      "versionCode": 16,
54
-      "icon": "./assets/android.icon.png",
55
-      "adaptiveIcon": {
56
-        "foregroundImage": "./assets/android.adaptive-icon.png",
57
-        "backgroundColor": "#be1522"
58
-      },
59
-      "playStoreUrl": "https://play.google.com/store/apps/details?id=fr.amicaleinsat.application",
60
-      "permissions": [
61
-        "VIBRATE",
62
-        "CAMERA"
63
-      ]
64
-    },
65
-    "userInterfaceStyle": "automatic",
66
-    "assetBundlePatterns": [
67
-      "**/*"
68
-    ]
69
-  }
70
-}
2
+  "name": "Campus",
3
+  "displayName": "Campus"
4
+}

+ 37
- 0
eject.txt View File

@@ -0,0 +1,37 @@
1
+Your git working tree is clean
2
+To revert the changes after this command completes, you can run the following:
3
+  git clean --force && git reset --hard
4
+
5
+✔ App configuration (app.json) updated.
6
+✔ Created native project directories (./ios and ./android) and updated .gitignore.
7
+✔ Updated package.json and added index.js entry point for iOS and Android.
8
+✔ Installed JavaScript dependencies.
9
+
10
+⚠️  iOS configuration applied with warnings that should be fixed:
11
+- icon: This is the image that your app uses on your home screen, you will need to configure it manually.
12
+- splash: This is the image that your app uses on the loading screen, we recommend installing and using expo-splash-screen. Details. (​https://github.com/expo/expo/blob/master/packages/expo-splash-screen/README.md​)
13
+
14
+⚠️  Android configuration applied with warnings that should be fixed:
15
+- splash: This is the image that your app uses on the loading screen, we recommend installing and using expo-splash-screen. Details. (​https://github.com/expo/expo/blob/master/packages/expo-splash-screen/README.md​)
16
+- icon: This is the image that your app uses on your home screen, you will need to configure it manually.
17
+- android.adaptiveIcon: This is the image that your app uses on your home screen, you will need to configure it manually.
18
+
19
+✔ Skipped installing CocoaPods because operating system is not on macOS.
20
+
21
+⚠️  Your app includes 3 packages that require additional setup in order to run:
22
+- expo-camera: https://github.com/expo/expo/tree/master/packages/expo-camera
23
+- react-native-appearance: https://github.com/expo/react-native-appearance
24
+- react-native-webview: https://github.com/react-native-community/react-native-webview
25
+
26
+➡️  Next steps
27
+- 👆 Review the logs above and look for any warnings (⚠️ ) that might need follow-up.
28
+- 💡 You may want to run npx @react-native-community/cli doctor to help install any tools that your app may need to run your native projects.
29
+- 🍫 When CocoaPods is installed, initialize the project workspace: cd ios && pod install
30
+- 🔑 Download your Android keystore (if you're not sure if you need to, just run the command and see): expo fetch:android:keystore
31
+- 🚀 expo-updates (​https://github.com/expo/expo/blob/master/packages/expo-updates/README.md​) has been configured in your project. Before you do a release build, make sure you run expo publish. Learn more. (​https://expo.fyi/release-builds-with-expo-updates​)
32
+
33
+☑️  When you are ready to run your project
34
+To compile and run your project in development, execute one of the following commands:
35
+- npm run ios
36
+- npm run android
37
+- npm run web

+ 8
- 0
index.js View File

@@ -0,0 +1,8 @@
1
+import {registerRootComponent} from 'expo';
2
+
3
+import App from './App';
4
+
5
+// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
6
+// It also ensures that whether you load the app in the Expo client or in a native build,
7
+// the environment is set up appropriately
8
+registerRootComponent(App);

+ 437
- 0
ios/Campus.xcodeproj/project.pbxproj View File

@@ -0,0 +1,437 @@
1
+// !$*UTF8*$!
2
+{
3
+	archiveVersion = 1;
4
+	classes = {
5
+	};
6
+	objectVersion = 46;
7
+	objects = {
8
+
9
+/* Begin PBXBuildFile section */
10
+		0731D3B824204D62009CAE85 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0731D3B524204D62009CAE85 /* Expo.plist */; };
11
+		074F4BDC2432833400BDB9FE /* app.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 07C2E6E4243282B30028AF0A /* app.bundle */; };
12
+		074F4BDD2432833400BDB9FE /* app.manifest in Resources */ = {isa = PBXBuildFile; fileRef = 07C2E6E3243282B30028AF0A /* app.manifest */; };
13
+		13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
14
+		13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; };
15
+		13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
16
+		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
17
+		3DE4DAD41476765101945408 /* libPods-Campus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D43FF9D506E70904424FA7E9 /* libPods-Campus.a */; };
18
+/* End PBXBuildFile section */
19
+
20
+/* Begin PBXFileReference section */
21
+		008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
22
+		0731D3B524204D62009CAE85 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Expo.plist; path = Campus/Supporting/Expo.plist; sourceTree = "<group>"; };
23
+		07C2E6E3243282B30028AF0A /* app.manifest */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = app.manifest; path = "Campus/Supporting/app.manifest"; sourceTree = "<group>"; };
24
+		07C2E6E4243282B30028AF0A /* app.bundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = app.bundle; path = "Campus/Supporting/app.bundle"; sourceTree = "<group>"; };
25
+		13B07F961A680F5B00A75B9A /* Campus.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Campus.app; sourceTree = BUILT_PRODUCTS_DIR; };
26
+		13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = Campus/AppDelegate.h; sourceTree = "<group>"; };
27
+		13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = Campus/AppDelegate.m; sourceTree = "<group>"; };
28
+		13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
29
+		13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Campus/Images.xcassets; sourceTree = "<group>"; };
30
+		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Campus/Info.plist; sourceTree = "<group>"; };
31
+		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Campus/main.m; sourceTree = "<group>"; };
32
+		2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; };
33
+		3B47C5AFCB8BDE514B7D1AC6 /* Pods-Campus.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Campus.debug.xcconfig"; path = "Target Support Files/Pods-Campus/Pods-Campus.debug.xcconfig"; sourceTree = "<group>"; };
34
+		8AC623DBF3A3E2CB072F81F2 /* Pods-Campus.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Campus.release.xcconfig"; path = "Target Support Files/Pods-Campus/Pods-Campus.release.xcconfig"; sourceTree = "<group>"; };
35
+		D43FF9D506E70904424FA7E9 /* libPods-Campus.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Campus.a"; sourceTree = BUILT_PRODUCTS_DIR; };
36
+		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
37
+		ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
38
+/* End PBXFileReference section */
39
+
40
+/* Begin PBXFrameworksBuildPhase section */
41
+		13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
42
+			isa = PBXFrameworksBuildPhase;
43
+			buildActionMask = 2147483647;
44
+			files = (
45
+				3DE4DAD41476765101945408 /* libPods-Campus.a in Frameworks */,
46
+			);
47
+			runOnlyForDeploymentPostprocessing = 0;
48
+		};
49
+/* End PBXFrameworksBuildPhase section */
50
+
51
+/* Begin PBXGroup section */
52
+		13B07FAE1A68108700A75B9A /* Campus */ = {
53
+			isa = PBXGroup;
54
+			children = (
55
+				008F07F21AC5B25A0029DE68 /* main.jsbundle */,
56
+				13B07FAF1A68108700A75B9A /* AppDelegate.h */,
57
+				13B07FB01A68108700A75B9A /* AppDelegate.m */,
58
+				13B07FB51A68108700A75B9A /* Images.xcassets */,
59
+				13B07FB61A68108700A75B9A /* Info.plist */,
60
+				13B07FB11A68108700A75B9A /* LaunchScreen.xib */,
61
+				13B07FB71A68108700A75B9A /* main.m */,
62
+				0731D3B524204D62009CAE85 /* Expo.plist */,
63
+				07C2E6E4243282B30028AF0A /* app.bundle */,
64
+				07C2E6E3243282B30028AF0A /* app.manifest */,
65
+			);
66
+			name = Campus;
67
+			sourceTree = "<group>";
68
+		};
69
+		2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
70
+			isa = PBXGroup;
71
+			children = (
72
+				ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
73
+				ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
74
+				2D16E6891FA4F8E400B85C8A /* libReact.a */,
75
+				D43FF9D506E70904424FA7E9 /* libPods-Campus.a */,
76
+			);
77
+			name = Frameworks;
78
+			sourceTree = "<group>";
79
+		};
80
+		72E5486571395D51695C2A02 /* Pods */ = {
81
+			isa = PBXGroup;
82
+			children = (
83
+				3B47C5AFCB8BDE514B7D1AC6 /* Pods-Campus.debug.xcconfig */,
84
+				8AC623DBF3A3E2CB072F81F2 /* Pods-Campus.release.xcconfig */,
85
+			);
86
+			path = Pods;
87
+			sourceTree = "<group>";
88
+		};
89
+		832341AE1AAA6A7D00B99B32 /* Libraries */ = {
90
+			isa = PBXGroup;
91
+			children = (
92
+			);
93
+			name = Libraries;
94
+			sourceTree = "<group>";
95
+		};
96
+		83CBB9F61A601CBA00E9B192 = {
97
+			isa = PBXGroup;
98
+			children = (
99
+				13B07FAE1A68108700A75B9A /* Campus */,
100
+				832341AE1AAA6A7D00B99B32 /* Libraries */,
101
+				83CBBA001A601CBA00E9B192 /* Products */,
102
+				2D16E6871FA4F8E400B85C8A /* Frameworks */,
103
+				72E5486571395D51695C2A02 /* Pods */,
104
+			);
105
+			indentWidth = 2;
106
+			sourceTree = "<group>";
107
+			tabWidth = 2;
108
+			usesTabs = 0;
109
+		};
110
+		83CBBA001A601CBA00E9B192 /* Products */ = {
111
+			isa = PBXGroup;
112
+			children = (
113
+				13B07F961A680F5B00A75B9A /* Campus.app */,
114
+			);
115
+			name = Products;
116
+			sourceTree = "<group>";
117
+		};
118
+/* End PBXGroup section */
119
+
120
+/* Begin PBXNativeTarget section */
121
+		13B07F861A680F5B00A75B9A /* Campus */ = {
122
+			isa = PBXNativeTarget;
123
+			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Campus" */;
124
+			buildPhases = (
125
+				F8BC737F2AD7A05944D9E2A1 /* [CP] Check Pods Manifest.lock */,
126
+				FD4C38642228810C00325AF5 /* Start Packager */,
127
+				13B07F871A680F5B00A75B9A /* Sources */,
128
+				13B07F8C1A680F5B00A75B9A /* Frameworks */,
129
+				13B07F8E1A680F5B00A75B9A /* Resources */,
130
+				00DD1BFF1BD5951E006B06BC /* Bundle Expo Assets */,
131
+			);
132
+			buildRules = (
133
+			);
134
+			dependencies = (
135
+			);
136
+			name = Campus;
137
+			productName = "Hello World";
138
+			productReference = 13B07F961A680F5B00A75B9A /* Campus.app */;
139
+			productType = "com.apple.product-type.application";
140
+		};
141
+/* End PBXNativeTarget section */
142
+
143
+/* Begin PBXProject section */
144
+		83CBB9F71A601CBA00E9B192 /* Project object */ = {
145
+			isa = PBXProject;
146
+			attributes = {
147
+				LastUpgradeCheck = 940;
148
+				ORGANIZATIONNAME = Facebook;
149
+			};
150
+			buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Campus" */;
151
+			compatibilityVersion = "Xcode 3.2";
152
+			developmentRegion = English;
153
+			hasScannedForEncodings = 0;
154
+			knownRegions = (
155
+				English,
156
+				en,
157
+				Base,
158
+			);
159
+			mainGroup = 83CBB9F61A601CBA00E9B192;
160
+			productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
161
+			projectDirPath = "";
162
+			projectRoot = "";
163
+			targets = (
164
+				13B07F861A680F5B00A75B9A /* Campus */,
165
+			);
166
+		};
167
+/* End PBXProject section */
168
+
169
+/* Begin PBXResourcesBuildPhase section */
170
+		13B07F8E1A680F5B00A75B9A /* Resources */ = {
171
+			isa = PBXResourcesBuildPhase;
172
+			buildActionMask = 2147483647;
173
+			files = (
174
+				074F4BDC2432833400BDB9FE /* app.bundle in Resources */,
175
+				074F4BDD2432833400BDB9FE /* app.manifest in Resources */,
176
+				0731D3B824204D62009CAE85 /* Expo.plist in Resources */,
177
+				13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
178
+				13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */,
179
+			);
180
+			runOnlyForDeploymentPostprocessing = 0;
181
+		};
182
+/* End PBXResourcesBuildPhase section */
183
+
184
+/* Begin PBXShellScriptBuildPhase section */
185
+		00DD1BFF1BD5951E006B06BC /* Bundle Expo Assets */ = {
186
+			isa = PBXShellScriptBuildPhase;
187
+			buildActionMask = 2147483647;
188
+			files = (
189
+			);
190
+			inputPaths = (
191
+			);
192
+			name = "Bundle Expo Assets";
193
+			outputPaths = (
194
+			);
195
+			runOnlyForDeploymentPostprocessing = 0;
196
+			shellPath = /bin/sh;
197
+			shellScript = "../node_modules/expo-updates/bundle-expo-assets.sh\n";
198
+		};
199
+		F8BC737F2AD7A05944D9E2A1 /* [CP] Check Pods Manifest.lock */ = {
200
+			isa = PBXShellScriptBuildPhase;
201
+			buildActionMask = 2147483647;
202
+			files = (
203
+			);
204
+			inputFileListPaths = (
205
+			);
206
+			inputPaths = (
207
+				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
208
+				"${PODS_ROOT}/Manifest.lock",
209
+			);
210
+			name = "[CP] Check Pods Manifest.lock";
211
+			outputFileListPaths = (
212
+			);
213
+			outputPaths = (
214
+				"$(DERIVED_FILE_DIR)/Pods-Campus-checkManifestLockResult.txt",
215
+			);
216
+			runOnlyForDeploymentPostprocessing = 0;
217
+			shellPath = /bin/sh;
218
+			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";
219
+			showEnvVarsInLog = 0;
220
+		};
221
+		FD4C38642228810C00325AF5 /* Start Packager */ = {
222
+			isa = PBXShellScriptBuildPhase;
223
+			buildActionMask = 2147483647;
224
+			files = (
225
+			);
226
+			inputFileListPaths = (
227
+			);
228
+			inputPaths = (
229
+			);
230
+			name = "Start Packager";
231
+			outputFileListPaths = (
232
+			);
233
+			outputPaths = (
234
+			);
235
+			runOnlyForDeploymentPostprocessing = 0;
236
+			shellPath = /bin/sh;
237
+			shellScript = "if [ \"$CONFIGURATION\" == \"Release\" ]; then\n  exit 0;\nfi\nexport RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n  if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n    if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n      echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n      exit 2\n    fi\n  else\n    open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n  fi\nfi\n";
238
+			showEnvVarsInLog = 0;
239
+		};
240
+/* End PBXShellScriptBuildPhase section */
241
+
242
+/* Begin PBXSourcesBuildPhase section */
243
+		13B07F871A680F5B00A75B9A /* Sources */ = {
244
+			isa = PBXSourcesBuildPhase;
245
+			buildActionMask = 2147483647;
246
+			files = (
247
+				13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
248
+				13B07FC11A68108700A75B9A /* main.m in Sources */,
249
+			);
250
+			runOnlyForDeploymentPostprocessing = 0;
251
+		};
252
+/* End PBXSourcesBuildPhase section */
253
+
254
+/* Begin PBXVariantGroup section */
255
+		13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = {
256
+			isa = PBXVariantGroup;
257
+			children = (
258
+				13B07FB21A68108700A75B9A /* Base */,
259
+			);
260
+			name = LaunchScreen.xib;
261
+			path = Campus;
262
+			sourceTree = "<group>";
263
+		};
264
+/* End PBXVariantGroup section */
265
+
266
+/* Begin XCBuildConfiguration section */
267
+		13B07F941A680F5B00A75B9A /* Debug */ = {
268
+			isa = XCBuildConfiguration;
269
+			baseConfigurationReference = 3B47C5AFCB8BDE514B7D1AC6 /* Pods-Campus.debug.xcconfig */;
270
+			buildSettings = {
271
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
272
+				CURRENT_PROJECT_VERSION = 1;
273
+				DEAD_CODE_STRIPPING = NO;
274
+				INFOPLIST_FILE = Campus/Info.plist;
275
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
276
+				OTHER_LDFLAGS = (
277
+					"$(inherited)",
278
+					"-ObjC",
279
+					"-lc++",
280
+				);
281
+				PRODUCT_BUNDLE_IDENTIFIER = "fr.amicaleinsat.application";
282
+				PRODUCT_NAME = application;
283
+				VERSIONING_SYSTEM = "apple-generic";
284
+				CODE_SIGN_ENTITLEMENTS = Campus/application.entitlements;
285
+			};
286
+			name = Debug;
287
+		};
288
+		13B07F951A680F5B00A75B9A /* Release */ = {
289
+			isa = XCBuildConfiguration;
290
+			baseConfigurationReference = 8AC623DBF3A3E2CB072F81F2 /* Pods-Campus.release.xcconfig */;
291
+			buildSettings = {
292
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
293
+				CURRENT_PROJECT_VERSION = 1;
294
+				INFOPLIST_FILE = Campus/Info.plist;
295
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
296
+				OTHER_LDFLAGS = (
297
+					"$(inherited)",
298
+					"-ObjC",
299
+					"-lc++",
300
+				);
301
+				PRODUCT_BUNDLE_IDENTIFIER = "fr.amicaleinsat.application";
302
+				PRODUCT_NAME = application;
303
+				VERSIONING_SYSTEM = "apple-generic";
304
+				CODE_SIGN_ENTITLEMENTS = Campus/application.entitlements;
305
+			};
306
+			name = Release;
307
+		};
308
+		83CBBA201A601CBA00E9B192 /* Debug */ = {
309
+			isa = XCBuildConfiguration;
310
+			buildSettings = {
311
+				ALWAYS_SEARCH_USER_PATHS = NO;
312
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
313
+				CLANG_CXX_LIBRARY = "libc++";
314
+				CLANG_ENABLE_MODULES = YES;
315
+				CLANG_ENABLE_OBJC_ARC = YES;
316
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
317
+				CLANG_WARN_BOOL_CONVERSION = YES;
318
+				CLANG_WARN_COMMA = YES;
319
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
320
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
321
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
322
+				CLANG_WARN_EMPTY_BODY = YES;
323
+				CLANG_WARN_ENUM_CONVERSION = YES;
324
+				CLANG_WARN_INFINITE_RECURSION = YES;
325
+				CLANG_WARN_INT_CONVERSION = YES;
326
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
327
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
328
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
329
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
330
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
331
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
332
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
333
+				CLANG_WARN_UNREACHABLE_CODE = YES;
334
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
335
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
336
+				COPY_PHASE_STRIP = NO;
337
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
338
+				ENABLE_TESTABILITY = YES;
339
+				GCC_C_LANGUAGE_STANDARD = gnu99;
340
+				GCC_DYNAMIC_NO_PIC = NO;
341
+				GCC_NO_COMMON_BLOCKS = YES;
342
+				GCC_OPTIMIZATION_LEVEL = 0;
343
+				GCC_PREPROCESSOR_DEFINITIONS = (
344
+					"DEBUG=1",
345
+					"$(inherited)",
346
+				);
347
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
348
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
349
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
350
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
351
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
352
+				GCC_WARN_UNUSED_FUNCTION = YES;
353
+				GCC_WARN_UNUSED_VARIABLE = YES;
354
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
355
+				MTL_ENABLE_DEBUG_INFO = YES;
356
+				ONLY_ACTIVE_ARCH = YES;
357
+				SDKROOT = iphoneos;
358
+				PRODUCT_BUNDLE_IDENTIFIER = "fr.amicaleinsat.application";
359
+				PRODUCT_NAME = application;
360
+				CODE_SIGN_ENTITLEMENTS = Campus/application.entitlements;
361
+			};
362
+			name = Debug;
363
+		};
364
+		83CBBA211A601CBA00E9B192 /* Release */ = {
365
+			isa = XCBuildConfiguration;
366
+			buildSettings = {
367
+				ALWAYS_SEARCH_USER_PATHS = NO;
368
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
369
+				CLANG_CXX_LIBRARY = "libc++";
370
+				CLANG_ENABLE_MODULES = YES;
371
+				CLANG_ENABLE_OBJC_ARC = YES;
372
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
373
+				CLANG_WARN_BOOL_CONVERSION = YES;
374
+				CLANG_WARN_COMMA = YES;
375
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
376
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
377
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
378
+				CLANG_WARN_EMPTY_BODY = YES;
379
+				CLANG_WARN_ENUM_CONVERSION = YES;
380
+				CLANG_WARN_INFINITE_RECURSION = YES;
381
+				CLANG_WARN_INT_CONVERSION = YES;
382
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
383
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
384
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
385
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
386
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
387
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
388
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
389
+				CLANG_WARN_UNREACHABLE_CODE = YES;
390
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
391
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
392
+				COPY_PHASE_STRIP = YES;
393
+				ENABLE_NS_ASSERTIONS = NO;
394
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
395
+				GCC_C_LANGUAGE_STANDARD = gnu99;
396
+				GCC_NO_COMMON_BLOCKS = YES;
397
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
398
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
399
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
400
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
401
+				GCC_WARN_UNUSED_FUNCTION = YES;
402
+				GCC_WARN_UNUSED_VARIABLE = YES;
403
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
404
+				MTL_ENABLE_DEBUG_INFO = NO;
405
+				SDKROOT = iphoneos;
406
+				VALIDATE_PRODUCT = YES;
407
+				PRODUCT_BUNDLE_IDENTIFIER = "fr.amicaleinsat.application";
408
+				PRODUCT_NAME = application;
409
+				CODE_SIGN_ENTITLEMENTS = Campus/application.entitlements;
410
+			};
411
+			name = Release;
412
+		};
413
+/* End XCBuildConfiguration section */
414
+
415
+/* Begin XCConfigurationList section */
416
+		13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Campus" */ = {
417
+			isa = XCConfigurationList;
418
+			buildConfigurations = (
419
+				13B07F941A680F5B00A75B9A /* Debug */,
420
+				13B07F951A680F5B00A75B9A /* Release */,
421
+			);
422
+			defaultConfigurationIsVisible = 0;
423
+			defaultConfigurationName = Release;
424
+		};
425
+		83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Campus" */ = {
426
+			isa = XCConfigurationList;
427
+			buildConfigurations = (
428
+				83CBBA201A601CBA00E9B192 /* Debug */,
429
+				83CBBA211A601CBA00E9B192 /* Release */,
430
+			);
431
+			defaultConfigurationIsVisible = 0;
432
+			defaultConfigurationName = Release;
433
+		};
434
+/* End XCConfigurationList section */
435
+	};
436
+	rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
437
+}

+ 129
- 0
ios/Campus.xcodeproj/xcshareddata/xcschemes/Campus.xcscheme View File

@@ -0,0 +1,129 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<Scheme
3
+   LastUpgradeVersion = "0940"
4
+   version = "1.3">
5
+   <BuildAction
6
+      parallelizeBuildables = "NO"
7
+      buildImplicitDependencies = "YES">
8
+      <BuildActionEntries>
9
+         <BuildActionEntry
10
+            buildForTesting = "YES"
11
+            buildForRunning = "YES"
12
+            buildForProfiling = "YES"
13
+            buildForArchiving = "YES"
14
+            buildForAnalyzing = "YES">
15
+            <BuildableReference
16
+               BuildableIdentifier = "primary"
17
+               BlueprintIdentifier = "83CBBA2D1A601D0E00E9B192"
18
+               BuildableName = "libReact.a"
19
+               BlueprintName = "React"
20
+               ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj">
21
+            </BuildableReference>
22
+         </BuildActionEntry>
23
+         <BuildActionEntry
24
+            buildForTesting = "YES"
25
+            buildForRunning = "YES"
26
+            buildForProfiling = "YES"
27
+            buildForArchiving = "YES"
28
+            buildForAnalyzing = "YES">
29
+            <BuildableReference
30
+               BuildableIdentifier = "primary"
31
+               BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
32
+               BuildableName = "Campus.app"
33
+               BlueprintName = "Campus"
34
+               ReferencedContainer = "container:Campus.xcodeproj">
35
+            </BuildableReference>
36
+         </BuildActionEntry>
37
+         <BuildActionEntry
38
+            buildForTesting = "YES"
39
+            buildForRunning = "YES"
40
+            buildForProfiling = "NO"
41
+            buildForArchiving = "NO"
42
+            buildForAnalyzing = "YES">
43
+            <BuildableReference
44
+               BuildableIdentifier = "primary"
45
+               BlueprintIdentifier = "00E356ED1AD99517003FC87E"
46
+               BuildableName = "CampusTests.xctest"
47
+               BlueprintName = "CampusTests"
48
+               ReferencedContainer = "container:Campus.xcodeproj">
49
+            </BuildableReference>
50
+         </BuildActionEntry>
51
+      </BuildActionEntries>
52
+   </BuildAction>
53
+   <TestAction
54
+      buildConfiguration = "Debug"
55
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
56
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
57
+      shouldUseLaunchSchemeArgsEnv = "YES">
58
+      <Testables>
59
+         <TestableReference
60
+            skipped = "NO">
61
+            <BuildableReference
62
+               BuildableIdentifier = "primary"
63
+               BlueprintIdentifier = "00E356ED1AD99517003FC87E"
64
+               BuildableName = "CampusTests.xctest"
65
+               BlueprintName = "CampusTests"
66
+               ReferencedContainer = "container:Campus.xcodeproj">
67
+            </BuildableReference>
68
+         </TestableReference>
69
+      </Testables>
70
+      <MacroExpansion>
71
+         <BuildableReference
72
+            BuildableIdentifier = "primary"
73
+            BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
74
+            BuildableName = "Campus.app"
75
+            BlueprintName = "Campus"
76
+            ReferencedContainer = "container:Campus.xcodeproj">
77
+         </BuildableReference>
78
+      </MacroExpansion>
79
+      <AdditionalOptions>
80
+      </AdditionalOptions>
81
+   </TestAction>
82
+   <LaunchAction
83
+      buildConfiguration = "Debug"
84
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
85
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
86
+      launchStyle = "0"
87
+      useCustomWorkingDirectory = "NO"
88
+      ignoresPersistentStateOnLaunch = "NO"
89
+      debugDocumentVersioning = "YES"
90
+      debugServiceExtension = "internal"
91
+      allowLocationSimulation = "YES">
92
+      <BuildableProductRunnable
93
+         runnableDebuggingMode = "0">
94
+         <BuildableReference
95
+            BuildableIdentifier = "primary"
96
+            BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
97
+            BuildableName = "Campus.app"
98
+            BlueprintName = "Campus"
99
+            ReferencedContainer = "container:Campus.xcodeproj">
100
+         </BuildableReference>
101
+      </BuildableProductRunnable>
102
+      <AdditionalOptions>
103
+      </AdditionalOptions>
104
+   </LaunchAction>
105
+   <ProfileAction
106
+      buildConfiguration = "Release"
107
+      shouldUseLaunchSchemeArgsEnv = "YES"
108
+      savedToolIdentifier = ""
109
+      useCustomWorkingDirectory = "NO"
110
+      debugDocumentVersioning = "YES">
111
+      <BuildableProductRunnable
112
+         runnableDebuggingMode = "0">
113
+         <BuildableReference
114
+            BuildableIdentifier = "primary"
115
+            BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
116
+            BuildableName = "Campus.app"
117
+            BlueprintName = "Campus"
118
+            ReferencedContainer = "container:Campus.xcodeproj">
119
+         </BuildableReference>
120
+      </BuildableProductRunnable>
121
+   </ProfileAction>
122
+   <AnalyzeAction
123
+      buildConfiguration = "Debug">
124
+   </AnalyzeAction>
125
+   <ArchiveAction
126
+      buildConfiguration = "Release"
127
+      revealArchiveInOrganizer = "YES">
128
+   </ArchiveAction>
129
+</Scheme>

+ 20
- 0
ios/Campus/AppDelegate.h View File

@@ -0,0 +1,20 @@
1
+/**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+#import <UIKit/UIKit.h>
9
+#import <UMReactNativeAdapter/UMModuleRegistryAdapter.h>
10
+#import <React/RCTBridgeDelegate.h>
11
+#import <UMCore/UMAppDelegateWrapper.h>
12
+
13
+#import <EXUpdates/EXUpdatesAppController.h>
14
+
15
+@interface AppDelegate : UMAppDelegateWrapper <RCTBridgeDelegate, EXUpdatesAppControllerDelegate>
16
+
17
+@property (nonatomic, strong) UMModuleRegistryAdapter *moduleRegistryAdapter;
18
+@property (nonatomic, strong) UIWindow *window;
19
+
20
+@end

+ 81
- 0
ios/Campus/AppDelegate.m View File

@@ -0,0 +1,81 @@
1
+/**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+#import "AppDelegate.h"
9
+
10
+#import <React/RCTBundleURLProvider.h>
11
+#import <React/RCTRootView.h>
12
+
13
+#import <UMCore/UMModuleRegistry.h>
14
+#import <UMReactNativeAdapter/UMNativeModulesProxy.h>
15
+#import <UMReactNativeAdapter/UMModuleRegistryAdapter.h>
16
+
17
+@interface AppDelegate ()
18
+
19
+@property (nonatomic, strong) NSDictionary *launchOptions;
20
+
21
+@end
22
+
23
+@implementation AppDelegate
24
+
25
+@synthesize window = _window;
26
+
27
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
28
+{
29
+  self.moduleRegistryAdapter = [[UMModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[UMModuleRegistryProvider alloc] init]];
30
+  self.launchOptions = launchOptions;
31
+
32
+  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
33
+#ifdef DEBUG
34
+  [self initializeReactNativeApp];
35
+#else
36
+  EXUpdatesAppController *controller = [EXUpdatesAppController sharedInstance];
37
+  controller.delegate = self;
38
+  [controller startAndShowLaunchScreen:self.window];
39
+#endif
40
+
41
+  [super application:application didFinishLaunchingWithOptions:launchOptions];
42
+
43
+  return YES;
44
+}
45
+
46
+- (RCTBridge *)initializeReactNativeApp
47
+{
48
+  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:self.launchOptions];
49
+  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@"main" initialProperties:nil];
50
+  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
51
+
52
+  UIViewController *rootViewController = [UIViewController new];
53
+  rootViewController.view = rootView;
54
+  self.window.rootViewController = rootViewController;
55
+  [self.window makeKeyAndVisible];
56
+
57
+  return bridge;
58
+}
59
+
60
+- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge
61
+{
62
+  NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge];
63
+  // You can inject any extra modules that you would like here, more information at:
64
+  // https://facebook.github.io/react-native/docs/native-modules-ios.html#dependency-injection
65
+  return extraModules;
66
+}
67
+
68
+- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {
69
+#ifdef DEBUG
70
+  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
71
+#else
72
+  return [[EXUpdatesAppController sharedInstance] launchAssetUrl];
73
+#endif
74
+}
75
+
76
+- (void)appController:(EXUpdatesAppController *)appController didStartWithSuccess:(BOOL)success
77
+{
78
+  appController.bridge = [self initializeReactNativeApp];
79
+}
80
+
81
+@end

+ 42
- 0
ios/Campus/Base.lproj/LaunchScreen.xib View File

@@ -0,0 +1,42 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
3
+    <dependencies>
4
+        <deployment identifier="iOS"/>
5
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/>
6
+        <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
7
+    </dependencies>
8
+    <objects>
9
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
10
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
11
+        <view contentMode="scaleToFill" id="iN0-l3-epB">
12
+            <rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
13
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
14
+            <subviews>
15
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
16
+                    <rect key="frame" x="20" y="439" width="441" height="21"/>
17
+                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
18
+                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
19
+                    <nil key="highlightedColor"/>
20
+                </label>
21
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Campus" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
22
+                    <rect key="frame" x="20" y="140" width="441" height="43"/>
23
+                    <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
24
+                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
25
+                    <nil key="highlightedColor"/>
26
+                </label>
27
+            </subviews>
28
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
29
+            <constraints>
30
+                <constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
31
+                <constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
32
+                <constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/>
33
+                <constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/>
34
+                <constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/>
35
+                <constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
36
+            </constraints>
37
+            <nil key="simulatedStatusBarMetrics"/>
38
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
39
+            <point key="canvasLocation" x="548" y="455"/>
40
+        </view>
41
+    </objects>
42
+</document>

+ 38
- 0
ios/Campus/Images.xcassets/AppIcon.appiconset/Contents.json View File

@@ -0,0 +1,38 @@
1
+{
2
+  "images" : [
3
+    {
4
+      "idiom" : "iphone",
5
+      "size" : "29x29",
6
+      "scale" : "2x"
7
+    },
8
+    {
9
+      "idiom" : "iphone",
10
+      "size" : "29x29",
11
+      "scale" : "3x"
12
+    },
13
+    {
14
+      "idiom" : "iphone",
15
+      "size" : "40x40",
16
+      "scale" : "2x"
17
+    },
18
+    {
19
+      "idiom" : "iphone",
20
+      "size" : "40x40",
21
+      "scale" : "3x"
22
+    },
23
+    {
24
+      "idiom" : "iphone",
25
+      "size" : "60x60",
26
+      "scale" : "2x"
27
+    },
28
+    {
29
+      "idiom" : "iphone",
30
+      "size" : "60x60",
31
+      "scale" : "3x"
32
+    }
33
+  ],
34
+  "info" : {
35
+    "version" : 1,
36
+    "author" : "xcode"
37
+  }
38
+}

+ 6
- 0
ios/Campus/Images.xcassets/Contents.json View File

@@ -0,0 +1,6 @@
1
+{
2
+  "info" : {
3
+    "version" : 1,
4
+    "author" : "xcode"
5
+  }
6
+}

+ 95
- 0
ios/Campus/Info.plist View File

@@ -0,0 +1,95 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+  <dict>
5
+    <key>CFBundleDevelopmentRegion</key>
6
+    <string>en</string>
7
+    <key>CFBundleDisplayName</key>
8
+    <string>Campus</string>
9
+    <key>CFBundleExecutable</key>
10
+    <string>$(EXECUTABLE_NAME)</string>
11
+    <key>CFBundleIdentifier</key>
12
+    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
+    <key>CFBundleInfoDictionaryVersion</key>
14
+    <string>6.0</string>
15
+    <key>CFBundleName</key>
16
+    <string>$(PRODUCT_NAME)</string>
17
+    <key>CFBundlePackageType</key>
18
+    <string>APPL</string>
19
+    <key>CFBundleShortVersionString</key>
20
+    <string>2.0.0</string>
21
+    <key>CFBundleSignature</key>
22
+    <string>????</string>
23
+    <key>CFBundleVersion</key>
24
+    <string>1</string>
25
+    <key>LSRequiresIPhoneOS</key>
26
+    <true/>
27
+    <key>NSLocationWhenInUseUsageDescription</key>
28
+    <string>Allow Campus to use your location</string>
29
+    <key>UILaunchStoryboardName</key>
30
+    <string>LaunchScreen</string>
31
+    <key>UIRequiredDeviceCapabilities</key>
32
+    <array>
33
+      <string>armv7</string>
34
+    </array>
35
+    <key>UISupportedInterfaceOrientations</key>
36
+    <array>
37
+      <string>UIInterfaceOrientationPortrait</string>
38
+      <string>UIInterfaceOrientationPortraitUpsideDown</string>
39
+    </array>
40
+    <key>UIViewControllerBasedStatusBarAppearance</key>
41
+    <false/>
42
+    <key>NSAppTransportSecurity</key>
43
+    <dict>
44
+      <key>NSAllowsArbitraryLoads</key>
45
+      <true/>
46
+      <key>NSExceptionDomains</key>
47
+      <dict>
48
+        <key>localhost</key>
49
+        <dict>
50
+          <key>NSExceptionAllowsInsecureHTTPLoads</key>
51
+          <true/>
52
+        </dict>
53
+      </dict>
54
+    </dict>
55
+    <key>NSCalendarsUsageDescription</key>
56
+    <string>Allow Campus to access your calendar</string>
57
+    <key>NSCameraUsageDescription</key>
58
+    <string>Allow Campus to use the camera</string>
59
+    <key>NSContactsUsageDescription</key>
60
+    <string>Allow Campus experiences to access your contacts</string>
61
+    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
62
+    <string>Allow Campus to use your location</string>
63
+    <key>NSLocationAlwaysUsageDescription</key>
64
+    <string>Allow Campus to use your location</string>
65
+    <key>NSMicrophoneUsageDescription</key>
66
+    <string>Allow Campus to access your microphone</string>
67
+    <key>NSMotionUsageDescription</key>
68
+    <string>Allow Campus to access your device's accelerometer</string>
69
+    <key>NSPhotoLibraryAddUsageDescription</key>
70
+    <string>Give Campus periences permission to save photos</string>
71
+    <key>NSPhotoLibraryUsageDescription</key>
72
+    <string>Give Campus periences permission to access your photos</string>
73
+    <key>NSRemindersUsageDescription</key>
74
+    <string>Allow Campus to access your reminders</string>
75
+    <key>FacebookAutoInitEnabled</key>
76
+    <false/>
77
+    <key>FacebookAutoLogAppEventsEnabled</key>
78
+    <false/>
79
+    <key>FacebookAdvertiserIDCollectionEnabled</key>
80
+    <false/>
81
+    <key>UIRequiresFullScreen</key>
82
+    <true/>
83
+    <key>CFBundleURLTypes</key>
84
+    <array>
85
+      <dict>
86
+        <key>CFBundleURLSchemes</key>
87
+        <array>
88
+          <string>campus-insat</string>
89
+        </array>
90
+      </dict>
91
+    </array>
92
+    <key>UIUserInterfaceStyle</key>
93
+    <string>Automatic</string>
94
+  </dict>
95
+</plist>

+ 10
- 0
ios/Campus/Supporting/Expo.plist View File

@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+<dict>
5
+        <key>EXUpdatesSDKVersion</key>
6
+        <string>YOUR-APP-SDK-VERSION-HERE</string>
7
+        <key>EXUpdatesURL</key>
8
+        <string>YOUR-APP-URL-HERE</string>
9
+</dict>
10
+</plist>

+ 0
- 0
ios/Campus/Supporting/app.bundle View File


+ 1
- 0
ios/Campus/Supporting/app.manifest View File

@@ -0,0 +1 @@
1
+{}

+ 5
- 0
ios/Campus/application.entitlements View File

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

+ 16
- 0
ios/Campus/main.m View File

@@ -0,0 +1,16 @@
1
+/**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+#import <UIKit/UIKit.h>
9
+
10
+#import "AppDelegate.h"
11
+
12
+int main(int argc, char * argv[]) {
13
+  @autoreleasepool {
14
+    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15
+  }
16
+}

+ 46
- 0
ios/Podfile View File

@@ -0,0 +1,46 @@
1
+platform :ios, '10.0'
2
+
3
+require_relative '../node_modules/react-native-unimodules/cocoapods'
4
+require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
5
+
6
+target 'Campus' do
7
+  rnPrefix = "../node_modules/react-native"
8
+
9
+  # React Native and its dependencies
10
+  pod 'FBLazyVector', :path => "#{rnPrefix}/Libraries/FBLazyVector"
11
+  pod 'FBReactNativeSpec', :path => "#{rnPrefix}/Libraries/FBReactNativeSpec"
12
+  pod 'RCTRequired', :path => "#{rnPrefix}/Libraries/RCTRequired"
13
+  pod 'RCTTypeSafety', :path => "#{rnPrefix}/Libraries/TypeSafety"
14
+  pod 'React', :path => "#{rnPrefix}/"
15
+  pod 'React-Core', :path => "#{rnPrefix}/"
16
+  pod 'React-CoreModules', :path => "#{rnPrefix}/React/CoreModules"
17
+  pod 'React-RCTActionSheet', :path => "#{rnPrefix}/Libraries/ActionSheetIOS"
18
+  pod 'React-RCTAnimation', :path => "#{rnPrefix}/Libraries/NativeAnimation"
19
+  pod 'React-RCTBlob', :path => "#{rnPrefix}/Libraries/Blob"
20
+  pod 'React-RCTImage', :path => "#{rnPrefix}/Libraries/Image"
21
+  pod 'React-RCTLinking', :path => "#{rnPrefix}/Libraries/LinkingIOS"
22
+  pod 'React-RCTNetwork', :path => "#{rnPrefix}/Libraries/Network"
23
+  pod 'React-RCTSettings', :path => "#{rnPrefix}/Libraries/Settings"
24
+  pod 'React-RCTText', :path => "#{rnPrefix}/Libraries/Text"
25
+  pod 'React-RCTVibration', :path => "#{rnPrefix}/Libraries/Vibration"
26
+  pod 'React-Core/RCTWebSocket', :path => "#{rnPrefix}/"
27
+  pod 'React-Core/DevSupport', :path => "#{rnPrefix}/"
28
+  pod 'React-cxxreact', :path => "#{rnPrefix}/ReactCommon/cxxreact"
29
+  pod 'React-jsi', :path => "#{rnPrefix}/ReactCommon/jsi"
30
+  pod 'React-jsiexecutor', :path => "#{rnPrefix}/ReactCommon/jsiexecutor"
31
+  pod 'React-jsinspector', :path => "#{rnPrefix}/ReactCommon/jsinspector"
32
+  pod 'ReactCommon/jscallinvoker', :path => "#{rnPrefix}/ReactCommon"
33
+  pod 'ReactCommon/turbomodule/core', :path => "#{rnPrefix}/ReactCommon"
34
+  pod 'Yoga', :path => "#{rnPrefix}/ReactCommon/yoga"
35
+  pod 'DoubleConversion', :podspec => "#{rnPrefix}/third-party-podspecs/DoubleConversion.podspec"
36
+  pod 'glog', :podspec => "#{rnPrefix}/third-party-podspecs/glog.podspec"
37
+  pod 'Folly', :podspec => "#{rnPrefix}/third-party-podspecs/Folly.podspec"
38
+
39
+  # Other native modules
40
+
41
+  # Automatically detect installed unimodules
42
+  use_unimodules!
43
+
44
+  # react-native-cli autolinking
45
+  use_native_modules!
46
+end

+ 18
- 17
package.json View File

@@ -1,11 +1,9 @@
1 1
 {
2
-  "main": "node_modules/expo/AppEntry.js",
3 2
   "scripts": {
4
-    "start": "expo start",
5
-    "android": "expo start --android",
6
-    "ios": "expo start --ios",
3
+    "start": "react-native start",
4
+    "android": "react-native run-android",
5
+    "ios": "react-native run-ios",
7 6
     "web": "expo start --web",
8
-    "eject": "expo eject",
9 7
     "test": "jest",
10 8
     "testw": "jest --watch",
11 9
     "testc": "jest --coverage"
@@ -20,13 +18,21 @@
20 18
     ]
21 19
   },
22 20
   "dependencies": {
21
+    "expo": "^37.0.0",
22
+    "react": "~16.9.0",
23
+    "react-dom": "16.9.0",
24
+    "react-native": "~0.61.5",
25
+    "react-native-gesture-handler": "~1.6.0",
26
+    "react-native-reanimated": "~1.7.0",
27
+    "react-native-screens": "~2.2.0",
28
+    "react-native-unimodules": "~0.9.0",
29
+    "react-native-web": "~0.11.7",
23 30
     "@expo/vector-icons": "^10.0.0",
24 31
     "@react-native-community/masked-view": "0.1.6",
25 32
     "@react-navigation/bottom-tabs": "^5.1.1",
26 33
     "@react-navigation/drawer": "^5.1.1",
27 34
     "@react-navigation/native": "^5.0.9",
28 35
     "@react-navigation/stack": "^5.1.1",
29
-    "expo": "^37.0.0",
30 36
     "expo-barcode-scanner": "~8.1.0",
31 37
     "expo-camera": "latest",
32 38
     "expo-linear-gradient": "~8.1.0",
@@ -34,16 +40,12 @@
34 40
     "expo-permissions": "~8.1.0",
35 41
     "expo-secure-store": "~8.1.0",
36 42
     "i18n-js": "^3.3.0",
37
-    "react": "16.9.0",
38
-    "react-dom": "16.9.0",
39
-    "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.0.tar.gz",
40 43
     "react-native-animatable": "^1.3.3",
41 44
     "react-native-app-intro-slider": "^4.0.0",
42 45
     "react-native-appearance": "~0.3.3",
43 46
     "react-native-autolink": "^3.0.0",
44 47
     "react-native-calendars": "^1.260.0",
45 48
     "react-native-collapsible": "^1.5.2",
46
-    "react-native-gesture-handler": "~1.6.0",
47 49
     "react-native-image-modal": "^1.0.6",
48 50
     "react-native-modalize": "^1.3.6",
49 51
     "react-native-paper": "^3.8.0",
@@ -51,19 +53,18 @@
51 53
     "react-native-safe-area-context": "0.7.3",
52 54
     "react-native-webview": "8.1.1",
53 55
     "react-navigation-collapsible": "^5.5.0",
54
-    "react-navigation-header-buttons": "^3.0.5",
55
-    "react-native-screens": "~2.2.0",
56
-    "react-native-reanimated": "~1.7.0"
56
+    "react-navigation-header-buttons": "^3.0.5"
57 57
   },
58 58
   "devDependencies": {
59
-    "@babel/cli": "^7.8.4",
60 59
     "@babel/core": "^7.9.0",
60
+    "babel-jest": "~25.2.6",
61
+    "jest": "^25.1.0",
62
+    "react-test-renderer": "^16.13.1",
63
+    "@babel/cli": "^7.8.4",
61 64
     "@babel/preset-flow": "^7.9.0",
62 65
     "babel-preset-expo": "^8.1.0",
63 66
     "flow-bin": "^0.122.0",
64
-    "jest": "^25.1.0",
65
-    "jest-extended": "^0.11.5",
66
-    "react-test-renderer": "^16.13.1"
67
+    "jest-extended": "^0.11.5"
67 68
   },
68 69
   "private": true
69 70
 }

+ 2
- 2
src/utils/withCollapsible.js View File

@@ -19,8 +19,8 @@ export const withCollapsible = (Component: any) => {
19 19
             collapsibleStack={{
20 20
                 onScroll,
21 21
                 onScrollWithListener,
22
-                containerPaddingTop: containerPaddingTop - statusbarHeight,
23
-                scrollIndicatorInsetTop: scrollIndicatorInsetTop - statusbarHeight,
22
+                containerPaddingTop: containerPaddingTop,
23
+                scrollIndicatorInsetTop: scrollIndicatorInsetTop,
24 24
                 translateY,
25 25
                 progress,
26 26
                 opacity,

Loading…
Cancel
Save