Browse Source

Merge branch 'feature/update_questions' into develop

master
Dslak 6 years ago
parent
commit
d7816b5c72
  1. BIN
      certs/VDS-Quiz.jks
  2. 2
      data/JSON/aerodynamics.json
  3. 2
      data/JSON/firstAid.json
  4. 2
      data/JSON/flightSafety.json
  5. 2
      data/JSON/instruments.json
  6. 2
      data/JSON/legislation.json
  7. 2
      data/JSON/materials.json
  8. 2
      data/JSON/meteorology.json
  9. 2
      data/JSON/physiopathology.json
  10. 2
      data/JSON/pilotingTechniques.json
  11. BIN
      data/quiz_VDS-VL_2017.pdf
  12. BIN
      data/quizi-esami-vds-vm.rar
  13. 205
      ejected/android/app/build.gradle
  14. 68
      ejected/android/app/expo.gradle
  15. 3
      ejected/android/app/fabric.properties
  16. 50
      ejected/android/app/google-services.json
  17. 152
      ejected/android/app/proguard-rules.pro
  18. 369
      ejected/android/app/src/main/AndroidManifest.xml
  19. 1
      ejected/android/app/src/main/assets/kernel-manifest.json
  20. 46
      ejected/android/app/src/main/java/host/exp/exponent/MainActivity.java
  21. 48
      ejected/android/app/src/main/java/host/exp/exponent/MainApplication.java
  22. 46
      ejected/android/app/src/main/java/host/exp/exponent/generated/AppConstants.java
  23. 8
      ejected/android/app/src/main/java/host/exp/exponent/generated/DetachBuildConstants.java
  24. BIN
      ejected/android/app/src/main/res/drawable-hdpi/ic_arrow_back_white_36dp.png
  25. BIN
      ejected/android/app/src/main/res/drawable-hdpi/ic_home_white_36dp.png
  26. BIN
      ejected/android/app/src/main/res/drawable-hdpi/ic_logo_white_32dp.png
  27. BIN
      ejected/android/app/src/main/res/drawable-hdpi/ic_refresh_white_36dp.png
  28. BIN
      ejected/android/app/src/main/res/drawable-hdpi/ic_share_white_36dp.png
  29. BIN
      ejected/android/app/src/main/res/drawable-mdpi/ic_arrow_back_white_36dp.png
  30. BIN
      ejected/android/app/src/main/res/drawable-mdpi/ic_home_white_36dp.png
  31. BIN
      ejected/android/app/src/main/res/drawable-mdpi/ic_logo_white_32dp.png
  32. BIN
      ejected/android/app/src/main/res/drawable-mdpi/ic_refresh_white_36dp.png
  33. BIN
      ejected/android/app/src/main/res/drawable-mdpi/ic_share_white_36dp.png
  34. BIN
      ejected/android/app/src/main/res/drawable-xhdpi/ic_arrow_back_white_36dp.png
  35. BIN
      ejected/android/app/src/main/res/drawable-xhdpi/ic_home_white_36dp.png
  36. BIN
      ejected/android/app/src/main/res/drawable-xhdpi/ic_logo_white_32dp.png
  37. BIN
      ejected/android/app/src/main/res/drawable-xhdpi/ic_refresh_white_36dp.png
  38. BIN
      ejected/android/app/src/main/res/drawable-xhdpi/ic_share_white_36dp.png
  39. BIN
      ejected/android/app/src/main/res/drawable-xxhdpi/ic_arrow_back_white_36dp.png
  40. BIN
      ejected/android/app/src/main/res/drawable-xxhdpi/ic_home_white_36dp.png
  41. BIN
      ejected/android/app/src/main/res/drawable-xxhdpi/ic_logo_white_32dp.png
  42. BIN
      ejected/android/app/src/main/res/drawable-xxhdpi/ic_refresh_white_36dp.png
  43. BIN
      ejected/android/app/src/main/res/drawable-xxhdpi/ic_share_white_36dp.png
  44. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/big_logo_dark.png
  45. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/big_logo_dark_filled.png
  46. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/big_logo_filled.png
  47. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/big_logo_new_filled.png
  48. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/ic_arrow_back_white_36dp.png
  49. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/ic_home_white_36dp.png
  50. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/ic_logo_white_32dp.png
  51. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/ic_refresh_white_36dp.png
  52. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/ic_share_white_36dp.png
  53. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/notification_icon.png
  54. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/pin_white.png
  55. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/pin_white_fade.png
  56. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/shell_launch_background_image.png
  57. BIN
      ejected/android/app/src/main/res/drawable-xxxhdpi/shell_notification_icon.png
  58. 8
      ejected/android/app/src/main/res/drawable/splash_background.xml
  59. 9
      ejected/android/app/src/main/res/layout/error_activity_new.xml
  60. 56
      ejected/android/app/src/main/res/layout/error_console_fragment.xml
  61. 31
      ejected/android/app/src/main/res/layout/error_console_list_item.xml
  62. 96
      ejected/android/app/src/main/res/layout/error_fragment.xml
  63. 8
      ejected/android/app/src/main/res/layout/exponent_button.xml
  64. 8
      ejected/android/app/src/main/res/layout/exponent_check_box.xml
  65. 31
      ejected/android/app/src/main/res/layout/exponent_dev_activity.xml
  66. 67
      ejected/android/app/src/main/res/layout/notification.xml
  67. 47
      ejected/android/app/src/main/res/layout/notification_shell_app.xml
  68. BIN
      ejected/android/app/src/main/res/mipmap-hdpi/dev_icon.png
  69. BIN
      ejected/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
  70. BIN
      ejected/android/app/src/main/res/mipmap-mdpi/dev_icon.png
  71. BIN
      ejected/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
  72. BIN
      ejected/android/app/src/main/res/mipmap-xhdpi/dev_icon.png
  73. BIN
      ejected/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
  74. BIN
      ejected/android/app/src/main/res/mipmap-xxhdpi/dev_icon.png
  75. BIN
      ejected/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  76. BIN
      ejected/android/app/src/main/res/mipmap-xxxhdpi/dev_icon.png
  77. BIN
      ejected/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  78. 6
      ejected/android/app/src/main/res/values-w820dp/dimens.xml
  79. 14
      ejected/android/app/src/main/res/values/colors.xml
  80. 6
      ejected/android/app/src/main/res/values/dimens.xml
  81. 14
      ejected/android/app/src/main/res/values/strings.xml
  82. 47
      ejected/android/app/src/main/res/values/styles.xml
  83. 79
      ejected/android/build.gradle
  84. BIN
      ejected/android/debug.keystore
  85. 6
      ejected/android/gradle.properties
  86. BIN
      ejected/android/gradle/wrapper/gradle-wrapper.jar
  87. 6
      ejected/android/gradle/wrapper/gradle-wrapper.properties
  88. 160
      ejected/android/gradlew
  89. 9
      ejected/android/settings.gradle
  90. 3
      scripts/export.php
  91. 40
      scripts/import.php
  92. 2
      scripts/replace.sh
  93. 734
      svg/header.svg
  94. 0
      svg/logo.svg
  95. 635
      svg/logoIOS.svg
  96. 0
      svg/splash.svg
  97. BIN
      vds-app/App/assets/header.png
  98. 1
      vds-app/App/components/ExamQuestions.js
  99. 230
      vds-app/App/data/aerodynamics.js
  100. 152
      vds-app/App/data/firstAid.js

BIN
certs/VDS-Quiz.jks

Binary file not shown.

2
data/JSON/aerodynamics.json

File diff suppressed because one or more lines are too long

2
data/JSON/firstAid.json

File diff suppressed because one or more lines are too long

2
data/JSON/flightSafety.json

File diff suppressed because one or more lines are too long

2
data/JSON/instruments.json

File diff suppressed because one or more lines are too long

2
data/JSON/legislation.json

File diff suppressed because one or more lines are too long

2
data/JSON/materials.json

File diff suppressed because one or more lines are too long

2
data/JSON/meteorology.json

File diff suppressed because one or more lines are too long

2
data/JSON/physiopathology.json

@ -1 +1 @@
[{"id":"4001","question":"Come varia la pressione parziale dell\u2019ossigeno a livello polmonare, al variare dell\u2019altitudine?","answers":[{"id":"1","text":"diminuisce all\u2019aumentare dell\u2019altitudine.","correct":true},{"id":"2","text":"diminuisce all\u2019aumentare dell\u2019altitudine, ma non scende mai sotto valori di guardia."},{"id":"3","text":"aumenta all\u2019aumentare dell\u2019altitudine."}]},{"id":"4002","question":"Ad elevate altitudini nell\u2019organismo umano si instaura una situazione alterata, prodotta dalla ridotta pressione di ossigeno. Essa prende il nome di:","answers":[{"id":"1","text":"ipotermia."},{"id":"2","text":"ipossia.","correct":true},{"id":"3","text":"ipotensione."}]},{"id":"4003","question":"Che cosa \u00e8 l\u2019ipossia?","answers":[{"id":"1","text":"\u00e8 lo stato in cui l\u2019organismo viene a trovarsi a causa dell\u2019insufficiente pressione sanguigna dovuta alla quota."},{"id":"2","text":"\u00e8 lo stato in cui l\u2019organismo viene a trovarsi a causa dell\u2019insufficiente temperatura corporea dovuta alla quota."},{"id":"3","text":"\u00e8 lo stato in cui l\u2019organismo viene a trovarsi a causa dell\u2019insufficiente pressione dell\u2019ossigeno a livello degli alveoli polmonari dovuta alla quota.","correct":true}]},{"id":"4004","question":"Quali sono gli effetti dell\u2019ipossia?","answers":[{"id":"1","text":"diminuzione dell\u2019efficienza mentale, nausea, euforia, aumento del ritmo di ventilazione polmonare.","correct":true},{"id":"2","text":"vasodilatazione periferica, secchezza delle fauci, rigidit\u00e0 muscolare, diminuzione del ritmo di ventilazione polmonare."},{"id":"3","text":"diminuzione della pressione arteriosa, ischemia periferica, paralisi dei centri respiratori."}]},{"id":"4005","question":"La decompressione da alta quota pu\u00f2 dar luogo a liberazione di bolle gassose nel sangue, detti emboli. Qual \u00e8 la condizione in cui questo pericoloso fenomeno pu\u00f2 verificarsi con maggiore facilit\u00e0?","answers":[{"id":"1","text":"lenta ascensione oltre i 7000 metri."},{"id":"2","text":"rapida ascensione a 7000 metri ed oltre.","correct":true},{"id":"3","text":"permanenza ad alta quota dopo lungo periodo di ambientamento. DEL VOLO"}]},{"id":"4006","question":"Durante il volo il corpo umano \u00e8 sottoposto a vari tipi di accelerazione. Quali sono meglio sopportate tra quelle positive (testa-piedi) e quelle negative (piedi-testa)?","answers":[{"id":"1","text":"entrambe in uguale misura."},{"id":"2","text":"quelle negative."},{"id":"3","text":"quelle positive.","correct":true}]},{"id":"4007","question":"Le accelerazioni positive (testa-piedi) corrispondono a un aumento dei \u201cG\u201d o meglio a un aumento fittizio dell\u2019accelerazione di gravit\u00e0. Quando si possono manifestare in volo?","answers":[{"id":"1","text":"durante virate corrette.","correct":true},{"id":"2","text":"durante il volo su traiettoria rettilinea con forte pendenza."},{"id":"3","text":"durante brusche manovre di picchiata."}]},{"id":"4008","question":"Le accelerazioni negative (piedi-testa) corrispondono a una diminuzione dei \u201cG\u201d o meglio a una diminuzione fittizia della accelerazione di gravit\u00e0. Quando si possono manifestare in volo?","answers":[{"id":"1","text":"durante una brusca richiamata."},{"id":"2","text":"durante brusche manovre di picchiata.","correct":true},{"id":"3","text":"durante il volo su traiettoria rettilinea con forte pendenza."}]},{"id":"4009","question":"Quando sussiste in volo il rischio che il pilota soffra di un oscuramento della vista a seguito di manovre che inducono forti accelerazioni?","answers":[{"id":"1","text":"quando le accelerazioni indotte sono del tipo positivo (testa-piedi) e superano i 4 \u201cG\u201d per un tempo superiore a 4 secondi.","correct":true},{"id":"2","text":"quando comunque sono del tipo negativo (piedi-testa)."},{"id":"3","text":"quando si passa da accelerazioni positive ad accelerazioni negative senza soluzione di continuit\u00e0 in meno di 4 secondi."}]}]
[{"id":"4001","question":"Come varia la pressione parziale dell\u2019ossigeno a livello polmonare, al variare dell\u2019altitudine?","points":"2","answers":[{"id":"1","text":"Diminuisce all\u2019aumentare dell\u2019altitudine.","correct":true},{"id":"2","text":"Diminuisce all\u2019aumentare dell\u2019altitudine, ma non scende mai sotto valori di guardia."},{"id":"3","text":"Aumenta all\u2019aumentare dell\u2019altitudine."}]},{"id":"4002","question":"Ad elevate altitudini nell\u2019organismo umano si instaura una situazione alterata, prodotta dalla ridotta pressione di ossigeno. Essa prende il nome di:","points":"2","answers":[{"id":"1","text":"ipotermia."},{"id":"2","text":"ipossia.","correct":true},{"id":"3","text":"ipotensione."}]},{"id":"4003","question":"Che cosa \u00e8 l\u2019ipossia?","points":"2","answers":[{"id":"1","text":"\u00c8 lo stato in cui l\u2019organismo viene a trovarsi a causa dell\u2019insufficiente pressione sanguigna dovuta alla quota."},{"id":"2","text":"\u00c8 lo stato in cui l\u2019organismo viene a trovarsi a causa dell\u2019insufficiente temperatura corporea dovuta alla quota."},{"id":"3","text":"\u00c8 lo stato in cui l\u2019organismo viene a trovarsi a causa dell\u2019insufficiente pressione dell\u2019ossigeno a livello degli alveoli polmonari dovuta alla quota.","correct":true}]},{"id":"4004","question":"Quali sono gli effetti dell\u2019ipossia?","points":"2","answers":[{"id":"1","text":"Diminuzione dell\u2019efficienza mentale, nausea, euforia, aumento del ritmo di ventilazione polmonare.","correct":true},{"id":"2","text":"Vasodilatazione periferica, secchezza delle fauci, rigidit\u00e0 muscolare, diminuzione del ritmo di ventilazione polmonare."},{"id":"3","text":"Diminuzione della pressione arteriosa, ischemia periferica, paralisi dei centri respiratori."}]},{"id":"4005","question":"La decompressione da alta quota pu\u00f2 dar luogo a liberazione di bolle gassose nel sangue, detti emboli. Qual \u00e8 la condizione in cui questo pericoloso fenomeno pu\u00f2 verificarsi con maggiore facilit\u00e0?","points":"2","answers":[{"id":"1","text":"Lenta ascensione oltre i 7000 metri."},{"id":"2","text":"Rapida ascensione a 7000 metri ed oltre.","correct":true},{"id":"3","text":"Permanenza ad alta quota dopo lungo periodo di ambientamento. DEL VOLO"}]},{"id":"4006","question":"Durante il volo il corpo umano \u00e8 sottoposto a vari tipi di accelerazione. Quali sono meglio sopportate tra quelle positive (testa-piedi) e quelle negative (piedi-testa)?","points":"2","answers":[{"id":"1","text":"Entrambe in uguale misura."},{"id":"2","text":"Quelle negative."},{"id":"3","text":"Quelle positive.","correct":true}]},{"id":"4007","question":"Le accelerazioni positive (testa-piedi) corrispondono a un aumento dei \u201cG\u201d o meglio a un aumento fittizio dell\u2019accelerazione di gravit\u00e0. Quando si possono manifestare in volo?","points":"2","answers":[{"id":"1","text":"Durante virate corrette.","correct":true},{"id":"2","text":"Durante il volo su traiettoria rettilinea con forte pendenza."},{"id":"3","text":"Durante brusche manovre di picchiata."}]},{"id":"4008","question":"Le accelerazioni negative (piedi-testa) corrispondono a una diminuzione dei \u201cG\u201d o meglio a una diminuzione fittizia della accelerazione di gravit\u00e0. Quando si possono manifestare in volo?","points":"2","answers":[{"id":"1","text":"Durante una brusca richiamata."},{"id":"2","text":"Durante brusche manovre di picchiata.","correct":true},{"id":"3","text":"Durante il volo su traiettoria rettilinea con forte pendenza."}]},{"id":"4009","question":"Quando sussiste in volo il rischio che il pilota soffra di un oscuramento della vista a seguito di manovre che inducono forti accelerazioni?","points":"2","answers":[{"id":"1","text":"Quando le accelerazioni indotte sono del tipo positivo (testa-piedi) e superano i 4 \u201cG\u201d per un tempo superiore a 4 secondi.","correct":true},{"id":"2","text":"Quando comunque sono del tipo negativo (piedi-testa)."},{"id":"3","text":"Quando si passa da accelerazioni positive ad accelerazioni negative senza soluzione di continuit\u00e0 in meno di 4 secondi."}]}]

