diff --git a/.travis.yml b/.travis.yml index 62a9ccd..cc92950 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,8 +16,10 @@ android: - tools - build-tools-27.0.3 - build-tools-26.0.3 + - build-tools-23.0.2 - android-27 - android-26 + - android-23 - extra-android-m2repository - extra-google-google_play_services - extra-google-m2repository diff --git a/outloud/android/app/build.gradle b/outloud/android/app/build.gradle index 19fb3cc..7640ea1 100644 --- a/outloud/android/app/build.gradle +++ b/outloud/android/app/build.gradle @@ -149,9 +149,13 @@ android { } dependencies { - api project(':react-native-sentry') - api project(':react-native-vector-icons') - api project(':react-native-auth0') + implementation project(':react-native-material-snackbar') + implementation project(':react-native-audio') + implementation project(':react-native-voice') + implementation project(':react-native-sound') + implementation project(':react-native-sentry') + implementation project(':react-native-vector-icons') + implementation project(':react-native-auth0') implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" implementation "com.facebook.react:react-native:+" // From node_modules diff --git a/outloud/android/app/src/main/AndroidManifest.xml b/outloud/android/app/src/main/AndroidManifest.xml index c7a6607..f65e86a 100644 --- a/outloud/android/app/src/main/AndroidManifest.xml +++ b/outloud/android/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ + getPackages() { return Arrays.asList( new MainReactPackage(), + new ReactNativeAudioPackage(), + new VoicePackage(), + new RNSoundPackage(), new RNSentryPackage(), new VectorIconsPackage(), - new A0Auth0Package() + new A0Auth0Package(), + new SnackbarPackage() ); } diff --git a/outloud/android/build.gradle b/outloud/android/build.gradle index 85d8f2f..33bc962 100644 --- a/outloud/android/build.gradle +++ b/outloud/android/build.gradle @@ -5,7 +5,7 @@ buildscript { buildToolsVersion = "27.0.3" minSdkVersion = 16 compileSdkVersion = 27 - targetSdkVersion = 26 + targetSdkVersion = 23 supportLibVersion = "27.1.1" } repositories { @@ -32,6 +32,16 @@ allprojects { } } +subprojects { + afterEvaluate {project -> + if (project.hasProperty("android")) { + android { + compileSdkVersion rootProject.ext.compileSdkVersion + buildToolsVersion rootProject.ext.buildToolsVersion + } + } + } +} task wrapper(type: Wrapper) { gradleVersion = '4.4' diff --git a/outloud/android/settings.gradle b/outloud/android/settings.gradle index 87e43e3..d7950f1 100644 --- a/outloud/android/settings.gradle +++ b/outloud/android/settings.gradle @@ -1,4 +1,12 @@ rootProject.name = 'outloud' +include ':react-native-material-snackbar' +project(':react-native-material-snackbar').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-material-snackbar/android') +include ':react-native-audio' +project(':react-native-audio').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-audio/android') +include ':react-native-voice' +project(':react-native-voice').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-voice/android') +include ':react-native-sound' +project(':react-native-sound').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sound/android') include ':react-native-sentry' project(':react-native-sentry').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sentry/android') include ':react-native-vector-icons' diff --git a/outloud/assets/fonts/Roboto-Black.ttf b/outloud/assets/fonts/Roboto-Black.ttf new file mode 100644 index 0000000..689fe5c Binary files /dev/null and b/outloud/assets/fonts/Roboto-Black.ttf differ diff --git a/outloud/assets/fonts/Roboto-BlackItalic.ttf b/outloud/assets/fonts/Roboto-BlackItalic.ttf new file mode 100644 index 0000000..0b4e0ee Binary files /dev/null and b/outloud/assets/fonts/Roboto-BlackItalic.ttf differ diff --git a/outloud/assets/fonts/Roboto-Bold.ttf b/outloud/assets/fonts/Roboto-Bold.ttf new file mode 100644 index 0000000..d3f01ad Binary files /dev/null and b/outloud/assets/fonts/Roboto-Bold.ttf differ diff --git a/outloud/assets/fonts/Roboto-BoldItalic.ttf b/outloud/assets/fonts/Roboto-BoldItalic.ttf new file mode 100644 index 0000000..41cc1e7 Binary files /dev/null and b/outloud/assets/fonts/Roboto-BoldItalic.ttf differ diff --git a/outloud/assets/fonts/Roboto-Italic.ttf b/outloud/assets/fonts/Roboto-Italic.ttf new file mode 100644 index 0000000..6a1cee5 Binary files /dev/null and b/outloud/assets/fonts/Roboto-Italic.ttf differ diff --git a/outloud/assets/fonts/Roboto-Light.ttf b/outloud/assets/fonts/Roboto-Light.ttf new file mode 100644 index 0000000..219063a Binary files /dev/null and b/outloud/assets/fonts/Roboto-Light.ttf differ diff --git a/outloud/assets/fonts/Roboto-LightItalic.ttf b/outloud/assets/fonts/Roboto-LightItalic.ttf new file mode 100644 index 0000000..0e81e87 Binary files /dev/null and b/outloud/assets/fonts/Roboto-LightItalic.ttf differ diff --git a/outloud/assets/fonts/Roboto-Medium.ttf b/outloud/assets/fonts/Roboto-Medium.ttf new file mode 100644 index 0000000..1a7f3b0 Binary files /dev/null and b/outloud/assets/fonts/Roboto-Medium.ttf differ diff --git a/outloud/assets/fonts/Roboto-MediumItalic.ttf b/outloud/assets/fonts/Roboto-MediumItalic.ttf new file mode 100644 index 0000000..0030295 Binary files /dev/null and b/outloud/assets/fonts/Roboto-MediumItalic.ttf differ diff --git a/outloud/assets/fonts/Roboto-Regular.ttf b/outloud/assets/fonts/Roboto-Regular.ttf new file mode 100644 index 0000000..2c97eea Binary files /dev/null and b/outloud/assets/fonts/Roboto-Regular.ttf differ diff --git a/outloud/assets/fonts/Roboto-Thin.ttf b/outloud/assets/fonts/Roboto-Thin.ttf new file mode 100644 index 0000000..b74a4fd Binary files /dev/null and b/outloud/assets/fonts/Roboto-Thin.ttf differ diff --git a/outloud/assets/fonts/Roboto-ThinItalic.ttf b/outloud/assets/fonts/Roboto-ThinItalic.ttf new file mode 100644 index 0000000..dd0ddb8 Binary files /dev/null and b/outloud/assets/fonts/Roboto-ThinItalic.ttf differ diff --git a/outloud/ios/outloud.xcodeproj/project.pbxproj b/outloud/ios/outloud.xcodeproj/project.pbxproj index 4f5ad58..f04cf8f 100644 --- a/outloud/ios/outloud.xcodeproj/project.pbxproj +++ b/outloud/ios/outloud.xcodeproj/project.pbxproj @@ -55,6 +55,22 @@ 1B1C5942D03E426CB9C2FB7F /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 99D1C6418F98414CA5DC2CC2 /* Zocial.ttf */; }; 6E87516B04464D49950A7DBC /* libRNSentry.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0011225C01B04BED8717C24B /* libRNSentry.a */; }; 17CC0BFB5A624B2B897B62A6 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 600D0A678C1245F89E9AA624 /* libz.tbd */; }; + C368EDA246F4490382B2886E /* libRNSound.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 40243AE54810444B832F8D38 /* libRNSound.a */; }; + 72ACB5CDBF8B447A8EE4F89F /* libVoice.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EA99F25621E04EFFAC020AB0 /* libVoice.a */; }; + E201F574E01142AFBE907C66 /* libRNAudio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BF434C4CB34C407F9A863728 /* libRNAudio.a */; }; + E73F686B592A41A1B015AD45 /* Roboto-Black.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 135B0E9FBC65497BB45FD06C /* Roboto-Black.ttf */; }; + 782EBCC990B14664ADE289E3 /* Roboto-BlackItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C4387D9D344741E291D64D42 /* Roboto-BlackItalic.ttf */; }; + 866E201B1F0B474BA7A6C2C0 /* Roboto-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B0DC5D417F52448C9CC62184 /* Roboto-Bold.ttf */; }; + 8F9F6CA1333B4D7CA585D88A /* Roboto-BoldItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = EF96CC68FC9B4DFB9F9A23F7 /* Roboto-BoldItalic.ttf */; }; + 1BBFF6F0B4E1431C91B1162B /* Roboto-Italic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 3D8A312318074AF98021EB47 /* Roboto-Italic.ttf */; }; + 9497E929F49047D895925BDE /* Roboto-Light.ttf in Resources */ = {isa = PBXBuildFile; fileRef = EB8553DE174E44958C2A4AE9 /* Roboto-Light.ttf */; }; + 51F09EAC113C4E8BBB8E095F /* Roboto-LightItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1787CBF96DFB42E0969D4CE3 /* Roboto-LightItalic.ttf */; }; + 5C75C6D02E574BC18239F89A /* Roboto-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CC7867C91AEB4A6DBE49FF06 /* Roboto-Medium.ttf */; }; + 15771437A12844BE89D58EC1 /* Roboto-MediumItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0F83C07630BD47769F1FF957 /* Roboto-MediumItalic.ttf */; }; + 7879C6D27C994C75818E5A18 /* Roboto-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = ACCC5362EEA94A879E60142D /* Roboto-Regular.ttf */; }; + 14C4C74581BF49478DB7CB2A /* Roboto-Thin.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 38CA45D6CFA346A2B346E51D /* Roboto-Thin.ttf */; }; + 8C6A361475084EA9B180A8DF /* Roboto-ThinItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FA26CAA426534751A03BE0DA /* Roboto-ThinItalic.ttf */; }; + D1D9496D750C4EECAF434723 /* libRNSnackbar.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A742A82490AF476099C0D88F /* libRNSnackbar.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -381,6 +397,26 @@ 6912CC50CEEB4960B1D13FD8 /* RNSentry.xcodeproj */ = {isa = PBXFileReference; name = "RNSentry.xcodeproj"; path = "../node_modules/react-native-sentry/ios/RNSentry.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; 0011225C01B04BED8717C24B /* libRNSentry.a */ = {isa = PBXFileReference; name = "libRNSentry.a"; path = "libRNSentry.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; 600D0A678C1245F89E9AA624 /* libz.tbd */ = {isa = PBXFileReference; name = "libz.tbd"; path = "usr/lib/libz.tbd"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = sourcecode.text-based-dylib-definition; explicitFileType = undefined; includeInIndex = 0; }; + 1F2DE364E8B540A9BCCE2C1E /* RNSound.xcodeproj */ = {isa = PBXFileReference; name = "RNSound.xcodeproj"; path = "../node_modules/react-native-sound/RNSound.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; + 40243AE54810444B832F8D38 /* libRNSound.a */ = {isa = PBXFileReference; name = "libRNSound.a"; path = "libRNSound.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; + 4FF8CAA1F571411CB1D2DDC4 /* Voice.xcodeproj */ = {isa = PBXFileReference; name = "Voice.xcodeproj"; path = "../node_modules/react-native-voice/ios/Voice.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; + EA99F25621E04EFFAC020AB0 /* libVoice.a */ = {isa = PBXFileReference; name = "libVoice.a"; path = "libVoice.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; + AA2BCE2484104CC185506AE8 /* RNAudio.xcodeproj */ = {isa = PBXFileReference; name = "RNAudio.xcodeproj"; path = "../node_modules/react-native-audio/ios/RNAudio.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; + BF434C4CB34C407F9A863728 /* libRNAudio.a */ = {isa = PBXFileReference; name = "libRNAudio.a"; path = "libRNAudio.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; + 135B0E9FBC65497BB45FD06C /* Roboto-Black.ttf */ = {isa = PBXFileReference; name = "Roboto-Black.ttf"; path = "../assets/fonts/Roboto-Black.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + C4387D9D344741E291D64D42 /* Roboto-BlackItalic.ttf */ = {isa = PBXFileReference; name = "Roboto-BlackItalic.ttf"; path = "../assets/fonts/Roboto-BlackItalic.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + B0DC5D417F52448C9CC62184 /* Roboto-Bold.ttf */ = {isa = PBXFileReference; name = "Roboto-Bold.ttf"; path = "../assets/fonts/Roboto-Bold.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + EF96CC68FC9B4DFB9F9A23F7 /* Roboto-BoldItalic.ttf */ = {isa = PBXFileReference; name = "Roboto-BoldItalic.ttf"; path = "../assets/fonts/Roboto-BoldItalic.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 3D8A312318074AF98021EB47 /* Roboto-Italic.ttf */ = {isa = PBXFileReference; name = "Roboto-Italic.ttf"; path = "../assets/fonts/Roboto-Italic.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + EB8553DE174E44958C2A4AE9 /* Roboto-Light.ttf */ = {isa = PBXFileReference; name = "Roboto-Light.ttf"; path = "../assets/fonts/Roboto-Light.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 1787CBF96DFB42E0969D4CE3 /* Roboto-LightItalic.ttf */ = {isa = PBXFileReference; name = "Roboto-LightItalic.ttf"; path = "../assets/fonts/Roboto-LightItalic.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + CC7867C91AEB4A6DBE49FF06 /* Roboto-Medium.ttf */ = {isa = PBXFileReference; name = "Roboto-Medium.ttf"; path = "../assets/fonts/Roboto-Medium.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 0F83C07630BD47769F1FF957 /* Roboto-MediumItalic.ttf */ = {isa = PBXFileReference; name = "Roboto-MediumItalic.ttf"; path = "../assets/fonts/Roboto-MediumItalic.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + ACCC5362EEA94A879E60142D /* Roboto-Regular.ttf */ = {isa = PBXFileReference; name = "Roboto-Regular.ttf"; path = "../assets/fonts/Roboto-Regular.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 38CA45D6CFA346A2B346E51D /* Roboto-Thin.ttf */ = {isa = PBXFileReference; name = "Roboto-Thin.ttf"; path = "../assets/fonts/Roboto-Thin.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + FA26CAA426534751A03BE0DA /* Roboto-ThinItalic.ttf */ = {isa = PBXFileReference; name = "Roboto-ThinItalic.ttf"; path = "../assets/fonts/Roboto-ThinItalic.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + D6EB5E7F37D74D98B136B8D6 /* RNSnackbar.xcodeproj */ = {isa = PBXFileReference; name = "RNSnackbar.xcodeproj"; path = "../node_modules/react-native-material-snackbar/ios/RNSnackbar.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; + A742A82490AF476099C0D88F /* libRNSnackbar.a */ = {isa = PBXFileReference; name = "libRNSnackbar.a"; path = "libRNSnackbar.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -412,6 +448,10 @@ 5D0C14CD548548A389E27040 /* libRNVectorIcons.a in Frameworks */, 6E87516B04464D49950A7DBC /* libRNSentry.a in Frameworks */, 17CC0BFB5A624B2B897B62A6 /* libz.tbd in Frameworks */, + C368EDA246F4490382B2886E /* libRNSound.a in Frameworks */, + 72ACB5CDBF8B447A8EE4F89F /* libVoice.a in Frameworks */, + E201F574E01142AFBE907C66 /* libRNAudio.a in Frameworks */, + D1D9496D750C4EECAF434723 /* libRNSnackbar.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -602,6 +642,10 @@ 7A84098CE45E4444BE0F1050 /* A0Auth0.xcodeproj */, C005F086220645DBB7ECBCAA /* RNVectorIcons.xcodeproj */, 6912CC50CEEB4960B1D13FD8 /* RNSentry.xcodeproj */, + 1F2DE364E8B540A9BCCE2C1E /* RNSound.xcodeproj */, + 4FF8CAA1F571411CB1D2DDC4 /* Voice.xcodeproj */, + AA2BCE2484104CC185506AE8 /* RNAudio.xcodeproj */, + D6EB5E7F37D74D98B136B8D6 /* RNSnackbar.xcodeproj */, ); name = Libraries; sourceTree = ""; @@ -667,6 +711,18 @@ E8E0D58B1498483D8E6582C3 /* Octicons.ttf */, 12A24819709C47D79BA4F33A /* SimpleLineIcons.ttf */, 99D1C6418F98414CA5DC2CC2 /* Zocial.ttf */, + 135B0E9FBC65497BB45FD06C /* Roboto-Black.ttf */, + C4387D9D344741E291D64D42 /* Roboto-BlackItalic.ttf */, + B0DC5D417F52448C9CC62184 /* Roboto-Bold.ttf */, + EF96CC68FC9B4DFB9F9A23F7 /* Roboto-BoldItalic.ttf */, + 3D8A312318074AF98021EB47 /* Roboto-Italic.ttf */, + EB8553DE174E44958C2A4AE9 /* Roboto-Light.ttf */, + 1787CBF96DFB42E0969D4CE3 /* Roboto-LightItalic.ttf */, + CC7867C91AEB4A6DBE49FF06 /* Roboto-Medium.ttf */, + 0F83C07630BD47769F1FF957 /* Roboto-MediumItalic.ttf */, + ACCC5362EEA94A879E60142D /* Roboto-Regular.ttf */, + 38CA45D6CFA346A2B346E51D /* Roboto-Thin.ttf */, + FA26CAA426534751A03BE0DA /* Roboto-ThinItalic.ttf */, ); name = Resources; sourceTree = ""; @@ -1132,6 +1188,18 @@ 69145DD3D57B441AB84EAB0C /* Octicons.ttf in Resources */, E0442497C58E4847B4BC7906 /* SimpleLineIcons.ttf in Resources */, 1B1C5942D03E426CB9C2FB7F /* Zocial.ttf in Resources */, + E73F686B592A41A1B015AD45 /* Roboto-Black.ttf in Resources */, + 782EBCC990B14664ADE289E3 /* Roboto-BlackItalic.ttf in Resources */, + 866E201B1F0B474BA7A6C2C0 /* Roboto-Bold.ttf in Resources */, + 8F9F6CA1333B4D7CA585D88A /* Roboto-BoldItalic.ttf in Resources */, + 1BBFF6F0B4E1431C91B1162B /* Roboto-Italic.ttf in Resources */, + 9497E929F49047D895925BDE /* Roboto-Light.ttf in Resources */, + 51F09EAC113C4E8BBB8E095F /* Roboto-LightItalic.ttf in Resources */, + 5C75C6D02E574BC18239F89A /* Roboto-Medium.ttf in Resources */, + 15771437A12844BE89D58EC1 /* Roboto-MediumItalic.ttf in Resources */, + 7879C6D27C994C75818E5A18 /* Roboto-Regular.ttf in Resources */, + 14C4C74581BF49478DB7CB2A /* Roboto-Thin.ttf in Resources */, + 8C6A361475084EA9B180A8DF /* Roboto-ThinItalic.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1275,6 +1343,10 @@ "$(SRCROOT)\..\node_modules\react-native-auth0\ios", "$(SRCROOT)\..\node_modules\react-native-vector-icons\RNVectorIconsManager", "$(SRCROOT)\..\node_modules\react-native-sentry\ios/**", + "$(SRCROOT)\..\node_modules\react-native-sound\RNSound", + "$(SRCROOT)\..\node_modules\react-native-voice\ios\Voice", + "$(SRCROOT)\..\node_modules\react-native-audio\ios", + "$(SRCROOT)\..\node_modules\react-native-material-snackbar\ios", ); }; name = Debug; @@ -1305,6 +1377,10 @@ "$(SRCROOT)\..\node_modules\react-native-auth0\ios", "$(SRCROOT)\..\node_modules\react-native-vector-icons\RNVectorIconsManager", "$(SRCROOT)\..\node_modules\react-native-sentry\ios/**", + "$(SRCROOT)\..\node_modules\react-native-sound\RNSound", + "$(SRCROOT)\..\node_modules\react-native-voice\ios\Voice", + "$(SRCROOT)\..\node_modules\react-native-audio\ios", + "$(SRCROOT)\..\node_modules\react-native-material-snackbar\ios", ); }; name = Release; @@ -1330,6 +1406,10 @@ "$(SRCROOT)\..\node_modules\react-native-auth0\ios", "$(SRCROOT)\..\node_modules\react-native-vector-icons\RNVectorIconsManager", "$(SRCROOT)\..\node_modules\react-native-sentry\ios/**", + "$(SRCROOT)\..\node_modules\react-native-sound\RNSound", + "$(SRCROOT)\..\node_modules\react-native-voice\ios\Voice", + "$(SRCROOT)\..\node_modules\react-native-audio\ios", + "$(SRCROOT)\..\node_modules\react-native-material-snackbar\ios", ); }; name = Debug; @@ -1354,6 +1434,10 @@ "$(SRCROOT)\..\node_modules\react-native-auth0\ios", "$(SRCROOT)\..\node_modules\react-native-vector-icons\RNVectorIconsManager", "$(SRCROOT)\..\node_modules\react-native-sentry\ios/**", + "$(SRCROOT)\..\node_modules\react-native-sound\RNSound", + "$(SRCROOT)\..\node_modules\react-native-voice\ios\Voice", + "$(SRCROOT)\..\node_modules\react-native-audio\ios", + "$(SRCROOT)\..\node_modules\react-native-material-snackbar\ios", ); }; name = Release; @@ -1392,6 +1476,10 @@ "$(SRCROOT)\..\node_modules\react-native-auth0\ios", "$(SRCROOT)\..\node_modules\react-native-vector-icons\RNVectorIconsManager", "$(SRCROOT)\..\node_modules\react-native-sentry\ios/**", + "$(SRCROOT)\..\node_modules\react-native-sound\RNSound", + "$(SRCROOT)\..\node_modules\react-native-voice\ios\Voice", + "$(SRCROOT)\..\node_modules\react-native-audio\ios", + "$(SRCROOT)\..\node_modules\react-native-material-snackbar\ios", ); }; name = Debug; @@ -1430,6 +1518,10 @@ "$(SRCROOT)\..\node_modules\react-native-auth0\ios", "$(SRCROOT)\..\node_modules\react-native-vector-icons\RNVectorIconsManager", "$(SRCROOT)\..\node_modules\react-native-sentry\ios/**", + "$(SRCROOT)\..\node_modules\react-native-sound\RNSound", + "$(SRCROOT)\..\node_modules\react-native-voice\ios\Voice", + "$(SRCROOT)\..\node_modules\react-native-audio\ios", + "$(SRCROOT)\..\node_modules\react-native-material-snackbar\ios", ); }; name = Release; @@ -1467,6 +1559,10 @@ "$(SRCROOT)\..\node_modules\react-native-auth0\ios", "$(SRCROOT)\..\node_modules\react-native-vector-icons\RNVectorIconsManager", "$(SRCROOT)\..\node_modules\react-native-sentry\ios/**", + "$(SRCROOT)\..\node_modules\react-native-sound\RNSound", + "$(SRCROOT)\..\node_modules\react-native-voice\ios\Voice", + "$(SRCROOT)\..\node_modules\react-native-audio\ios", + "$(SRCROOT)\..\node_modules\react-native-material-snackbar\ios", ); }; name = Debug; @@ -1504,6 +1600,10 @@ "$(SRCROOT)\..\node_modules\react-native-auth0\ios", "$(SRCROOT)\..\node_modules\react-native-vector-icons\RNVectorIconsManager", "$(SRCROOT)\..\node_modules\react-native-sentry\ios/**", + "$(SRCROOT)\..\node_modules\react-native-sound\RNSound", + "$(SRCROOT)\..\node_modules\react-native-voice\ios\Voice", + "$(SRCROOT)\..\node_modules\react-native-audio\ios", + "$(SRCROOT)\..\node_modules\react-native-material-snackbar\ios", ); }; name = Release; diff --git a/outloud/ios/outloud/Info.plist b/outloud/ios/outloud/Info.plist index 062acec..f64d1ca 100644 --- a/outloud/ios/outloud/Info.plist +++ b/outloud/ios/outloud/Info.plist @@ -69,6 +69,18 @@ Octicons.ttf SimpleLineIcons.ttf Zocial.ttf + Roboto-Black.ttf + Roboto-BlackItalic.ttf + Roboto-Bold.ttf + Roboto-BoldItalic.ttf + Roboto-Italic.ttf + Roboto-Light.ttf + Roboto-LightItalic.ttf + Roboto-Medium.ttf + Roboto-MediumItalic.ttf + Roboto-Regular.ttf + Roboto-Thin.ttf + Roboto-ThinItalic.ttf diff --git a/outloud/package-lock.json b/outloud/package-lock.json index 96a01a4..2888eb7 100644 --- a/outloud/package-lock.json +++ b/outloud/package-lock.json @@ -2545,6 +2545,15 @@ "object-visit": "^1.0.0" } }, + "color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", + "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -2558,6 +2567,15 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", @@ -3420,13 +3438,11 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "optional": true + "bundled": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3443,8 +3459,7 @@ }, "concat-map": { "version": "0.0.1", - "bundled": true, - "optional": true + "bundled": true }, "console-control-strings": { "version": "1.1.0", @@ -3573,7 +3588,6 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -6016,6 +6030,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, + "lodash.merge": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", + "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==" + }, "lodash.pad": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", @@ -7277,6 +7296,19 @@ "yargs": "^9.0.0" } }, + "react-native-action-button": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/react-native-action-button/-/react-native-action-button-2.8.5.tgz", + "integrity": "sha512-BvGZpzuGeuFR2Y6j93+vKiSqDhsF87VHvNXFs/qEYKfzT4b1ASAT/GQbgS6gNt4jRJCUnJWYrIwlBzRjesZQmQ==", + "requires": { + "prop-types": "^15.5.10" + } + }, + "react-native-audio": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/react-native-audio/-/react-native-audio-4.2.1.tgz", + "integrity": "sha512-vRKuvAgJZOi6wsIhI6L22vyrulBHt74WtQofj//0mgjbWl3Pcz685lYWHBCVV5jHxu334q+tqZiQbix7jXwrhA==" + }, "react-native-auth0": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/react-native-auth0/-/react-native-auth0-1.3.0.tgz", @@ -7307,6 +7339,95 @@ "react-native-drawer-layout": "1.3.2" } }, + "react-native-material-bottom-navigation": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/react-native-material-bottom-navigation/-/react-native-material-bottom-navigation-1.0.2.tgz", + "integrity": "sha512-xPI9EUqBlYC1U970tZ0eX0VP7mmiZYYemnn2JWmj2xDqzdrdjEZF50woLZdRb2SnzCwC7tUb1MfSaV1T52GP8w==", + "requires": { + "prop-types": "^15.6.1" + } + }, + "react-native-material-buttons": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/react-native-material-buttons/-/react-native-material-buttons-0.5.0.tgz", + "integrity": "sha1-qys+P8P1AMpxP1Hp11l4r/YCFSo=", + "requires": { + "prop-types": "^15.5.9", + "react-native-material-ripple": "^0.7.0" + }, + "dependencies": { + "react-native-material-ripple": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/react-native-material-ripple/-/react-native-material-ripple-0.7.5.tgz", + "integrity": "sha1-4q9REGgFMvFK6jw6Q4JHvi/+9lk=", + "requires": { + "prop-types": "^15.5.10" + } + } + } + }, + "react-native-material-design-styles": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/react-native-material-design-styles/-/react-native-material-design-styles-0.2.7.tgz", + "integrity": "sha512-dEtVROG1zqso3fiElJulOU+8/HwWh2TVIyDICrddlyAuDt5dpowelLpmamkRW1CV8VHRdHY5ZhxGWUOiPvROgw==" + }, + "react-native-material-dropdown": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/react-native-material-dropdown/-/react-native-material-dropdown-0.11.1.tgz", + "integrity": "sha1-wP5DSo5heUHvkQukTS8HyPN1hP4=", + "requires": { + "prop-types": "^15.5.9", + "react-native-material-buttons": "^0.5.0", + "react-native-material-ripple": "^0.8.0", + "react-native-material-textfield": "^0.12.0" + } + }, + "react-native-material-ripple": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/react-native-material-ripple/-/react-native-material-ripple-0.8.0.tgz", + "integrity": "sha1-uMJOb96iryoh6EaLH0CzVIMBni8=", + "requires": { + "prop-types": "^15.5.10" + } + }, + "react-native-material-snackbar": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/react-native-material-snackbar/-/react-native-material-snackbar-0.0.1.tgz", + "integrity": "sha512-hwyx4RShP3ueYKHKbrSBdwaJnwLVA8zFXRfh/dUPrQxb4roKMIDxKCockN1wEPV6V74KfuEi0tLuH85bhKfHYg==" + }, + "react-native-material-textfield": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/react-native-material-textfield/-/react-native-material-textfield-0.12.0.tgz", + "integrity": "sha1-P7oZ12q4n2cFLIHgghUvwkPYKj8=", + "requires": { + "prop-types": "^15.5.9" + } + }, + "react-native-material-ui": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/react-native-material-ui/-/react-native-material-ui-1.30.1.tgz", + "integrity": "sha512-lvcfDMdPRUloVHVNbQR62h2pCoGOlwWEcC5UEzUNlPX7lRZt/A13PLHIj8wSkE4giwg4GZI9LWY0yqCKxsAq/Q==", + "requires": { + "color": "3.0.0", + "hoist-non-react-statics": "^2.5.5", + "lodash.merge": "^4.0.0", + "prop-types": "^15.5.10", + "react-native-material-design-styles": "^0.2.6" + } + }, + "react-native-md-textinput": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-native-md-textinput/-/react-native-md-textinput-2.0.4.tgz", + "integrity": "sha1-n4HP8WzroLxZX8WO0SOb0TpAI6g=" + }, + "react-native-progress": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/react-native-progress/-/react-native-progress-3.5.0.tgz", + "integrity": "sha512-Tgc002D0BGes1fTlObu/qNItlsTPYKFrF9XRQaJLme77TNxNX9I04sgIz3kaq8O4R+z/jlai64dk1HDEDQhzMA==", + "requires": { + "prop-types": "^15.5.8" + } + }, "react-native-safe-area-view": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-native-safe-area-view/-/react-native-safe-area-view-0.11.0.tgz", @@ -7329,6 +7450,11 @@ "raven-js": "^3.24.2" } }, + "react-native-sound": { + "version": "0.10.9", + "resolved": "https://registry.npmjs.org/react-native-sound/-/react-native-sound-0.10.9.tgz", + "integrity": "sha1-awCw9K/QF83gn7udFx3xtdW4Uag=" + }, "react-native-tab-view": { "version": "0.0.77", "resolved": "http://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-0.0.77.tgz", @@ -7369,6 +7495,11 @@ } } }, + "react-native-voice": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/react-native-voice/-/react-native-voice-0.2.6.tgz", + "integrity": "sha512-WeNlNNtYDxwyym203yzjTDDCH9iLThi24W85p0oP/0DS9jZ6B6WsPYidWyKg6Qv1TrOq/gHz9vwQLZforM7u3w==" + }, "react-navigation": { "version": "2.17.0", "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-2.17.0.tgz", @@ -8261,6 +8392,21 @@ } } }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, "sisteransi": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz", diff --git a/outloud/package.json b/outloud/package.json index cfc4297..688a5c8 100644 --- a/outloud/package.json +++ b/outloud/package.json @@ -10,9 +10,20 @@ "jwt-decode": "^2.2.0", "react": "16.5.0", "react-native": "0.57.1", + "react-native-action-button": "^2.8.5", + "react-native-audio": "^4.2.1", "react-native-auth0": "^1.3.0", + "react-native-material-bottom-navigation": "^1.0.2", + "react-native-material-dropdown": "^0.11.1", + "react-native-material-snackbar": "0.0.1", + "react-native-material-textfield": "^0.12.0", + "react-native-material-ui": "^1.30.1", + "react-native-md-textinput": "^2.0.4", + "react-native-progress": "^3.5.0", "react-native-sentry": "^0.39.0", + "react-native-sound": "^0.10.9", "react-native-vector-icons": "^5.0.0", + "react-native-voice": "^0.2.6", "react-navigation": "^2.17.0" }, "devDependencies": { @@ -24,5 +35,10 @@ }, "jest": { "preset": "react-native" + }, + "rnpm": { + "assets": [ + "./assets/fonts" + ] } } diff --git a/outloud/resources/button.png b/outloud/resources/button.png new file mode 100644 index 0000000..628272e Binary files /dev/null and b/outloud/resources/button.png differ diff --git a/outloud/src/components/AddScreen.js b/outloud/src/components/AddScreen.js new file mode 100644 index 0000000..b316475 --- /dev/null +++ b/outloud/src/components/AddScreen.js @@ -0,0 +1,19 @@ +import React, {Component} from 'react'; +import { + View +} from 'react-native'; +import { Button } from 'react-native-material-ui'; + +class AddScreen extends Component { + render() { + return ( + +