2
data/JSON/pilotingTechniques.json

File diff suppressed because one or more lines are too long

BIN
data/quiz_VDS-VL_2017.pdf

Binary file not shown.

BIN
data/quizi-esami-vds-vm.rar

Binary file not shown.

205
ejected/android/app/build.gradle

@ -1,205 +0,0 @@
buildscript {
repositories {
google()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.26.1'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'devicefarm'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
def safeExtGet(prop, fallback) {
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
}
android {
compileSdkVersion safeExtGet("compileSdkVersion", 28)
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId 'com.dslak.vdsquiz'
minSdkVersion safeExtGet("minSdkVersion", 21)
targetSdkVersion safeExtGet("targetSdkVersion", 28)
versionCode 1
versionName '1.0.0'
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// Deprecated. Used by net.openid:appauth
manifestPlaceholders = [
'appAuthRedirectScheme': 'host.exp.exponent'
]
}
dexOptions {
javaMaxHeapSize System.getenv("DISABLE_DEX_MAX_HEAP") ? null : "8g"
}
signingConfigs {
debug {
storeFile file('../debug.keystore')
}
release {
storeFile file(System.getenv("ANDROID_KEYSTORE_PATH") ?: "release-key.jks")
storePassword System.getenv("ANDROID_KEYSTORE_PASSWORD")
keyAlias System.getenv("ANDROID_KEY_ALIAS")
keyPassword System.getenv("ANDROID_KEY_PASSWORD")
}
}
buildTypes {
debug {
debuggable true
ext.enableCrashlytics = false
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
consumerProguardFiles 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
lintOptions {
abortOnError false
}
packagingOptions {
pickFirst "**"
}
}
devicefarm {
projectName System.getenv("DEVICEFARM_PROJECT_NAME")
devicePool System.getenv("DEVICEFARM_DEVICE_POOL")
executionTimeoutMinutes 40
authentication {
accessKey System.getenv("AWS_ACCESS_KEY_ID")
secretKey System.getenv("AWS_SECRET_ACCESS_KEY")
}
}
configurations.all {
resolutionStrategy {
force 'org.webkit:android-jsc:r245459'
}
}
// WHEN_PREPARING_SHELL_REMOVE_FROM_HERE
apply from: 'expo.gradle'
// WHEN_PREPARING_SHELL_REMOVE_TO_HERE
apply from: "../../node_modules/react-native-unimodules/gradle.groovy"
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:multidex:1.0.1'
// Our dependencies
implementation "com.android.support:appcompat-v7:$supportLibVersion"
// Our dependencies from ExpoView
// DON'T ADD ANYTHING HERE THAT ISN'T IN EXPOVIEW. ONLY COPY THINGS FROM EXPOVIEW TO HERE.
implementation "com.android.support:appcompat-v7:$supportLibVersion"
implementation 'com.facebook.android:facebook-android-sdk:5.0.1'
implementation('com.facebook.android:audience-network-sdk:5.1.1') {
exclude module: 'play-services-ads'
}
compileOnly 'org.glassfish:javax.annotation:3.1.1'
implementation 'com.jakewharton:butterknife:9.0.0'
implementation 'de.greenrobot:eventbus:2.4.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.google.android.gms:play-services-gcm:15.0.1'
implementation 'com.google.android.gms:play-services-analytics:16.0.1'
implementation 'com.google.android.gms:play-services-maps:15.0.1'
implementation 'com.google.android.gms:play-services-auth:15.0.1'
implementation 'com.google.android.gms:play-services-location:15.0.1'
implementation "com.madgag.spongycastle:core:1.53.0.0"
implementation "com.madgag.spongycastle:prov:1.53.0.0"
debugImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'
// debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.4-beta1'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'
implementation 'com.facebook.device.yearclass:yearclass:2.1.0'
implementation 'commons-io:commons-io:1.4'
implementation 'me.leolin:ShortcutBadger:1.1.4@aar'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
implementation 'commons-codec:commons-codec:1.10'
implementation 'com.segment.analytics.android:analytics:4.3.0'
implementation 'com.google.zxing:core:3.3.3'
implementation 'net.openid:appauth:0.4.1'
implementation 'com.airbnb.android:lottie:2.5.6'
implementation('io.nlopez.smartlocation:library:3.2.11') {
transitive = false
}
implementation "com.android.support:exifinterface:${safeExtGet("supportLibVersion", "28.0.0")}"
implementation 'com.squareup.okio:okio:1.9.0'
implementation 'com.facebook.soloader:soloader:0.6.0'
// expo-file-system
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'com.squareup.okhttp3:okhttp-urlconnection:3.10.0'
// Testing
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
// We use a modified build of com.android.support.test:runner:1.0.1. Explanation in maven-test/README
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation "com.android.support:support-annotations:${safeExtGet("supportLibVersion", "28.0.0")}"
androidTestImplementation 'com.google.code.findbugs:jsr305:3.0.0'
androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
androidTestImplementation 'com.azimolabs.conditionwatcher:conditionwatcher:0.2'
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:1.10.19'
testImplementation 'org.robolectric:robolectric:3.8'
testImplementation 'com.android.support.test:runner:1.0.2-alpha1'
testImplementation 'com.android.support.test:rules:1.0.2-alpha1'
implementation('host.exp.exponent:expoview:35.0.0@aar') {
transitive = true
exclude group: 'com.squareup.okhttp3', module: 'okhttp'
exclude group: 'com.squareup.okhttp3', module: 'okhttp-urlconnection'
}
api 'org.webkit:android-jsc:r245459' // needs to be before react-native
api 'com.facebook.react:react-native:33.0.0'
addUnimodulesDependencies([
modulesPaths : [
'../../node_modules'
],
configuration: 'api',
target : 'react-native',
exclude : [
// You can exclude unneeded modules here, eg.
// 'unimodules-face-detector-interface',
// 'expo-face-detector'
// Adding a name here will also remove the package
// from auto-generated BasePackageList.java
]
])
}
// This has to be down here for some reason
apply plugin: 'com.google.gms.google-services'

68
ejected/android/app/expo.gradle

@ -1,68 +0,0 @@
// Gradle script for detached apps.
import org.apache.tools.ant.taskdefs.condition.Os
void runBefore(String dependentTaskName, Task task) {
Task dependentTask = tasks.findByPath(dependentTaskName);
if (dependentTask != null) {
dependentTask.dependsOn task
}
}
afterEvaluate {
def expoRoot = file("../../")
def inputExcludes = ["android/**", "ios/**"]
task exponentPrebuildStep(type: Exec) {
workingDir expoRoot
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
commandLine "cmd", "/c", ".\\node_modules\\expokit\\detach-scripts\\run-exp.bat"
} else {
commandLine "./node_modules/expokit/detach-scripts/run-exp.sh", "prepare-detached-build", "--platform", "android", expoRoot
}
}
runBefore("preBuild", exponentPrebuildStep)
// Based on https://github.com/facebook/react-native/blob/master/react.gradle
android.applicationVariants.each { variant ->
def folderName = variant.name
def targetName = folderName.capitalize()
def assetsDir = file("$buildDir/intermediates/merged_assets/${folderName}/merge${targetName}Assets/out")
// Bundle task name for variant
def bundleExpoAssetsTaskName = "bundle${targetName}ExpoAssets"
def currentBundleTask = tasks.create(
name: bundleExpoAssetsTaskName,
type: Exec) {
description = "Expo bundle assets for ${targetName}."
// Create dirs if they are not there (e.g. the "clean" task just ran)
doFirst {
assetsDir.mkdirs()
}
// Set up inputs and outputs so gradle can cache the result
inputs.files fileTree(dir: expoRoot, excludes: inputExcludes)
outputs.dir assetsDir
// Set up the call to exp
workingDir expoRoot
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
commandLine("cmd", "/c", ".\\node_modules\\expokit\\detach-scripts\\run-exp.bat", "bundle-assets", expoRoot, "--platform", "android", "--dest", assetsDir)
} else {
commandLine("./node_modules/expokit/detach-scripts/run-exp.sh", "bundle-assets", expoRoot, "--platform", "android", "--dest", assetsDir)
}
enabled targetName.toLowerCase().contains("release") || targetName.toLowerCase().contains("prod")
}
currentBundleTask.dependsOn("merge${targetName}Resources")
currentBundleTask.dependsOn("merge${targetName}Assets")
runBefore("process${targetName}Resources", currentBundleTask)
}
}

3
ejected/android/app/fabric.properties

@ -1,3 +0,0 @@
#Contains API Secret used to validate your application. Commit to internal source control; avoid making secret public.
#Sun Dec 13 13:22:06 PST 2015
apiSecret=83176563693e1eefa1a91359c4151b88c3fd17e52ddf6d64416b7f1e0fa9cede

50
ejected/android/app/google-services.json

@ -1,50 +0,0 @@
{
"project_info": {
"project_id": "exponent-5dd6d",
"project_number": "367315174693",
"name": "Expo Client"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:367315174693:android:f968efbb41d1fa7a",
"client_id": "android:host.exp.exponent",
"client_type": 1,
"android_client_info": {
"package_name": "com.dslak.vdsquiz",
"certificate_hash": ""
}
},
"oauth_client": [],
"api_key": [
{
"current_key": ""
}
],
"services": {
"analytics_service": {
"status": 2,
"analytics_property": {
"tracking_id": "UA-76673608-1"
}
},
"cloud_messaging_service": {
"status": 2,
"apns_config": []
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"google_signin_service": {
"status": 1
},
"ads_service": {
"status": 1
}
}
}
],
"client_info": [],
"ARTIFACT_VERSION": "1"
}

152
ejected/android/app/proguard-rules.pro

@ -1,152 +0,0 @@
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/ide/Library/Android/sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# THIS IS VERY VERY BAD. REMOVE AS SOON AS VERSIONING IS FIXED
-dontwarn **
-dontnote **
-keep class host.exp.exponent.generated.AppConstants { *; }
##### Crashlytics #####
-keepattributes SourceFile,LineNumberTable
##### Expo Universal Modules #####
-keepclassmembers class * {
@**.expo.core.interfaces.ExpoProp *;
}
-keepclassmembers class * {
@**.expo.core.interfaces.ExpoMethod *;
}
-keep @**.expo.core.interfaces.DoNotStrip class *
-keepclassmembers class * {
@**.expo.core.interfaces.DoNotStrip *;
}
##### React Native #####
-keep,allowobfuscation @interface **.facebook.proguard.annotations.DoNotStrip
-keep,allowobfuscation @interface **.facebook.proguard.annotations.KeepGettersAndSetters
-keep,allowobfuscation @interface **.facebook.react.bridge.ReadableType
# Do not strip any method/class that is annotated with @DoNotStrip
-keep @**.facebook.proguard.annotations.DoNotStrip class *
-keepclassmembers class * {
@**.facebook.proguard.annotations.DoNotStrip *;
}
-keepclassmembers @**.facebook.proguard.annotations.KeepGettersAndSetters class * {
void set*(***);
*** get*();
}
-keep class * extends **.facebook.react.bridge.JavaScriptModule { *; }
-keep class * extends **.facebook.react.bridge.NativeModule { *; }
-keepclassmembers class * { @**.facebook.react.uimanager.UIProp <fields>; }
-keepclassmembers class * { @**.facebook.react.uimanager.ReactProp <methods>; }
-keepclassmembers class * { @**.facebook.react.uimanager.ReactPropGroup <methods>; }
# TODO: shouldn't need these two rules
-keep interface **.facebook.react.bridge.** { *; }
-keep enum **.facebook.react.bridge.** { *; }
##### Versioned React Native #####
-keep class **.facebook.** { *; }
-keep class abi** { *; }
-keep class versioned** { *; }
-keep class expo.modules** { *; }
##### Butterknife #####
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * {
@butterknife.* <fields>;
}
-keepclasseswithmembernames class * {
@butterknife.* <methods>;
}
##### Stetho #####
-keep class **.facebook.stetho.** { *; }
-dontwarn **.facebook.stetho.**
##### fresco #####
# Keep our interfaces so they can be used by other ProGuard rules.
# See http://sourceforge.net/p/proguard/bugs/466/
-keep,allowobfuscation @interface **.facebook.common.internal.DoNotStrip
# Do not strip any method/class that is annotated with @DoNotStrip
-keep @**.facebook.common.internal.DoNotStrip class *
-keepclassmembers class * {
@**.facebook.common.internal.DoNotStrip *;
}
# Keep native methods
-keepclassmembers class * {
native <methods>;
}
-dontwarn okio.**
-dontwarn javax.annotation.**
-dontwarn com.android.volley.toolbox.**
##### okhttp #####
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
# This is also needed by Picasso
-dontwarn com.squareup.okhttp.**
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
# This is also needed by Picasso
-dontwarn okhttp3.**
##### okio #####
-keep class sun.misc.Unsafe { *; }
-dontwarn java.nio.file.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn okio.**
##### EventBus #####
-keepclassmembers class ** {
public void onEvent*(***);
}
# Only required if you use AsyncExecutor
-keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}
##### Amplitude #####
-keep class com.amplitude.api.** {*;}
##### DBFlow #####
-keep class com.raizlabs.android.dbflow.config.GeneratedDatabaseHolder
##### SpongyCastle #####
-keep class org.spongycastle.**
-dontwarn org.spongycastle.jce.provider.X509LDAPCertStoreSpi
-dontwarn org.spongycastle.x509.util.LDAPStoreHelper

369
ejected/android/app/src/main/AndroidManifest.xml

@ -1,369 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
package="host.exp.exponent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<permission
android:name="com.dslak.vdsquiz.permission.C2D_MESSAGE"
android:protectionLevel="signature"/>
<!-- These are required permissions to make the app run -->
<uses-permission android:name="com.dslak.vdsquiz.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove" />
<uses-permission android:name="android.permission.CAMERA" tools:node="remove" />
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" tools:node="remove" />
<uses-permission android:name="android.permission.READ_CONTACTS" tools:node="remove" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" tools:node="remove" />
<uses-permission android:name="android.permission.READ_CALENDAR" tools:node="remove" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" tools:node="remove" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" tools:node="remove" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
<uses-permission android:name="android.permission.RECORD_AUDIO" tools:node="remove" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" tools:node="remove" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" />
<uses-permission android:name="android.permission.READ_SMS" tools:node="remove" />
<uses-permission android:name="com.anddoes.launcher.permission.UPDATE_COUNT" tools:node="remove" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" tools:node="remove" />
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" tools:node="remove" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" tools:node="remove" />
<uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS" tools:node="remove" />
<uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCUT" tools:node="remove" />
<uses-permission android:name="com.majeur.launcher.permission.UPDATE_BADGE" tools:node="remove" />
<uses-permission android:name="com.sec.android.provider.badge.permission.READ" tools:node="remove" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" tools:node="remove" />
<uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE" tools:node="remove" />
<!-- ADD TEST PERMISSIONS HERE -->
<uses-feature android:glEsVersion="0x00020000" android:required="false" />
<uses-feature android:name="android.software.leanback" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<application
android:name=".MainApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:usesCleartextTraffic="true">
<activity
android:name=".LauncherActivity"
android:exported="true"
android:launchMode="singleTask"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
</activity>
<activity
android:name=".experience.ExperienceActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@style/Theme.Exponent.Light"
android:windowSoftInputMode="adjustResize">
</activity>
<activity
android:name=".MainActivity"
android:launchMode="singleTask"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@style/Theme.Exponent.Splash"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<data android:scheme="expc1313981c09d48258582690c225378d8"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<!-- ADD DETACH APP SPECIFIC INTENT FILTERS -->
</activity>
<activity
android:name=".experience.HomeActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/Theme.Exponent.Light">
</activity>
<activity
android:name=".experience.TvActivity"
android:label="@string/app_name"
android:theme="@style/Theme.Exponent.Light"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
<!-- WHEN_PREPARING_SHELL_REMOVE_FROM_HERE -->
<!-- ADD DEV SETTINGS HERE -->
<!-- BEGIN_SDK_35 -->
<activity android:name="abi35_0_0.com.facebook.react.devsupport.DevSettingsActivity"/>
<!-- END_SDK_35 -->
<!-- BEGIN_SDK_34 -->
<activity android:name="abi34_0_0.com.facebook.react.devsupport.DevSettingsActivity"/>
<!-- END_SDK_34 -->
<!-- BEGIN_SDK_33 -->
<activity android:name="abi33_0_0.com.facebook.react.devsupport.DevSettingsActivity"/>
<!-- END_SDK_33 -->
<!-- WHEN_PREPARING_SHELL_REMOVE_TO_HERE -->
<activity
android:name=".ExponentDevActivity"
android:exported="true"
android:label="@string/dev_activity_name"
android:screenOrientation="portrait"
android:theme="@style/Theme.Exponent.Dark"
android:windowSoftInputMode="adjustPan">
</activity>
<activity
android:name=".oauth.OAuthWebViewActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.Exponent.Light">
</activity>
<activity
android:name="net.openid.appauth.RedirectUriReceiverActivity"
tools:node="replace">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="com.dslak.vdsquiz" android:path="oauthredirect"/>
</intent-filter>
</activity>
<activity
android:name=".oauth.OAuthResultActivity">
</activity>
<!-- START OF STRIPE SCHEMES -->
<activity
android:exported="true"
android:launchMode="singleTask"
android:name="expo.modules.payments.stripe.RedirectUriReceiver"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="expo.modules.payments.stripe.85c6cb4a-a530-402e-a683-229b365707be" />
</intent-filter>
</activity>
<!-- Versioned Activity for Stripe -->
<!-- BEGIN_SDK_abi35_0_0 -->
<activity
android:exported="true"
android:launchMode="singleTask"
android:name="abiabi35_0_0.expo.modules.payments.stripe.RedirectUriReceiver"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="abiabi35_0_0.expo.modules.payments.stripe" />
</intent-filter>
</activity>
<!-- END_SDK_abi35_0_0 -->
<!-- BEGIN_SDK_34 -->
<activity
android:exported="true"
android:launchMode="singleTask"
android:name="abi34_0_0.expo.modules.payments.stripe.RedirectUriReceiver"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="abi34_0_0.expo.modules.payments.stripe" />
</intent-filter>
</activity>
<!-- END_SDK_34 -->
<!-- BEGIN_SDK_33 -->
<activity
android:exported="true"
android:launchMode="singleTask"
android:name="abi33_0_0.expo.modules.payments.stripe.RedirectUriReceiver"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="abi33_0_0.expo.modules.payments.stripe" />
</intent-filter>
</activity>
<!-- END_SDK_33 -->
<!-- END OF STRIPE SCHEMES -->
<activity
android:name=".chrometabs.ChromeTabsManagerActivity">
</activity>
<activity
android:name=".experience.ErrorActivity"
android:theme="@style/Theme.Exponent.Dark"
android:screenOrientation="portrait">
</activity>
<activity
android:name=".experience.InfoActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.Exponent.Light">
</activity>
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
tools:replace="android:theme" />
<activity
android:name="com.facebook.ads.InterstitialAdActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<service
android:name=".ExponentIntentService"
android:exported="false" />
<!-- Analytics -->
<receiver
android:name="host.exp.exponent.referrer.InstallReferrerReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<!--
This crashes: https://code.google.com/p/analytics-issues/issues/detail?id=667
TODO: turn it back on when it's fixed
<service
android:name="com.google.android.gms.analytics.CampaignTrackingService"
android:enabled="true"
android:exported="false" />-->
<receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false"/>
<!-- GCM -->
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
<category android:name="com.dslak.vdsquiz"/>
</intent-filter>
</receiver>
<service
android:name=".gcm.ExponentGcmListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
</intent-filter>
</service>
<service
android:name=".gcm.ExponentInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>
<service
android:name=".gcm.GcmRegistrationIntentService"
android:exported="false">
</service>
<!-- FCM -->
<service
android:name=".fcm.ExpoFcmMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/shell_notification_icon" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@color/colorAccent" />
<service
android:name=".fcm.FcmRegistrationIntentService"
android:exported="false">
</service>
<!-- ImagePicker native module -->
<activity
android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
android:theme="@style/Base.Theme.AppCompat">
</activity>
<!-- ADD FABRIC CONFIG HERE -->
<!-- BEGIN FABRIC CONFIG -->
<meta-data
android:name="io.fabric.ApiKey"
android:value="a25fafe9f9edee11a9882b32e0cd7a26df6e2c42"/>
<!-- END FABRIC CONFIG -->
<!-- ADD GOOGLE MAPS CONFIG HERE -->
<!-- BEGIN GOOGLE MAPS CONFIG -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyDh7eDB9snEFSYtf-k0gfxA45HFoR0L--I"/>
<!-- END GOOGLE MAPS CONFIG -->
<!-- ADD GOOGLE MOBILE ADS CONFIG HERE -->
<!-- BEGIN GOOGLE MOBILE ADS CONFIG -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
<!-- END GOOGLE MOBILE ADS CONFIG -->
<!-- ADD BRANCH CONFIG HERE -->
<!-- The Facebook SDK runs FacebookInitProvider on startup and crashes if there isn't an ID here -->
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="fb0"/>
<meta-data android:name="standaloneStripeScheme" android:value="85c6cb4a-a530-402e-a683-229b365707be" />
</application>
</manifest>

1
ejected/android/app/src/main/assets/kernel-manifest.json

@ -1 +0,0 @@
{"android":{"package":"host.exp.exponent","publishBundlePath":"../android/app/src/main/assets/kernel.android.bundle"},"dependencies":["@expo/react-native-action-sheet","@expo/react-native-touchable-native-feedback-safe","@react-navigation/web","apollo-boost","apollo-cache-inmemory","dedent","es6-error","expo","expo-analytics-amplitude","expo-asset","expo-barcode-scanner","expo-blur","expo-camera","expo-constants","expo-font","expo-linear-gradient","expo-location","expo-permissions","expo-task-manager","expo-web-browser","graphql","graphql-tag","immutable","lodash","prop-types","querystring","react","react-apollo","react-native","react-native-appearance","react-native-fade-in-image","react-native-gesture-handler","react-native-infinite-scroll-view","react-native-maps","react-navigation","react-navigation-material-bottom-tabs","react-navigation-stack","react-navigation-tabs","react-redux","redux","redux-thunk","semver","sha1","url"],"description":"","extra":{"amplitudeApiKey":"081e5ec53f869b440b225d5e40ec73f9"},"icon":"https://s3.amazonaws.com/exp-brand-assets/ExponentEmptyManifest_192.png","iconUrl":"https://s3.amazonaws.com/exp-brand-assets/ExponentEmptyManifest_192.png","ios":{"bundleIdentifier":"host.exp.exponent","publishBundlePath":"../ios/Exponent/Supporting/kernel.ios.bundle","supportsTablet":true},"isKernel":true,"kernel":{"androidManifestPath":"../android/app/src/main/assets/kernel-manifest.json","iosManifestPath":"../ios/Exponent/Supporting/kernel-manifest.json"},"locales":{},"name":"expo-home","orientation":"portrait","packagerOpts":{"config":"metro.config.js"},"platforms":["ios","android"],"primaryColor":"#cccccc","privacy":"unlisted","scheme":"exp","sdkVersion":"UNVERSIONED","slug":"home","updates":{"checkAutomatically":"ON_LOAD","fallbackToCacheTimeout":0},"version":"35.0.0","id":"@exponent/home","revisionId":"35.0.0-r.j5K6M6VmKq","publishedTime":"2019-09-16T21:21:42.975Z","commitTime":"2019-09-16T21:21:43.016Z","bundleUrl":"https://exp.host/@exponent/home/bundle","releaseChannel":"default","hostUri":"exp.host/@exponent/home"}

46
ejected/android/app/src/main/java/host/exp/exponent/MainActivity.java

@ -1,46 +0,0 @@
package host.exp.exponent;
import android.os.Bundle;
import com.facebook.react.ReactPackage;
import org.unimodules.core.interfaces.Package;
import java.util.List;
import host.exp.exponent.experience.DetachActivity;
import host.exp.exponent.generated.DetachBuildConstants;
public class MainActivity extends DetachActivity {
@Override
public String publishedUrl() {
return "exp://exp.host/@dslaky/VDS-Quiz";
}
@Override
public String developmentUrl() {
return DetachBuildConstants.DEVELOPMENT_URL;
}
@Override
public List<ReactPackage> reactPackages() {
return ((MainApplication) getApplication()).getPackages();
}
@Override
public List<Package> expoPackages() {
return ((MainApplication) getApplication()).getExpoPackages();
}
@Override
public boolean isDebug() {
return BuildConfig.DEBUG;
}
@Override
public Bundle initialProps(Bundle expBundle) {
// Add extra initialProps here
return expBundle;
}
}

48
ejected/android/app/src/main/java/host/exp/exponent/MainApplication.java

@ -1,48 +0,0 @@
package host.exp.exponent;
import com.facebook.react.ReactPackage;
import org.unimodules.core.interfaces.Package;
import java.util.Arrays;
import java.util.List;
import expo.loaders.provider.interfaces.AppLoaderPackagesProviderInterface;
import host.exp.exponent.generated.BasePackageList;
import okhttp3.OkHttpClient;
// Needed for `react-native link`
// import com.facebook.react.ReactApplication;
public class MainApplication extends ExpoApplication implements AppLoaderPackagesProviderInterface<ReactPackage> {
@Override
public boolean isDebug() {
return BuildConfig.DEBUG;
}
// Needed for `react-native link`
public List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
// Add your own packages here!
// TODO: add native modules!
// Needed for `react-native link`
// new MainReactPackage()
);
}
public List<Package> getExpoPackages() {
return new BasePackageList().getPackageList();
}
@Override
public String gcmSenderId() {
return getString(R.string.gcm_defaultSenderId);
}
public static OkHttpClient.Builder okHttpClientBuilder(OkHttpClient.Builder builder) {
// Customize/override OkHttp client here
return builder;
}
}

46
ejected/android/app/src/main/java/host/exp/exponent/generated/AppConstants.java

@ -1,46 +0,0 @@
package host.exp.exponent.generated;
import com.facebook.common.internal.DoNotStrip;
import java.util.ArrayList;
import java.util.List;
import host.exp.exponent.BuildConfig;
import host.exp.exponent.Constants;
@DoNotStrip
public class AppConstants {
public static final String VERSION_NAME = "1.0.0";
public static String INITIAL_URL = "exp://exp.host/@dslaky/VDS-Quiz";
public static final String SHELL_APP_SCHEME = "expc1313981c09d48258582690c225378d8";
public static final String RELEASE_CHANNEL = "default";
public static boolean SHOW_LOADING_VIEW_IN_SHELL_APP = true;
public static boolean ARE_REMOTE_UPDATES_ENABLED = true;
public static final List<Constants.EmbeddedResponse> EMBEDDED_RESPONSES;
public static boolean FCM_ENABLED = false;
static {
List<Constants.EmbeddedResponse> embeddedResponses = new ArrayList<>();
// ADD EMBEDDED RESPONSES HERE
// START EMBEDDED RESPONSES
// END EMBEDDED RESPONSES
EMBEDDED_RESPONSES = embeddedResponses;
}
// Called from expoview/Constants
public static Constants.ExpoViewAppConstants get() {
Constants.ExpoViewAppConstants constants = new Constants.ExpoViewAppConstants();
constants.VERSION_NAME = VERSION_NAME;
constants.INITIAL_URL = INITIAL_URL;
constants.SHELL_APP_SCHEME = SHELL_APP_SCHEME;
constants.RELEASE_CHANNEL = RELEASE_CHANNEL;
constants.SHOW_LOADING_VIEW_IN_SHELL_APP = SHOW_LOADING_VIEW_IN_SHELL_APP;
constants.ARE_REMOTE_UPDATES_ENABLED = ARE_REMOTE_UPDATES_ENABLED;
constants.EMBEDDED_RESPONSES = EMBEDDED_RESPONSES;
constants.ANDROID_VERSION_CODE = BuildConfig.VERSION_CODE;
constants.FCM_ENABLED = FCM_ENABLED;
return constants;
}
}

8
ejected/android/app/src/main/java/host/exp/exponent/generated/DetachBuildConstants.java

@ -1,8 +0,0 @@
package host.exp.exponent.generated;
// This file is auto-generated. Please don't rename!
public class DetachBuildConstants {
public static final String DEVELOPMENT_URL = "";
}

BIN
ejected/android/app/src/main/res/drawable-hdpi/ic_arrow_back_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 367 B

BIN
ejected/android/app/src/main/res/drawable-hdpi/ic_home_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 403 B

BIN
ejected/android/app/src/main/res/drawable-hdpi/ic_logo_white_32dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

BIN
ejected/android/app/src/main/res/drawable-hdpi/ic_refresh_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 B

BIN
ejected/android/app/src/main/res/drawable-hdpi/ic_share_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 711 B

BIN
ejected/android/app/src/main/res/drawable-mdpi/ic_arrow_back_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

BIN
ejected/android/app/src/main/res/drawable-mdpi/ic_home_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 320 B

BIN
ejected/android/app/src/main/res/drawable-mdpi/ic_logo_white_32dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

BIN
ejected/android/app/src/main/res/drawable-mdpi/ic_refresh_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 531 B

BIN
ejected/android/app/src/main/res/drawable-mdpi/ic_share_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

BIN
ejected/android/app/src/main/res/drawable-xhdpi/ic_arrow_back_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 B

BIN
ejected/android/app/src/main/res/drawable-xhdpi/ic_home_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 B

BIN
ejected/android/app/src/main/res/drawable-xhdpi/ic_logo_white_32dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

BIN
ejected/android/app/src/main/res/drawable-xhdpi/ic_refresh_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 875 B

BIN
ejected/android/app/src/main/res/drawable-xhdpi/ic_share_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 857 B

BIN
ejected/android/app/src/main/res/drawable-xxhdpi/ic_arrow_back_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 563 B

BIN
ejected/android/app/src/main/res/drawable-xxhdpi/ic_home_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 625 B

BIN
ejected/android/app/src/main/res/drawable-xxhdpi/ic_logo_white_32dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

BIN
ejected/android/app/src/main/res/drawable-xxhdpi/ic_refresh_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

BIN
ejected/android/app/src/main/res/drawable-xxhdpi/ic_share_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/big_logo_dark.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/big_logo_dark_filled.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/big_logo_filled.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/big_logo_new_filled.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/ic_arrow_back_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 720 B

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/ic_home_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 798 B

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/ic_logo_white_32dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/ic_refresh_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/ic_share_white_36dp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/notification_icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/pin_white.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/pin_white_fade.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/shell_launch_background_image.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

BIN
ejected/android/app/src/main/res/drawable-xxxhdpi/shell_notification_icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

8
ejected/android/app/src/main/res/drawable/splash_background.xml

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/splashBackground"/>
</layer-list>

9
ejected/android/app/src/main/res/layout/error_activity_new.xml

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/error_viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
/>

56
ejected/android/app/src/main/res/layout/error_console_fragment.xml

@ -1,56 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="top"
android:orientation="vertical"
tools:context="host.exp.exponent.experience.ErrorActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/console_editText"
android:layout_centerHorizontal="true"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:weightSum="2"
android:gravity="center_horizontal"
android:orientation="horizontal">
<host.exp.exponent.views.ExponentImageButton
android:id="@+id/console_home_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/transparent"
android:src="@drawable/ic_home_white_36dp"
android:textColor="@color/colorPrimaryDark"
android:textSize="15sp"/>
<host.exp.exponent.views.ExponentImageButton
android:id="@+id/console_reload_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/transparent"
android:src="@drawable/ic_refresh_white_36dp"
android:textColor="@color/colorPrimaryDark"
android:textSize="15sp"/>
</LinearLayout>
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:background="@color/white" />
</LinearLayout>

31
ejected/android/app/src/main/res/layout/error_console_list_item.xml

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:gravity="top"
android:orientation="vertical">
<TextView
android:id="@+id/error_console_item_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/error_header"
android:textColor="@color/errorMessage"
android:textSize="14sp"/>
<TextView
android:id="@+id/error_console_item_stack_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"/>
<TextView
android:id="@+id/error_console_item_timestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"/>
</LinearLayout>

96
ejected/android/app/src/main/res/layout/error_fragment.xml

@ -1,96 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="host.exp.exponent.experience.ErrorActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_above="@+id/view_error_log"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/error_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:text="@string/error_header"
android:textColor="@color/white"
android:textSize="24sp"/>
<TextView
android:id="@+id/error_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:gravity="center"
android:text="@string/error_default_client"
android:textColor="@color/white"
android:textSize="16sp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText"
android:layout_centerHorizontal="true"
android:layout_marginTop="140dp"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:weightSum="2"
android:gravity="center_horizontal"
android:orientation="horizontal">
<host.exp.exponent.views.ExponentImageButton
android:id="@+id/home_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/transparent"
android:src="@drawable/ic_home_white_36dp"
android:textColor="@color/colorPrimaryDark"
android:textSize="15sp"/>
<host.exp.exponent.views.ExponentImageButton
android:id="@+id/reload_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/transparent"
android:src="@drawable/ic_refresh_white_36dp"
android:textColor="@color/colorPrimaryDark"
android:textSize="15sp"/>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@id/view_error_log"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:paddingBottom="20dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="20dp"
android:gravity="center"
android:clickable="true"
android:text="@string/view_error_log"
android:textColor="@color/errorLogButton"
android:textSize="13sp"/>
</RelativeLayout>

8
ejected/android/app/src/main/res/layout/exponent_button.xml

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Button
style="@style/ExponentButton"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
</Button>

8
ejected/android/app/src/main/res/layout/exponent_check_box.xml

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<CheckBox
style="@style/ExponentCheckBox"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
</CheckBox>

31
ejected/android/app/src/main/res/layout/exponent_dev_activity.xml

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:context="host.exp.exponent.ExponentDevActivity">
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/textView"
android:layout_marginTop="30dp"
android:focusable="true"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:layout_marginTop="15dp"
android:text="Dev Menu"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/colorText"/>
</LinearLayout>
</ScrollView>

67
ejected/android/app/src/main/res/layout/notification.xml

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary">
<ImageButton
android:id="@+id/home_image_button"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginLeft="11dp"
android:layout_marginTop="11dp"
android:layout_marginBottom="11dp"
android:background="@android:color/transparent"
android:scaleType="fitCenter"
android:src="@mipmap/ic_launcher"/>
<Button
android:id="@+id/home_text_button"
style="?android:attr/borderlessButtonStyle"
android:singleLine="true"
android:ellipsize="end"
android:gravity="left|center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toEndOf="@+id/home_image_button"
android:layout_marginRight="12dp"
android:background="@android:color/transparent"
android:text="Expo"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/white"/>
<ImageButton
android:id="@+id/reload_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginRight="12dp"
android:background="@android:color/transparent"
android:src="@drawable/ic_refresh_white_36dp"/>
<ImageButton
android:id="@+id/share_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="12dp"
android:layout_toLeftOf="@+id/reload_button"
android:background="@android:color/transparent"
android:src="@drawable/ic_share_white_36dp"/>
<ImageButton
android:id="@+id/save_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="12dp"
android:layout_toLeftOf="@+id/share_button"
android:background="@android:color/transparent"
android:src="@drawable/pin_white"/>
</RelativeLayout>

47
ejected/android/app/src/main/res/layout/notification_shell_app.xml

@ -1,47 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary">
<ImageButton
android:id="@+id/home_image_button"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginLeft="11dp"
android:background="@android:color/transparent"
android:scaleType="fitCenter"
android:src="@mipmap/ic_launcher"/>
<Button
android:id="@+id/home_text_button"
style="?android:attr/borderlessButtonStyle"
android:singleLine="true"
android:ellipsize="end"
android:gravity="left|center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toEndOf="@+id/home_image_button"
android:layout_toLeftOf="@+id/reload_button"
android:layout_marginRight="12dp"
android:background="@android:color/transparent"
android:text="Exponent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/white"/>
<ImageButton
android:id="@+id/reload_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginRight="12dp"
android:background="@android:color/transparent"
android:src="@drawable/ic_refresh_white_36dp"/>
</RelativeLayout>

BIN
ejected/android/app/src/main/res/mipmap-hdpi/dev_icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

BIN
ejected/android/app/src/main/res/mipmap-mdpi/dev_icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

BIN
ejected/android/app/src/main/res/mipmap-xhdpi/dev_icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

BIN
ejected/android/app/src/main/res/mipmap-xxhdpi/dev_icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

BIN
ejected/android/app/src/main/res/mipmap-xxxhdpi/dev_icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

6
ejected/android/app/src/main/res/values-w820dp/dimens.xml

@ -1,6 +0,0 @@
<resources>
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
(such as screen margins) for screens with more than 820dp of available width. This
would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
<dimen name="activity_horizontal_margin">64dp</dimen>
</resources>

14
ejected/android/app/src/main/res/values/colors.xml

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#1b73b4</color>
<color name="colorPrimaryDark">#011A2D</color>
<color name="colorAccentLight">#1b73b4</color>
<color name="colorAccentDark">#FFFFFF</color>
<color name="colorText">#FFFFFF</color>
<color name="white">#FFFFFF</color>
<color name="errorMessage">#FF0000</color>
<color name="errorLogButton">#66FFFFFF</color>
<color name="colorLight">#F6F6F7</color>
<color name="splashBackground">#8c0072</color>
<color name="iconBackground">#FFFFFF</color>
</resources>

6
ejected/android/app/src/main/res/values/dimens.xml

@ -1,6 +0,0 @@
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="fab_margin">16dp</dimen>
</resources>

14
ejected/android/app/src/main/res/values/strings.xml

@ -1,14 +0,0 @@
<resources>
<string name="app_name">VDS Quiz</string>
<string name="dev_activity_name">Exponent Dev</string>
<string name="preference_file_key">host.exp.exponent.SharedPreferences</string>
<string name="error_header">Something went wrong.</string>
<string name="error_default_client">Sorry about that. You can go back to Expo home or try to reload the project.</string>
<string name="error_default_shell">Sorry about that. Press the reload button to try again.</string>
<string name="error_unable_to_load_experience">Unable to load Experience.</string>
<string name="error_uncaught">Uncaught Error: %s</string>
<string name="view_error_log">View error log</string>
<string name="default_notification_channel_group">Default</string>
<string name="persistent_notification_channel_name">Experience notifications</string>
<string name="persistent_notification_channel_desc">Persistent notifications that provide debug info about open experiences</string>
</resources>

47
ejected/android/app/src/main/res/values/styles.xml

@ -1,47 +0,0 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Theme.Exponent.Light" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowTranslucentStatus" tools:targetApi="19">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccentLight</item>
<item name="android:windowBackground">@color/white</item>
</style>
<style name="Theme.Exponent.Dark" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowTranslucentStatus" tools:targetApi="19">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccentDark</item>
<item name="android:windowBackground">@color/colorPrimary</item>
</style>
<style name="ExponentCheckBox">
<item name="android:theme">@style/DevAppTheme</item>
</style>
<style name="ExponentButton">
<item name="android:theme">@style/DevAppTheme</item>
<item name="android:textColor">
@color/colorPrimaryDark
</item>
</style>
<style name="ExponentEditText" parent="@android:style/Widget.EditText">
<item name="android:padding">0dp</item>
<item name="android:textColorHint">#c8c8c8</item>
<item name="android:textColor">#000000</item>
</style>
<style name="DevAppTheme">
<item name="android:colorAccent">
@color/white
</item>
<item name="android:colorControlNormal">
@color/white
</item>
<item name="android:colorControlHighlight">
@color/white
</item>
</style>
</resources>

79
ejected/android/build.gradle

@ -1,79 +0,0 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
minSdkVersion = 21
targetSdkVersion = 28
compileSdkVersion = 28
buildToolsVersion = '28.0.0'
supportLibVersion = '28.0.0'
kotlinVersion = '1.3.21'
repositoryUrl = "file:${System.env.HOME}/.m2/repository/"
}
repositories {
google()
jcenter()
maven { url 'https://dl.bintray.com/android/android-tools/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath 'com.google.gms:google-services:3.2.1'
classpath 'de.undercouch:gradle-download-task:2.0.0'
// https://github.com/awslabs/aws-device-farm-gradle-plugin/releases
classpath 'com.amazonaws:aws-devicefarm-gradle-plugin:1.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
}
}
allprojects {
repositories {
// For non-detach
maven {
url "$rootDir/maven"
}
// For old expoviews to work
maven {
url "$rootDir/versioned-abis/expoview-abi33_0_0/maven"
}
maven {
url "$rootDir/versioned-abis/expoview-abi34_0_0/maven"
}
maven {
url "$rootDir/versioned-abis/expoview-abi35_0_0/maven"
}
maven {
url "$rootDir/versioned-abis/maven"
}
// For detach
maven {
url "$rootDir/../node_modules/expokit/maven"
}
maven {
// We use a modified build of com.android.support.test:runner:1.0.1. Explanation in maven-test/README
url "$rootDir/maven-test"
}
google()
jcenter()
maven {
// Local Maven repo containing AARs with JSC built for Android
url "$rootDir/../node_modules/jsc-android/dist"
}
flatDir {
dirs 'libs'
// dirs project(':expoview').file('libs')
}
// https://github.com/google/ExoPlayer/issues/5225#issuecomment-445739013
maven { url 'https://google.bintray.com/exoplayer' }
maven { url "https://jitpack.io" }
// Want this last so that we never end up with a stale cache
mavenLocal()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}

BIN
ejected/android/debug.keystore

Binary file not shown.

6
ejected/android/gradle.properties

@ -1,6 +0,0 @@
android.useDeprecatedNdk=true
org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx9216M -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.configureondemand=true
org.gradle.internal.repository.initial.backoff=1000

BIN
ejected/android/gradle/wrapper/gradle-wrapper.jar

Binary file not shown.

6
ejected/android/gradle/wrapper/gradle-wrapper.properties

@ -1,6 +0,0 @@
#Thu Nov 15 09:24:08 CET 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip

160
ejected/android/gradlew

@ -1,160 +0,0 @@
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

9
ejected/android/settings.gradle

@ -1,9 +0,0 @@
include ':app'
// Import gradle helpers for unimodules.
apply from: '../node_modules/react-native-unimodules/gradle.groovy'
// Include unimodules.
includeUnimodulesProjects(
)

3
scripts/export.php

@ -23,13 +23,14 @@ while($r=mysqli_fetch_array($q)) {
$answer = new Answer();
$answer->id = trim($key);
$answer->text = trim($value);
if($key == $r['correct']){$answer->correct = true;}
if($key == intval($r['correct'])){$answer->correct = true;}
$answers[] = $answer;
}
$data[] = array(
"id" => trim($r['id']),
"question" => trim($r['question']),
"points" => trim($r['points']),
"answers" => $answers
);

40
scripts/import.php

@ -5,20 +5,25 @@ $DATAusr="root";
$DATApwd="root";
$DATAdtb="vds";
$file = "1_NormativaELegislazione";
// $file = "2_Aerodinamica";
// $file = "3_ProntoSoccorso";
// $file = "4_FisiopatologiaDelVolo";
// $file = "5_MeteorologiaEAerologia";
// $file = "6_Strumentazione";
// $file = "7_TecnicheDiPilotaggio";
// $file = "8_Materiali";
// $file = "9_SicurezzaDelVolo";
$file=array();
$points=array();
$file[] = "1_NormativaELegislazione"; $points[] = 3;
$file[] = "2_Aerodinamica"; $points[] = 3;
$file[] = "3_ProntoSoccorso"; $points[] = 2;
$file[] = "4_FisiopatologiaDelVolo"; $points[] = 2;
$file[] = "5_MeteorologiaEAerologia"; $points[] = 4;
$file[] = "6_Strumentazione"; $points[] = 2;
$file[] = "7_TecnicheDiPilotaggio"; $points[] = 4;
$file[] = "8_Materiali"; $points[] = 2;
$file[] = "9_SicurezzaDelVolo"; $points[] = 4;
$index = 8;
$conn=@mysqli_connect($DATAhst, $DATAusr, $DATApwd, $DATAdtb)or die("CONNECTION ERROR");
mysqli_set_charset($conn, "utf8");
$myfile = fopen("data/".$file."RES", "r") or die("Unable to open file!");
$myfile = fopen("data/".$file[$index]."RES", "r") or die("Unable to open file!");
$responses=array();
while(!feof($myfile)) {
@ -27,11 +32,9 @@ while(!feof($myfile)) {
}
fclose($myfile);
$myfile = fopen("data/$file", "r") or die("Unable to open file!");
$myfile = fopen("data/".$file[$index], "r") or die("Unable to open file!");
$answers = array();
$query="DELETE FROM questions";
mysqli_query($conn,$query);
@ -41,16 +44,8 @@ while(!feof($myfile)) {
if(substr($row[0], 0, 1) == "#") {
if(count($answers)) {
/*
echo $id."<br>";
echo $title."<br>";
echo $responses[$id]."<br>";
print_r($answers);
echo "<br><br>";
*/
$query="INSERT questions VALUES($id, '$title', '".serialize($answers)."', ".$responses[$id].")";
$query="INSERT questions VALUES($id, '$title', '".serialize($answers)."', ".$responses[$id].", ".$points[$index].")";
mysqli_query($conn,$query);
}
@ -61,7 +56,6 @@ while(!feof($myfile)) {
$answers[$row[0]] = $row[1];
}
}

2
scripts/replace.sh

@ -21,4 +21,4 @@ echo $TMP_ROW >> tmp
sed -i -e 's/- //g' tmp
mv tmp ../data/$1
#mv tmp ../data/$1

734
svg/header.svg

@ -0,0 +1,734 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Ebene_1"
x="0px"
y="0px"
viewBox="0 0 1242 800"
xml:space="preserve"
sodipodi:docname="header.svg"
inkscape:version="1.0beta1 (unknown)"
width="1242"
height="800"
inkscape:export-filename="/docs/Dslak/vds_quiz/vds-app/App/assets/header.png"
inkscape:export-xdpi="120"
inkscape:export-ydpi="120"><metadata
id="metadata47">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs45"><linearGradient
inkscape:collect="always"
id="linearGradient940">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop936" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop938" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient898">
<stop
style="stop-color:#ffffff;stop-opacity:0.1606186"
offset="0"
id="stop894" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop896" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient862">
<stop
style="stop-color:#56168b;stop-opacity:1;"
offset="0"
id="stop858" />
<stop
style="stop-color:#7e20c9;stop-opacity:0"
offset="1"
id="stop860" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1177">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop1173" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop1175" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1113">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop1109" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop1111" />
</linearGradient>
<defs
id="defs13">
<rect
height="91.900002"
width="250"
id="SVGID_1_"
x="0"
y="0" />
</defs>
<clipPath
id="SVGID_2_">
<use
id="use15"
style="overflow:visible"
xlink:href="#SVGID_1_"
x="0"
y="0"
width="100%"
height="100%" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1113"
id="linearGradient1115"
x1="6.22612"
y1="-85.32769"
x2="77.917458"
y2="77.732155"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,158.1)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1177"
id="linearGradient1179"
x1="132.76462"
y1="122.54591"
x2="122.02882"
y2="19.294325"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4791905,0,0,1.4791905,25.462738,22.270725)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1177"
id="linearGradient1183"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.83762215,0,0,0.92541661,-275.43157,-172.04418)"
x1="132.76462"
y1="122.54591"
x2="122.02882"
y2="19.294325" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1177"
id="linearGradient1212"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.1876812,-0.35290398,0.38989322,-1.3121667,345.47458,152.00026)"
x1="132.76462"
y1="122.54591"
x2="122.02882"
y2="19.294325" />
<mask
maskUnits="userSpaceOnUse"
id="mask1236">
<circle
r="125"
cy="125"
cx="125"
id="circle1238"
style="fill:#ffffff;fill-opacity:1;stroke-width:1.02044" />
</mask>
<mask
maskUnits="userSpaceOnUse"
id="mask1243">
<circle
r="125"
cy="125"
cx="125"
id="circle1245"
style="fill:#ffffff;fill-opacity:1;stroke-width:1.02044" />
</mask>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient862"
id="linearGradient866"
gradientUnits="userSpaceOnUse"
x1="0"
y1="125"
x2="266.32431"
y2="147.05267" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient898"
id="linearGradient900"
x1="311.80994"
y1="-357.87811"
x2="283.17621"
y2="716.57642"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-71.635743,25.813861)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient898"
id="linearGradient928"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0427705,0,0,0.62690293,-1088.8324,-991.72226)"
x1="1851.9196"
y1="-447.91309"
x2="-391.84567"
y2="691.98407" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient940"
id="linearGradient942"
x1="649.34778"
y1="-966.22083"
x2="687.32172"
y2="452.36615"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,2.1631993,-67.336207,-293.4148)" />
<linearGradient
y2="77.732155"
x2="77.917458"
y1="-85.32769"
x1="6.22612"
gradientTransform="matrix(6.8965075,0,0,6.8965075,225.85819,355.64648)"
gradientUnits="userSpaceOnUse"
id="linearGradient1214"
xlink:href="#linearGradient1177"
inkscape:collect="always" />
<clipPath
id="SVGID_2_-2">
<use
height="100%"
width="100%"
y="0"
x="0"
xlink:href="#SVGID_1_"
style="overflow:visible"
id="use15-8" />
</clipPath>
<clipPath
id="clipPath960">
<use
height="100%"
width="100%"
y="0"
x="0"
xlink:href="#SVGID_1_"
style="overflow:visible"
id="use958" />
</clipPath>
<linearGradient
gradientTransform="matrix(1,0,0,0.69986407,-448.80221,-1097.4841)"
gradientUnits="userSpaceOnUse"
y2="452.36615"
x2="687.32172"
y1="-966.22083"
x1="649.34778"
id="linearGradient942-7"
xlink:href="#linearGradient940"
inkscape:collect="always" />
<linearGradient
gradientTransform="matrix(1.1577052,0,0,1,-1315.1116,-748.52772)"
inkscape:collect="always"
xlink:href="#linearGradient898"
id="linearGradient900-4"
x1="311.80994"
y1="-357.87811"
x2="929.01709"
y2="819.63794"
gradientUnits="userSpaceOnUse" />
<linearGradient
y2="716.57642"
x2="283.17621"
y1="-357.87811"
x1="311.80994"
gradientTransform="translate(733.62375,-279.8094)"
gradientUnits="userSpaceOnUse"
id="linearGradient932"
xlink:href="#linearGradient898"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient898"
id="linearGradient1107"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-71.635743,25.813861)"
x1="311.80994"
y1="-357.87811"
x2="283.17621"
y2="716.57642" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient898"
id="linearGradient1109"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0427705,0,0,0.62690293,-1088.8324,-991.72226)"
x1="1851.9196"
y1="-447.91309"
x2="-391.84567"
y2="691.98407" />
</defs>
<sodipodi:namedview
pagecolor="#8c0072"
bordercolor="#666666"
inkscape:document-rotation="0"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="719"
id="namedview43"
showgrid="false"
inkscape:zoom="0.175"
inkscape:cx="165.14232"
inkscape:cy="697.2168"
inkscape:window-x="0"
inkscape:window-y="22"
inkscape:window-maximized="1"
inkscape:current-layer="layer2"
inkscape:snap-global="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<style
type="text/css"
id="style10">
.st0{clip-path:url(#SVGID_2_);}
.st1{clip-path:url(#SVGID_2_);fill:#FFFFFF;}
</style>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="root"
transform="translate(318.96439,1070.5177)">
<rect
ry="0"
y="-1446.4835"
x="-567.89264"
height="793.19067"
width="1818.7092"
id="rect934"
style="fill:url(#linearGradient942-7);fill-opacity:1;stroke:none;stroke-width:0.836583" />
<g
id="g938"
transform="matrix(0.86112079,0,0,0.6109573,-345.29179,-891.85953)">
<ellipse
ry="400.51532"
rx="1205.2823"
cy="327.19742"
cx="223.79865"
id="path870"
style="fill:url(#linearGradient1107);fill-opacity:1;stroke:none" />
<ellipse
cx="-973.08563"
cy="-447.14417"
rx="1395.3616"
ry="400.51532"
transform="scale(-1)"
style="fill:url(#linearGradient900-4);fill-opacity:1;stroke:none;stroke-width:1.07597"
id="path870-0" />
<ellipse
ry="251.08421"
rx="1069.1677"
cy="-802.784"
cx="-780.76215"
id="ellipse926"
style="fill:url(#linearGradient1109);fill-opacity:1;stroke:none;stroke-width:0.808527"
transform="matrix(-0.94066274,0.3393429,-0.10838861,-0.9941086,0,0)" />
<ellipse
style="fill:url(#linearGradient932);fill-opacity:1;stroke:none"
id="ellipse930"
cx="1029.0581"
cy="21.574158"
rx="1205.2823"
ry="400.51532" />
</g>
</g>
<g
inkscape:export-ydpi="120"
inkscape:export-xdpi="120"
inkscape:export-filename="/docs/Dslak/vds_quiz/vds-app/App/assets/logo.png"
id="g1025"
transform="translate(-24.887482)">
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Logo">
<g
id="g1143"
transform="matrix(0.54560804,0,0,0.54560804,289.95742,63.654947)">
<g
id="g1133">
<path
inkscape:connector-curvature="0"
id="path1094"
d="m 672.40703,467.25673 -6.77524,1.30661 74.97254,389.30239 -0.47141,-0.32357 -197.56071,-286.99975 -5.68423,3.9197 187.35065,272.15611 -271.22673,-186.50204 -3.90622,5.68424 286.05689,196.69861 4.97035,7.21979 c -7.89486,-2.33569 -12.21956,-3.70204 -26.91255,-7.87979 -50.62074,-14.39357 -147.7665,-41.24891 -333.9553,-91.09589 l -1.79148,6.66754 c 186.17007,49.84195 283.30287,76.67971 333.861,91.05542 25.27909,7.18785 38.9119,11.25883 46.20121,13.52362 7.28936,2.26483 7.89327,2.5862 7.89327,2.5862 l 3.83889,1.81841 76.25221,-316.17523 -6.69448,-1.6164 -74.39338,308.41672 c -1.20877,-0.43127 -0.78654,-0.35434 -4.84908,-1.6164 -0.18044,-0.055 -0.94352,-0.2788 -1.13146,-0.33662 l 18.04945,-369.83866 -6.8965,-0.33653 -17.60495,360.81394 -3.31358,-2.2764 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1214);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6.89651px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-opacity:1" />
<path
transform="matrix(8.4971318,0,0,8.4971318,-528.76068,366.00368)"
class="st0"
d="m 174.4,18.6 c 0,-0.1 -0.1,-0.2 -0.2,-0.3 -0.8,-1.2 -1.7,-2.3 -2.7,-3.3 0,0 0,0 0,0 -3.2,-3.2 -7.6,-5.4 -12.6,-5.9 -0.2,0 -0.5,0 -0.7,-0.1 -5.1,-0.3 -10,1.2 -14,3.9 -0.2,0.2 -0.3,0.2 -0.5,0.4 l 0.4,0.2 c 5.1,2.3 9.8,5.5 13.7,9.3 3.9,3.8 7.2,8.3 9.5,13.3 0.6,1.4 2.3,2.2 4,1.9 0.5,-0.1 0.9,-0.1 1.3,-0.2 1.8,-0.4 3.3,-1.6 3.8,-3.2 0,0 0,0 0,0 0.3,-1.2 0.6,-2.4 0.7,-3.7 0.6,-4.4 -0.4,-8.7 -2.7,-12.3"
clip-path="url(#SVGID_2_)"
id="path36"
inkscape:connector-curvature="0"
style="opacity:1;fill:#71e000;fill-opacity:1;stop-opacity:1" />
<path
transform="matrix(8.4971318,0,0,8.4971318,-528.76068,366.00368)"
class="st1"
d="m 164.6,7.5 c -34,-23.1 -68.4,12.4 -74.3,36.5 -0.7,3.2 -0.2,5.2 1.6,6.8 3.2,2.1 5.1,2.2 8.3,1 C 108.5,48.4 115.9,34.2 132,19 148.3,3.9 157.3,5.7 164.6,7.5"
clip-path="url(#SVGID_2_)"
id="path38"
inkscape:connector-curvature="0"
style="opacity:1;stop-opacity:1" />
</g>
<text
id="text1072"
y="974.00031"
x="454.96796"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:221.9px;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Bold';opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:16.6425;stop-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:16.6425"
y="974.00031"
x="454.96796"
id="tspan1070"
sodipodi:role="line">QUIZ</tspan></text>
<text
id="text33-1"
y="1077.8801"
x="725.32568"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:120.554px;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Bold';opacity:1;fill:#71e000;fill-opacity:1;stroke-width:9.04156;stop-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Semi-Bold';fill:#71e000;fill-opacity:1;stroke-width:9.04156"
y="1077.8801"
x="725.32568"
id="tspan31-0"
sodipodi:role="line">VDS</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

0
vds-app/assets/logo.svg → svg/logo.svg

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

635
svg/logoIOS.svg

@ -0,0 +1,635 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="196.608"
inkscape:export-xdpi="196.608"
inkscape:export-filename="/docs/Dslak/vds_quiz/vds-app/assets/logo512.png"
height="250"
width="250"
inkscape:version="1.0beta1 (unknown)"
sodipodi:docname="logoIOS.svg"
xml:space="preserve"
viewBox="0 0 250 250"
y="0px"
x="0px"
id="Ebene_1"
version="1.1"><metadata
id="metadata47">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs45">
<linearGradient
id="linearGradient862"
inkscape:collect="always">
<stop
id="stop858"
offset="0"
style="stop-color:#56168b;stop-opacity:1;" />
<stop
id="stop860"
offset="1"
style="stop-color:#7e20c9;stop-opacity:0" />
</linearGradient>
<linearGradient
id="linearGradient1177"
inkscape:collect="always">
<stop
id="stop1173"
offset="0"
style="stop-color:#ffffff;stop-opacity:1;" />
<stop
id="stop1175"
offset="1"
style="stop-color:#ffffff;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient1113"
inkscape:collect="always">
<stop
id="stop1109"
offset="0"
style="stop-color:#ffffff;stop-opacity:1;" />
<stop
id="stop1111"
offset="1"
style="stop-color:#ffffff;stop-opacity:0;" />
</linearGradient>
<defs
id="defs13">
<rect
y="0"
x="0"
id="SVGID_1_"
width="250"
height="91.900002" />
</defs>
<clipPath
id="SVGID_2_">
<use
height="100%"
width="100%"
y="0"
x="0"
xlink:href="#SVGID_1_"
style="overflow:visible"
id="use15" />
</clipPath>
<linearGradient
gradientTransform="translate(0,158.1)"
gradientUnits="userSpaceOnUse"
y2="77.732155"
x2="77.917458"
y1="-85.32769"
x1="6.22612"
id="linearGradient1115"
xlink:href="#linearGradient1113"
inkscape:collect="always" />
<linearGradient
gradientTransform="matrix(1.4791905,0,0,1.4791905,25.462738,22.270725)"
gradientUnits="userSpaceOnUse"
y2="19.294325"
x2="122.02882"
y1="122.54591"
x1="132.76462"
id="linearGradient1179"
xlink:href="#linearGradient1177"
inkscape:collect="always" />
<linearGradient
y2="19.294325"
x2="122.02882"
y1="122.54591"
x1="132.76462"
gradientTransform="matrix(0.83762215,0,0,0.92541661,-275.43157,-172.04418)"
gradientUnits="userSpaceOnUse"
id="linearGradient1183"
xlink:href="#linearGradient1177"
inkscape:collect="always" />
<linearGradient
y2="19.294325"
x2="122.02882"
y1="122.54591"
x1="132.76462"
gradientTransform="matrix(-1.1876812,-0.35290398,0.38989322,-1.3121667,345.47458,152.00026)"
gradientUnits="userSpaceOnUse"
id="linearGradient1212"
xlink:href="#linearGradient1177"
inkscape:collect="always" />
<mask
id="mask1236"
maskUnits="userSpaceOnUse">
<circle
style="fill:#ffffff;fill-opacity:1;stroke-width:1.02044165"
id="circle1238"
cx="125"
cy="125"
r="125" />
</mask>
<mask
id="mask1243"
maskUnits="userSpaceOnUse">
<circle
style="fill:#ffffff;fill-opacity:1;stroke-width:1.02044165"
id="circle1245"
cx="125"
cy="125"
r="125" />
</mask>
<linearGradient
y2="147.05267"
x2="266.32431"
y1="125"
x1="0"
gradientUnits="userSpaceOnUse"
id="linearGradient866"
xlink:href="#linearGradient862"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1177"
id="linearGradient1214-9"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(6.8965075,0,0,6.8965075,225.85819,355.64648)"
x1="6.22612"
y1="-85.32769"
x2="77.917458"
y2="77.732155" />
<clipPath
id="SVGID_2_-8">
<use
height="100%"
width="100%"
y="0"
x="0"
xlink:href="#SVGID_1_"
style="overflow:visible"
id="use15-0" />
</clipPath>
<clipPath
id="clipPath1161">
<use
height="100%"
width="100%"
y="0"
x="0"
xlink:href="#SVGID_1_"
style="overflow:visible"
id="use1159" />
</clipPath>
<linearGradient
y2="716.57642"
x2="283.17621"
y1="-357.87811"
x1="311.80994"
gradientTransform="translate(-71.635743,25.813861)"
gradientUnits="userSpaceOnUse"
id="linearGradient1107"
xlink:href="#linearGradient898"
inkscape:collect="always" />
<linearGradient
id="linearGradient898"
inkscape:collect="always">
<stop
id="stop894"
offset="0"
style="stop-color:#ffffff;stop-opacity:0.1606186" />
<stop
id="stop896"
offset="1"
style="stop-color:#ffffff;stop-opacity:0;" />
</linearGradient>
<linearGradient
gradientUnits="userSpaceOnUse"
y2="819.63794"
x2="929.01709"
y1="-357.87811"
x1="311.80994"
id="linearGradient900-4"
xlink:href="#linearGradient898"
inkscape:collect="always"
gradientTransform="matrix(1.1577052,0,0,1,-1315.1116,-748.52772)" />
<linearGradient
y2="691.98407"
x2="-391.84567"
y1="-447.91309"
x1="1851.9196"
gradientTransform="matrix(1.0427705,0,0,0.62690293,-1088.8324,-991.72226)"
gradientUnits="userSpaceOnUse"
id="linearGradient1109"
xlink:href="#linearGradient898"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient898"
id="linearGradient932"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(733.62375,-279.8094)"
x1="311.80994"
y1="-357.87811"
x2="283.17621"
y2="716.57642" />
<mask
maskUnits="userSpaceOnUse"
id="mask948">
<path
id="path950"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:6.17686;stroke-opacity:1"
d="M 324.29244,-490.11643 H 1383.2058 c 123.3524,0 222.6579,99.30542 222.6579,222.65789 V 792.48051 c 0,123.35248 -99.3055,222.65789 -222.6579,222.65789 H 324.29244 c -123.35247,0 -222.65789,-99.30541 -222.65789,-222.65789 V -267.45854 c 0,-123.35247 99.30542,-222.65789 222.65789,-222.65789 z"
inkscape:connector-curvature="0" />
</mask>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1177"
id="linearGradient942-7"
x1="774.88031"
y1="-3510.4583"
x2="687.32172"
y2="452.36615"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.36578939,0,0,0.25235414,-135.8976,75.739393)" />
</defs>
<sodipodi:namedview
inkscape:showpageshadow="false"
borderlayer="true"
inkscape:snap-global="false"
inkscape:current-layer="Ebene_1"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="0"
inkscape:cy="166.27221"
inkscape:cx="-236.46388"
inkscape:zoom="0.7"
showgrid="false"
id="namedview43"
inkscape:window-height="719"
inkscape:window-width="1366"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
inkscape:document-rotation="0"
bordercolor="#666666"
pagecolor="#ffffff" />
<style
id="style10"
type="text/css">
.st0{clip-path:url(#SVGID_2_);}
.st1{clip-path:url(#SVGID_2_);fill:#FFFFFF;}
</style>
<rect
style="fill:#780062;fill-opacity:1;stroke:none;stroke-width:1.23661"
id="rect902"
width="301.14722"
height="301.35257"
x="-25.573612"
y="-25.676289"
ry="44.576191" />
<path
inkscape:connector-curvature="0"
id="rect934"
style="fill:url(#linearGradient942-7);fill-opacity:1;stroke:none;stroke-width:0.303825"
d="m -3.1501601,-3.0618722 c -29.8561239,0 -53.8915709,16.5061472 -53.8915709,37.0095972 V 210.12833 c 0,10.04276 5.776975,19.12108 15.169414,25.77597 H 291.87232 c 9.39243,-6.65489 15.16941,-15.73321 15.16941,-25.77597 V 33.947725 c 0,-20.50345 -24.03544,-37.0095972 -53.89156,-37.0095972 z" />
<g
inkscape:label="root"
id="layer1"
inkscape:groupmode="layer" />
<g
transform="matrix(0.28987472,0,0,0.28987472,-50.878776,-84.510589)"
id="g1143">
<g
id="g1133">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1214-9);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6.89651px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-opacity:1"
d="m 672.40703,467.25673 -6.77524,1.30661 74.97254,389.30239 -0.47141,-0.32357 -197.56071,-286.99975 -5.68423,3.9197 187.35065,272.15611 -271.22673,-186.50204 -3.90622,5.68424 286.05689,196.69861 4.97035,7.21979 c -7.89486,-2.33569 -12.21956,-3.70204 -26.91255,-7.87979 -50.62074,-14.39357 -147.7665,-41.24891 -333.9553,-91.09589 l -1.79148,6.66754 c 186.17007,49.84195 283.30287,76.67971 333.861,91.05542 25.27909,7.18785 38.9119,11.25883 46.20121,13.52362 7.28936,2.26483 7.89327,2.5862 7.89327,2.5862 l 3.83889,1.81841 76.25221,-316.17523 -6.69448,-1.6164 -74.39338,308.41672 c -1.20877,-0.43127 -0.78654,-0.35434 -4.84908,-1.6164 -0.18044,-0.055 -0.94352,-0.2788 -1.13146,-0.33662 l 18.04945,-369.83866 -6.8965,-0.33653 -17.60495,360.81394 -3.31358,-2.2764 z"
id="path1094-8"
inkscape:connector-curvature="0" />
<path
style="opacity:1;fill:#71e000;fill-opacity:1;stop-opacity:1"
inkscape:connector-curvature="0"
id="path36-5"
clip-path="url(#SVGID_2_)"
d="m 174.4,18.6 c 0,-0.1 -0.1,-0.2 -0.2,-0.3 -0.8,-1.2 -1.7,-2.3 -2.7,-3.3 0,0 0,0 0,0 -3.2,-3.2 -7.6,-5.4 -12.6,-5.9 -0.2,0 -0.5,0 -0.7,-0.1 -5.1,-0.3 -10,1.2 -14,3.9 -0.2,0.2 -0.3,0.2 -0.5,0.4 l 0.4,0.2 c 5.1,2.3 9.8,5.5 13.7,9.3 3.9,3.8 7.2,8.3 9.5,13.3 0.6,1.4 2.3,2.2 4,1.9 0.5,-0.1 0.9,-0.1 1.3,-0.2 1.8,-0.4 3.3,-1.6 3.8,-3.2 0,0 0,0 0,0 0.3,-1.2 0.6,-2.4 0.7,-3.7 0.6,-4.4 -0.4,-8.7 -2.7,-12.3"
class="st0"
transform="matrix(8.4971318,0,0,8.4971318,-528.76068,366.00368)" />
<path
style="opacity:1;stop-opacity:1"
inkscape:connector-curvature="0"
id="path38-6"
clip-path="url(#SVGID_2_)"
d="m 164.6,7.5 c -34,-23.1 -68.4,12.4 -74.3,36.5 -0.7,3.2 -0.2,5.2 1.6,6.8 3.2,2.1 5.1,2.2 8.3,1 C 108.5,48.4 115.9,34.2 132,19 148.3,3.9 157.3,5.7 164.6,7.5"
class="st1"
transform="matrix(8.4971318,0,0,8.4971318,-528.76068,366.00368)" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:221.9px;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Bold';opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:16.6425;stop-opacity:1"
x="454.96796"
y="974.00031"
id="text1072-0"><tspan
sodipodi:role="line"
id="tspan1070-8"
x="454.96796"
y="974.00031"
style="stroke-width:16.6425">QUIZ</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:120.554px;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Bold';opacity:1;fill:#71e000;fill-opacity:1;stroke-width:9.04156;stop-opacity:1"
x="725.32568"
y="1077.8801"
id="text33-1-9"><tspan
sodipodi:role="line"
id="tspan31-0-2"
x="725.32568"
y="1077.8801"
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Semi-Bold';fill:#71e000;fill-opacity:1;stroke-width:9.04156">VDS</tspan></text>
</g>
<g
transform="matrix(0.18385741,0,0,0.16189459,-31.968095,82.500893)"
id="g938"
mask="url(#mask948)"
style="opacity:0.530517">
<path
inkscape:connector-curvature="0"
id="path870"
style="fill:url(#linearGradient1107);fill-opacity:1;stroke:none"
d="M 1429.081,327.19742 A 1205.2823,400.51532 0 0 1 223.79865,727.71274 1205.2823,400.51532 0 0 1 -981.4837,327.19742 1205.2823,400.51532 0 0 1 223.79865,-73.317902 1205.2823,400.51532 0 0 1 1429.081,327.19742" />
<path
inkscape:connector-curvature="0"
id="path870-0"
style="fill:url(#linearGradient900-4);fill-opacity:1;stroke:none;stroke-width:1.07597"
transform="scale(-1)"
d="M 422.27594,-447.14417 A 1395.3616,400.51532 0 0 1 -973.08563,-46.628845 1395.3616,400.51532 0 0 1 -2368.4472,-447.14417 1395.3616,400.51532 0 0 1 -973.08563,-847.65948 1395.3616,400.51532 0 0 1 422.27594,-447.14417" />
<path
inkscape:connector-curvature="0"
id="ellipse926"
style="fill:url(#linearGradient1109);fill-opacity:1;stroke:none;stroke-width:0.808527"
transform="matrix(-0.94066274,0.3393429,-0.10838861,-0.9941086,0,0)"
d="M 288.40558,-802.784 A 1069.1677,251.08421 0 0 1 -780.76215,-551.69978 1069.1677,251.08421 0 0 1 -1849.9299,-802.784 1069.1677,251.08421 0 0 1 -780.76215,-1053.8682 1069.1677,251.08421 0 0 1 288.40558,-802.784" />
<path
inkscape:connector-curvature="0"
id="ellipse930"
style="fill:url(#linearGradient932);fill-opacity:1;stroke:none"
d="M 2234.3405,21.574158 A 1205.2823,400.51532 0 0 1 1029.0581,422.08948 1205.2823,400.51532 0 0 1 -176.22424,21.574158 1205.2823,400.51532 0 0 1 1029.0581,-378.94116 1205.2823,400.51532 0 0 1 2234.3405,21.574158" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

0
vds-app/assets/splash.svg → svg/splash.svg

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

BIN
vds-app/App/assets/header.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

1
vds-app/App/components/ExamQuestions.js

@ -1,4 +1,3 @@
import testQuestions from "../data/test"
import aerodynamicsQuestions from "../data/aerodynamics"
import firstAidQuestions from "../data/firstAid"
import flightSafetyQuestions from "../data/flightSafety"

230
vds-app/App/data/aerodynamics.js

@ -1,76 +1,100 @@
const questions = [
{
id: "2004",
question: "Quali sono i più comuni tipi di profilo alare utilizzati nel vds/vl?",
question: "Quali sono i più comuni tipi di profilo alare utilizzati nel VDS/VL?",
points: "3",
answers: [
{
id: "1",
text: "piano convesso ed ellittico simmetrico."
text: "Piano convesso ed ellittico simmetrico."
},
{
id: "2",
text: "cavo convesso e biconvesso simmetrico."
text: "Cavo convesso e biconvesso simmetrico."
},
{
id: "3",
text: "concavo convesso, piano convesso e biconvesso.",
text: "Concavo convesso, piano convesso e biconvesso.",
correct: true
}
]
},
{
id: "2020",
question: "Un profilo investito da aria in movimento determina gli stessi effetti aerodinamici di un profilo che si muove nell’aria?",
id: "2018",
question: "Che cosa è un \"tubo di flusso\"?",
points: "3",
answers: [
{
id: "1",
text: "no, indipendentemente dalla velocità e direzione del movimento relativo."
text: "grandezze fisiche rappresentabili con vettori (con direzione, verso, intensità e punto d’applicazione definiti) che si possono comporre o scomporre tra loro.",
correct: true
},
{
id: "2",
text: "sì, ma solo se coincidono velocità e direzione del movimento relativo.",
correct: true
text: "grandezze fisiche che non si possono rappresentare graficamente ma che possono sommarsi e sottrarsi geometricamente."
},
{
id: "3",
text: "dipende solamente dalla forma del corpo solido."
text: "grandezze numeriche semplici con le quali è quindi possibile effettuare qualsiasi operazione."
}
]
},
{
id: "2023",
question: "Quando si parla di pressione di un fluido su una superficie che cosa s’intende?",
points: "3",
answers: [
{
id: "1",
text: "è il prodotto della superficie per la forza che il fluido esercita sulla stessa."
text: "È il prodotto della superficie per la forza che il fluido esercita sulla stessa."
},
{
id: "2",
text: "è il rapporto tra la forza che il fluido esercita sulla superficie e il quadrato della superficie stessa."
text: "È il rapporto tra la forza che il fluido esercita sulla superficie e il quadrato della superficie stessa."
},
{
id: "3",
text: "è la forza che il fluido stesso esercita sull’ unità di superficie.",
text: "È la forza che il fluido stesso esercita sull’ unità di superficie.",
correct: true
}
]
},
{
id: "2020",
question: "Un profilo investito da aria in movimento determina gli stessi effetti aerodinamici di un profilo che si muove nell’aria?",
points: "3",
answers: [
{
id: "1",
text: "No, indipendentemente dalla velocità e direzione del movimento relativo."
},
{
id: "2",
text: "Si, ma solo se coincidono velocità e direzione del movimento relativo.",
correct: true
},
{
id: "3",
text: "Dipende solamente dalla forma del corpo solido."
}
]
},
{
id: "2025",
question: "Che cosa è la pressione statica di un fluido?",
points: "3",
answers: [
{
id: "1",
text: "è il rapporto tra peso e velocità del fluido."
text: "È il rapporto tra peso e velocità del fluido."
},
{
id: "2",
text: "è il rapporto tra peso e densità del fluido."
text: "È il rapporto tra peso e densità del fluido."
},
{
id: "3",
text: "è il peso della colonna di fluido che insiste sull’unità di superficie.",
text: "È il peso della colonna di fluido che insiste sull’unità di superficie.",
correct: true
}
]
@ -78,56 +102,79 @@ const questions = [
{
id: "2026",
question: "Che cosa è la pressione dinamica di un fluido?",
points: "3",
answers: [
{
id: "1",
text: "è il rapporto tra la velocità di un fluido in movimento e la sua densità."
text: "È il rapporto tra la velocità di un fluido in movimento e la sua densità."
},
{
id: "2",
text: "è il rapporto tra la velocità di un fluido in movimento e la superficie del solido immerso in esso."
text: "È il rapporto tra la velocità di un fluido in movimento e la superficie del solido immerso in esso."
},
{
id: "3",
text: "è la pressione che un fluido esercita sulla superficie di un solido immerso in esso per effetto della velocità di scorrimento.",
text: "È la pressione che un fluido esercita sulla superficie di un solido immerso in esso per effetto della velocità di scorrimento.",
correct: true
}
]
},
{
id: "2028",
question: "La portanza e la resistenza sono direttamente proporzionali:",
points: "3",
answers: [
{
id: "1",
text: "alla pressione statica."
},
{
id: "2",
text: "alla pressione dinamica.",
correct: true
},
{
id: "3",
text: "alla pressione totale."
}
]
},
{
id: "2029",
question: "I filetti fluidi che incontrano un profilo alare generando portanza, con quale principale differenza scorrono sulle superfici?",
points: "3",
answers: [
{
id: "1",
text: "differenza di velocità.",
text: "Differenza di velocità.",
correct: true
},
{
id: "2",
text: "differenza di densità."
text: "Differenza di densità."
},
{
id: "3",
text: "differenza molecolare."
text: "Differenza molecolare."
}
]
},
{
id: "2034",
question: "Che cosa mette in evidenza la legge di Bernoully in un tubo di Venturi a portata costante?",
points: "3",
answers: [
{
id: "1",
text: "che variando la sezione del tubo, pressione e velocità del fluido rimangono invariate."
text: "Che variando la sezione del tubo, pressione e velocità del fluido rimangono invariate."
},
{
id: "2",
text: "che variando la sezione del tubo, varia solo la pressione dinamica del fluido."
text: "Che variando la sezione del tubo, varia solo la pressione dinamica del fluido."
},
{
id: "3",
text: "che variando la sezione del tubo variano velocità, pressione statica e pressione dinamica. La pressione totale non varia.",
text: "Che variando la sezione del tubo variano velocità, pressione statica e pressione dinamica. La pressione totale non varia.",
correct: true
}
]
@ -135,6 +182,7 @@ const questions = [
{
id: "2035",
question: "In un tubo di Venturi avente portata costante, al variare della sezione:",
points: "3",
answers: [
{
id: "1",
@ -154,6 +202,7 @@ const questions = [
{
id: "2036",
question: "In un tubo di Venturi avente portata costante la somma della pressione statica e della pressione dinamica del fluido (pressione totale):",
points: "3",
answers: [
{
id: "1",
@ -173,6 +222,7 @@ const questions = [
{
id: "2040",
question: "I profili del deltaplano e del parapendio sono principalmente di tipo:",
points: "3",
answers: [
{
id: "1",
@ -192,6 +242,7 @@ const questions = [
{
id: "2043",
question: "La risultante aerodinamica si scompone in portanza e resistenza. Esse sono rispettivamente:",
points: "3",
answers: [
{
id: "1",
@ -211,6 +262,7 @@ const questions = [
{
id: "2044",
question: "Se un profilo alare è investito da un vento relativo, si può sempre affermare che:",
points: "3",
answers: [
{
id: "1",
@ -230,6 +282,7 @@ const questions = [
{
id: "2045",
question: "Nel volo del deltaplano e del parapendio:",
points: "3",
answers: [
{
id: "1",
@ -249,6 +302,7 @@ const questions = [
{
id: "2046",
question: "La resistenza è una forza aerodinamica che può essere considerata:",
points: "3",
answers: [
{
id: "1",
@ -268,6 +322,7 @@ const questions = [
{
id: "2049",
question: "Di quanto varia la resistenza aerodinamica di un profilo alare triplicandone la velocità:",
points: "3",
answers: [
{
id: "1",
@ -287,75 +342,59 @@ const questions = [
{
id: "2050",
question: "Che cosa è il Cr?",
points: "3",
answers: [
{
id: "1",
text: "un coefficiente numerico che dipende dal carico alare."
text: "Un coefficiente numerico che dipende dal carico alare."
},
{
id: "2",
text: "un coefficiente numerico che dipende dalla forma del profilo e dalla sua incidenza di volo.",
text: "Un coefficiente numerico che dipende dalla forma del profilo e dalla sua incidenza di volo.",
correct: true
},
{
id: "3",
text: "una forza che dipende dalla forma del profilo e dalla sua incidenza di volo."
text: "Una forza che dipende dalla forma del profilo e dalla sua incidenza di volo."
}
]
},
{
id: "2052",
question: "Che cosa è la resistenza di forma?",
points: "3",
answers: [
{
id: "1",
text: "è la parte di resistenza dovuta alla forma più o meno aerodinamica di un corpo.",
text: "È la parte di resistenza dovuta alla forma più o meno aerodinamica di un corpo.",
correct: true
},
{
id: "2",
text: "è la parte di resistenza dovuta alle dimensioni del corpo indipendentemente dalla forma aerodinamica dello stesso."
text: "È la parte di resistenza dovuta alle dimensioni del corpo indipendentemente dalla forma aerodinamica dello stesso."
},
{
id: "3",
text: "è una forza il cui valore può essere nullo se la forma del corpo è molto aerodinamica."
text: "È una forza il cui valore può essere nullo se la forma del corpo è molto aerodinamica."
}
]
},
{
id: "2053",
question: "Su quale tipo di resistenza influisce principalmente lo spessore del profilo alare?",
points: "3",
answers: [
{
id: "1",
text: "sulla resistenza di attrito."
text: "Sulla resistenza di attrito."
},
{
id: "2",
text: "sulla resistenza indotta."
text: "Sulla resistenza indotta."
},
{
id: "3",
text: "sulla resistenza di forma.",
correct: true
}
]
},
{
id: "2066",
question: "In che modo la resistenza aerodinamica è proporzionale alla velocità?",
answers: [
{
id: "1",
text: "direttamente."
},
{
id: "2",
text: "inversamente."
},
{
id: "3",
text: "direttamente e al quadrato della stessa.",
text: "Sulla resistenza di forma.",
correct: true
}
]
@ -363,6 +402,7 @@ const questions = [
{
id: "2067",
question: "Diminuendo la resistenza aerodinamica di un profilo a parità di altre condizioni si ottiene:",
points: "3",
answers: [
{
id: "1",
@ -382,6 +422,7 @@ const questions = [
{
id: "2070",
question: "Adottando un profilo sottilissimo:",
points: "3",
answers: [
{
id: "1",
@ -399,27 +440,29 @@ const questions = [
]
},
{
id: "2074",
question: "Qual è la formula della portanza?",
id: "2066",
question: "In che modo la resistenza aerodinamica è proporzionale alla velocità?",
points: "3",
answers: [
{
id: "1",
text: "P = 1/2 ro S2 Cp V"
text: "Direttamente."
},
{
id: "2",
text: "P = 1/2 ro S Cp V2",
correct: true
text: "Inversamente."
},
{
id: "3",
text: "P = 1/2 ro S Cp V"
text: "Direttamente e al quadrato della stessa.",
correct: true
}
]
},
{
id: "2081",
question: "In volo incidenza e assetto di un profilo coinciderebbero:",
points: "3",
answers: [
{
id: "1",
@ -439,6 +482,7 @@ const questions = [
{
id: "2087",
question: "Il peso del sistema ala-pilota, cui durante il volo si oppone la risultante aerodinamica, è una forza verticale diretta verso il basso, che si scompone in:",
points: "3",
answers: [
{
id: "1",
@ -458,44 +502,47 @@ const questions = [
{
id: "2090",
question: "Che cosa è la trazione nel volo planato?",
points: "3",
answers: [
{
id: "1",
text: "è una forza ed è la componente del peso orientata nella direzione della traiettoria di volo.",
text: "È una forza ed è la componente del peso orientata nella direzione della traiettoria di volo.",
correct: true
},
{
id: "2",
text: "è una forza ed è la componente del peso orientata perpendicolarmente alla traiettoria di volo."
text: "È una forza ed è la componente del peso orientata perpendicolarmente alla traiettoria di volo."
},
{
id: "3",
text: "è una forza che varia al variare della pendenza della traiettoria, ma è indipendente dal peso."
text: "È una forza che varia al variare della pendenza della traiettoria, ma è indipendente dal peso."
}
]
},
{
id: "2091",
question: "Com’è possibile variare il valore della trazione in volo?",
points: "3",
answers: [
{
id: "1",
text: "non può essere variato."
text: "Non può essere variato."
},
{
id: "2",
text: "variando la pendenza della traiettoria di volo.",
text: "Variando la pendenza della traiettoria di volo.",
correct: true
},
{
id: "3",
text: "variando la sola resistenza aerodinamica."
text: "Variando la sola resistenza aerodinamica."
}
]
},
{
id: "2092",
question: "In volo librato rettilineo uniforme il peso apparente, che costituisce la componente del peso perpendicolare alla traiettoria di volo, è equilibrato dalla:",
points: "3",
answers: [
{
id: "1",
@ -512,9 +559,30 @@ const questions = [
}
]
},
{
id: "2096",
question: "Se il pilota pesa 78 kg, l’attrezzatura di volo, ala compresa, 22 kg e la superficie proiettata è 25 m2, quanto sarà il carico alare?",
points: "3",
answers: [
{
id: "1",
text: "6 kg/m 2."
},
{
id: "2",
text: "9 kg/m 2."
},
{
id: "3",
text: "4 kg/m 2.",
correct: true
}
]
},
{
id: "2097",
question: "Se a seguito di una parziale \"chiusura\" del parapendio la sua superficie alare si riduce:",
points: "3",
answers: [
{
id: "1",
@ -534,6 +602,7 @@ const questions = [
{
id: "2099",
question: "Durante una virata al sistema ala-pilota viene applicata, per effetto della forza centrifuga, un’accelerazione pari a due \"G\". Si può affermare che:",
points: "3",
answers: [
{
id: "1",
@ -553,6 +622,7 @@ const questions = [
{
id: "2100",
question: "Se durante il volo per qualche motivo il fattore di carico raddoppia, il carico alare",
points: "3",
answers: [
{
id: "1",
@ -572,25 +642,27 @@ const questions = [
{
id: "2105",
question: "Dove si trova normalmente il baricentro?",
points: "3",
answers: [
{
id: "1",
text: "coincide con il baricentro del solo pilota."
text: "Coincide con il baricentro del solo pilota."
},
{
id: "2",
text: "si trova tra il baricentro del pilota e quello dell’ala struttura.",
text: "Si trova tra il baricentro del pilota e quello della struttura.",
correct: true
},
{
id: "3",
text: "si trova nel punto d’intersezione degli assi del sistema."
text: "Si trova nel punto d’intersezione degli assi del sistema."
}
]
},
{
id: "2116",
question: "Un’ala in volo, iniziando una virata:",
points: "3",
answers: [
{
id: "1",
@ -610,6 +682,7 @@ const questions = [
{
id: "2131",
question: "A parità di condizioni, di capacità e di ala a disposizione veleggia più a lungo il pilota:",
points: "3",
answers: [
{
id: "1",
@ -629,6 +702,7 @@ const questions = [
{
id: "2134",
question: "In condizioni aerologiche sfavorevoli, quali vento contrario e discendenza, volando con la medesima ala è:",
points: "3",
answers: [
{
id: "1",
@ -648,44 +722,47 @@ const questions = [
{
id: "2137",
question: "In virata la velocità minima di volo e quella di stallo sono identiche a quelle del volo rettilineo?",
points: "3",
answers: [
{
id: "1",
text: "no, sono maggiori.",
text: "No, sono maggiori.",
correct: true
},
{
id: "2",
text: "si."
text: "Si."
},
{
id: "3",
text: "no, sono minori."
text: "No, sono minori."
}
]
},
{
id: "2143",
question: "Che cosa succede al sistema ala pilota se il suo baricentro viene abbassato rispetto al centro di pressione?",
points: "3",
answers: [
{
id: "1",
text: "aumenta la sola stabilità laterale."
text: "Aumenta la sola stabilità laterale."
},
{
id: "2",
text: "aumenta la stabilità in beccheggio e rollio.",
text: "Aumenta la stabilità in beccheggio e rollio.",
correct: true
},
{
id: "3",
text: "varia semplicemente lo sforzo di azionamento dei comandi."
text: "Varia semplicemente lo sforzo di azionamento dei comandi."
}
]
},
{
id: "2144",
question: "la posizione bassa del baricentro del parapendio comporta entro certi limiti:",
question: "La posizione bassa del baricentro del parapendio comporta entro certi limiti:",
points: "3",
answers: [
{
id: "1",
@ -705,6 +782,7 @@ const questions = [
{
id: "2145",
question: "La posizione bassa del baricentro del parapendio comporta:",
points: "3",
answers: [
{
id: "1",
@ -716,7 +794,7 @@ const questions = [
},
{
id: "3",
text: "Una possibilità di avere delle oscillazioni più ampie.",
text: "una possibilità di avere delle oscillazioni più ampie.",
correct: true
}
]

152
vds-app/App/data/firstAid.js

@ -2,37 +2,39 @@ const questions = [
{
id: "3001",
question: "Quale comportamento è auspicabile appena effettuato un soccorso d’emergenza?",
points: "2",
answers: [
{
id: "1",
text: "si trasporta il ferito all’ospedale con qualsiasi mezzo disponibile seguendolo da vicino."
text: "Si trasporta il ferito all’ospedale con qualsiasi mezzo disponibile seguendolo da vicino."
},
{
id: "2",
text: "far trasportare all’ospedale con mezzo idoneo ed abilitato l’infortunato prendendosi cura dei suoi effetti personali ed avvisando al più presto i suoi parenti più prossimi.",
text: "Far trasportare all’ospedale con mezzo idoneo ed abilitato l’infortunato prendendosi cura dei suoi effetti personali ed avvisando al più presto i suoi parenti più prossimi.",
correct: true
},
{
id: "3",
text: "una volta chiamate si attende che giungano le autorità di polizia e si lascia a esse ogni incombenza."
text: "Una volta chiamate si attende che giungano le autorità di polizia e si lascia a esse ogni incombenza."
}
]
},
{
id: "3002",
question: "Qual è, tra questi, il modo migliore per accompagnare un infortunato con una lesione leggera in grado di camminare?",
points: "2",
answers: [
{
id: "1",
text: "procurandogli un paio di stampelle."
text: "Procurandogli un paio di stampelle."
},
{
id: "2",
text: "portandolo a spalle."
text: "Portandolo a spalle."
},
{
id: "3",
text: "mettendosi al suo fianco, dal lato della lesione e cingendogli la vita con il braccio, se possibile.",
text: "Mettendosi al suo fianco, dal lato della lesione e cingendogli la vita con il braccio, se possibile.",
correct: true
}
]
@ -40,132 +42,130 @@ const questions = [
{
id: "3003",
question: "Come comportarsi alla presenza di un infortunato di cui si sospettano lesioni interne di entità sconosciuta?",
points: "2",
answers: [
{
id: "1",
text: "ispezionarlo attentamente, interrogandolo sulle parti dolenti e facendolo muovere se può, indi chiamare i mezzi di soccorso."
text: "Ispezionarlo attentamente, interrogandolo sulle parti dolenti e facendolo muovere se può, indi chiamare i mezzi di soccorso."
},
{
id: "2",
text: "non muoverlo assolutamente e non consentire che egli stesso si muova, provvedere immediatamente a chiamare personale e mezzi di soccorso qualificati e attrezzati (eliambulanza, ambulanza, etc.).",
text: "Interrompere il flusso sanguigno con laccio emostatico posto tra la lesione ed il cuore o con idoneo tampone posto sulla ferita.",
correct: true
},
{
id: "3",
text: "cercare di metterlo in piedi, se la cosa risulta impossibile e se l’infortunato si lamenta chiamare idonei mezzi di soccorso."
text: "Distendere l’infortunato con la ferita posta verso l’alto."
}
]
},
{
id: "3004",
question: "Se, essendo l’unico presente, vi capita di dover soccorrere un traumatizzato, come dovete comportarvi?",
id: "3006",
question: "Come si deve intervenire soccorrendo un infortunato che presenta solo una ferita?",
points: "2",
answers: [
{
id: "1",
text: "cercate subito un medico nel paese più vicino."
text: "Cercare di aiutarlo a mettersi in piedi."
},
{
id: "2",
text: "intervenite soccorrendolo voi stessi secondo i traumi subiti, come meglio potete."
text: "Lasciare la ferita scoperta dopo averla opportunamente tamponata, sino all’arrivo di idoneo soccorso."
},
{
id: "3",
text: "adagiatelo con la massima cautela in una posizione idonea, tenendo presente che in caso di frattura alla colonna vertebrale ogni movimento può causare danni irreparabili e andate immediatamente a cercare soccorsi qualificati.",
text: "Tamponare la ferita con ciò che è possibile, cercando di lasciare coperta la ferita sino all’arrivo d’idoneo soccorso.",
correct: true
}
]
},
{
id: "3005",
question: "Come intervenire su un infortunato che presenta una copiosa perdita di sangue da una ferita? SOCCORSO",
id: "3007",
question: "Come si deve intervenire in caso di forma lieve di fuoriuscita di sangue dal naso (epistassi)?",
points: "2",
answers: [
{
id: "1",
text: "lasciare uscire più sangue possibile onde lavare la ferita."
text: "Far reclinar la testa in avanti favorendo il drenaggio di sangue e muco.",
correct: true
},
{
id: "2",
text: "interrompere il flusso sanguigno con laccio emostatico posto tra la lesione ed il cuore o con idoneo tampone posto sulla ferita.",
correct: true
text: "Far soffiare forte il naso."
},
{
id: "3",
text: "distendere l’infortunato con la ferita posta verso l’alto."
text: "Far tenere le narici serrate con le dita."
}
]
},
{
id: "3006",
question: "Come si deve intervenire soccorrendo un infortunato che presenta solo una ferita?",
id: "3008",
question: "Come si deve intervenire alla presenza di una persona colpita da soffocamento?",
points: "2",
answers: [
{
id: "1",
text: "cercare di aiutarlo a mettersi in piedi."
text: "Lasciare che l’infortunato riprenda a respirare dopo averlo adagiato supino."
},
{
id: "2",
text: "lasciare la ferita scoperta dopo averla opportunamente tamponata, sino all’arrivo di idoneo soccorso."
text: "Rimuovere le più evidenti cause di soffocamento, accertare che il soffocamento non sia dovuto all’ingestione di vomito e che la lingua non sia motivo d’impedimento alla ventilazione.",
correct: true
},
{
id: "3",
text: "tamponare la ferita con ciò che è possibile, cercando di lasciare coperta la ferita sino all’arrivo d’idoneo soccorso.",
correct: true
text: "Tentare la respirazione artificiale prima di tutto, premendo sull’addome dell’infortunato in maniera decisa e ritmica."
}
]
},
{
id: "3007",
question: "Come si deve intervenire in caso di forma lieve di fuoriuscita di sangue dal naso (epistassi)?",
id: "3004",
question: "Se, essendo l’unico presente, vi capita di dover soccorrere un traumatizzato, come dovete comportarvi?",
points: "2",
answers: [
{
id: "1",
text: "far reclinar la testa in avanti favorendo il drenaggio di sangue e muco.",
correct: true
text: "Cercate subito un medico nel paese più vicino."
},
{
id: "2",
text: "far soffiare forte il naso."
text: "Intervenite soccorrendolo voi stessi secondo i traumi subiti, come meglio potete."
},
{
id: "3",
text: "far tenere le narici serrate con le dita."
text: "Non muoverlo assolutamente e non consentire che egli stesso si muova, provvedere immediatamente a chiamare personale e mezzi di soccorso qualificati e attrezzati (eliambulanza, ambulanza, etc.).",
correct: true
}
]
},
{
id: "3008",
question: "Come si deve intervenire alla presenza di una persona colpita da soffocamento?",
id: "3005",
question: "Come intervenire su un infortunato che presenta una copiosa perdita di sangue da una ferita?",
points: "2",
answers: [
{
id: "1",
text: "lasciare che l’infortunato riprenda a respirare dopo averlo adagiato supino."
},
{
id: "2",
text: "rimuovere le più evidenti cause di soffocamento, accertare che il soffocamento non sia dovuto all’ingestione di vomito e che la lingua non sia motivo d’impedimento alla ventilazione.",
correct: true
},
{
id: "3",
text: "tentare la respirazione artificiale prima di tutto, premendo sull’addome dell’infortunato in maniera decisa e ritmica."
text: "Lasciare uscire più sangue possibile onde lavare la ferita."
}
]
},
{
id: "3009",
question: "Come intervenire alla presenza di una persona in stato di shock?",
points: "2",
answers: [
{
id: "1",
text: "lasciarla tranquilla e alleggerirgli l’abbigliamento per evitare che sudi."
text: "Lasciarla tranquilla e alleggerirgli l’abbigliamento per evitare che sudi."
},
{
id: "2",
text: "somministrargli liquori o caffè per farla riprendere."
text: "Somministrargli liquori o caffè per farla riprendere."
},
{
id: "3",
text: "coprirla in posizione supina muovendola meno possibile.",
text: "Coprirla in posizione supina muovendola meno possibile.",
correct: true
}
]
@ -173,63 +173,67 @@ const questions = [
{
id: "3010",
question: "Se in un infortunato si sospetta una frattura, come dobbiamo comportarci?",
points: "2",
answers: [
{
id: "1",
text: "tentare comunque di ridurre subito la frattura stessa ponendo prima in trazione l’arto o la parte interessata in attesa di idonei mezzi di soccorso."
text: "Tentare comunque di ridurre subito la frattura stessa ponendo prima in trazione l’arto o la parte interessata in attesa di idonei mezzi di soccorso."
},
{
id: "2",
text: "immobilizzare il traumatizzato e solo se trattasi di frattura a uno degli arti cercare di steccarlo con una “doccia” più idonea possibile, provvedendo comunque ad allertare al più presto idonei mezzi di soccorso.",
text: "Immobilizzare il traumatizzato e solo se trattasi di frattura a uno degli arti cercare di steccarlo con una “doccia” più idonea possibile, provvedendo comunque ad allertare al più presto idonei mezzi di soccorso.",
correct: true
},
{
id: "3",
text: "fasciare strettamente la parte del corpo in cui si trova la sospetta frattura in attesa di eventuali idonei mezzi di soccorso."
text: "Fasciare strettamente la parte del corpo in cui si trova la sospetta frattura in attesa di eventuali idonei mezzi di soccorso."
}
]
},
{
id: "3011",
question: "Come si deve intervenire in presenza di un infortunato che presenta sospetto trauma cranico con fuoriuscita di sangue dall’orecchio, in attesa di idonei mezzi di soccorso?",
points: "2",
answers: [
{
id: "1",
text: "tamponare la perdita di sangue."
text: "Tamponare la perdita di sangue."
},
{
id: "2",
text: "tenere il soggetto adagiato sul fianco dalla parte da cui perde sangue.",
text: "Tenere il soggetto adagiato sul fianco dalla parte da cui perde sangue.",
correct: true
},
{
id: "3",
text: "porre il soggetto in posizione seduta."
text: "Porre il soggetto in posizione seduta."
}
]
},
{
id: "3012",
question: "Come s’interviene nel caso che una persona presenti un trauma all’addome?",
points: "2",
answers: [
{
id: "1",
text: "si provvede a chiamare idonei mezzi di soccorso, mettendola in piedi per alleviarle il dolore."
text: "Si provvede a chiamare idonei mezzi di soccorso, mettendola in piedi per alleviarle il dolore."
},
{
id: "2",
text: "si provvede a chiamare idonei mezzi di soccorso,evitando di muoverla e di comprimerle l’addome.",
text: "Si provvede a chiamare idonei mezzi di soccorso, evitando di muoverla e di comprimerle l’addome.",
correct: true
},
{
id: "3",
text: "si provvede a chiamare idonei mezzi di soccorso, nel frattempo le si praticano massaggi all’addome."
text: "Si provvede a chiamare idonei mezzi di soccorso, nel frattempo le si praticano massaggi all’addome."
}
]
},
{
id: "3013",
question: "Nel caso una persona sia colpita da scarica elettrica e che rimanga a contatto con il cavo di alta tensione, il soccorritore dovrà:",
points: "2",
answers: [
{
id: "1",
@ -249,6 +253,7 @@ const questions = [
{
id: "3014",
question: "Nel caso che una persona sia colpita da scarica elettrica e che rimanga a contatto con il cavo a bassa tensione, il soccorritore dovrà:",
points: "2",
answers: [
{
id: "1",
@ -268,95 +273,100 @@ const questions = [
{
id: "3015",
question: "Come intervenire in soccorso di un soggetto che presenti una distorsione al piede?",
points: "2",
answers: [
{
id: "1",
text: "farlo camminare subito per ripristinargli la circolazione."
text: "Farlo camminare subito per ripristinargli la circolazione."
},
{
id: "2",
text: "immobilizzare la parte lesa con ovatta ed eventuale fascia elastica.",
text: "Immobilizzare la parte lesa con ovatta ed eventuale fascia elastica.",
correct: true
},
{
id: "3",
text: "trazionare l’arto infortunato cercando di ricomporre la distorsione."
text: "Trazionare l’arto infortunato cercando di ricomporre la distorsione."
}
]
},
{
id: "3016",
question: "Come si riconosce una spalla lussata?",
points: "2",
answers: [
{
id: "1",
text: "da un abbassamento dell’arto con infossamento all’altezza dell’articolazione.",
text: "Da un abbassamento dell’arto con infossamento all’altezza dell’articolazione.",
correct: true
},
{
id: "2",
text: "da un improvviso gonfiore in corrispondenza dell’articolazione."
text: "Da un improvviso gonfiore in corrispondenza dell’articolazione."
},
{
id: "3",
text: "dal fatto che braccio e avambraccio risultano privi di articolazione."
text: "Dal fatto che braccio e avambraccio risultano privi di articolazione."
}
]
},
{
id: "3017",
question: "Come s’interviene provvisoriamente in caso di grave scottatura?",
points: "2",
answers: [
{
id: "1",
text: "si mantiene pulita e detersa la parte ustionata sino al momento in cui sono possibili interventi specialistici qualificati.",
text: "Si mantiene pulita e detersa la parte ustionata sino al momento in cui sono possibili interventi specialistici qualificati.",
correct: true
},
{
id: "2",
text: "non si tocca assolutamente la parte ustionata anche se è sporca trasportando l’infortunato dal medico più vicino."
text: "Non si tocca assolutamente la parte ustionata anche se è sporca trasportando l’infortunato dal medico più vicino."
},
{
id: "3",
text: "si pone sulla parte ustionata un qualsiasi unguento disponibile."
text: "Si pone sulla parte ustionata un qualsiasi unguento disponibile."
}
]
},
{
id: "3018",
question: "Come s’interviene per soccorrere persone che abbiano perso conoscenza?",
points: "2",
answers: [
{
id: "1",
text: "si lasciano o si adagiano semplicemente in posizione prona."
text: "Si lasciano o si adagiano semplicemente in posizione prona."
},
{
id: "2",
text: "si dispongono su un fianco sollevando un braccio e una gamba.",
text: "Si dispongono su un fianco sollevando un braccio e una gamba per evitare che il vomito ostruisca le vie respiratorie.",
correct: true
},
{
id: "3",
text: "si bagna loro la fronte con acqua fredda."
text: "Si bagna loro la fronte con acqua fredda."
}
]
},
{
id: "3019",
question: "Come s’interviene su una persona svenuta a seguito di trauma?",
points: "2",
answers: [
{
id: "1",
text: "si prova a rianimarla energicamente scuotendola dopo aver chiamato idonei mezzi di soccorso."
text: "Si prova a rianimarla energicamente scuotendola dopo aver chiamato idonei mezzi di soccorso."
},
{
id: "2",
text: "le si sollevano le gambe al di sopra del livello del capo, solo se non si sospettano lesioni alla colonna vertebrale, chiamando con urgenza idonei mezzi di soccorso.",
text: "Si tiene sotto monitoraggio il battito cardiaco e la frequenza respiratoria, chiamando con urgenza idonei mezzi di soccorso.",
correct: true
},
{
id: "3",
text: "si adagia in posizione supina, le si pratica la respirazione si chiamano se necessario idonei mezzi di soccorso."
text: "Si adagia in posizione supina, le si pratica la respirazione, si chiamano se necessario idonei mezzi di soccorso."
}
]
}

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

Loading…
Cancel
Save