diff --git a/.travis.yml b/.travis.yml index f083cd5d79..0991315b83 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ matrix: include: - # test + # test - os: linux language: node_js node_js: @@ -17,7 +17,7 @@ matrix: script: - yarn test - # android test + # android test - if: type IN (pull_request) os: linux language: android @@ -25,8 +25,6 @@ matrix: cache: yarn: true - directories: - - node_modules before_install: - echo y | android update sdk --no-ui --filter build-tools-26.0.1,build-tools-26.0.2,android-26,extra-android-m2repository @@ -83,7 +81,7 @@ matrix: - cd ios - bundle exec fastlane ios test - # android deploy Alpha + # android deploy Alpha - if: branch =~ ^master AND NOT type =~ ^pull_request os: linux language: android @@ -109,13 +107,13 @@ matrix: components: - tools - platform-tools - # android 23 + # android 23 - build-tools-23.0.1 - build-tools-25.0.1 - build-tools-26.0.1 - build-tools-26.0.2 - android-23 - # extra + # extra - extra-android-m2repository - extra-google-google_play_services - extra-google-m2repository diff --git a/android/app/build.gradle b/android/app/build.gradle index c3a3f78f99..d449ba0ae3 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -170,6 +170,7 @@ dependencies { compile "com.android.support:appcompat-v7:23.0.1" compile "com.facebook.react:react-native:+" compile project(':react-native-navigation') + compile project(':react-native-linear-gradient') } // Run this once to be able to run the application with BUCK diff --git a/android/app/src/main/assets/fonts/HelveticaNeue-Light.ttf b/android/app/src/main/assets/fonts/HelveticaNeue-Light.ttf new file mode 100644 index 0000000000..71c5e9eaf3 Binary files /dev/null and b/android/app/src/main/assets/fonts/HelveticaNeue-Light.ttf differ diff --git a/android/app/src/main/java/com/democracyclient/MainApplication.java b/android/app/src/main/java/com/democracyclient/MainApplication.java index 4dafcf759b..7581a1dff3 100644 --- a/android/app/src/main/java/com/democracyclient/MainApplication.java +++ b/android/app/src/main/java/com/democracyclient/MainApplication.java @@ -16,6 +16,8 @@ import java.util.Arrays; import java.util.List; +import com.BV.LinearGradient.LinearGradientPackage; + public class MainApplication extends NavigationApplication { private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { @@ -29,7 +31,8 @@ protected List getPackages() { return Arrays.asList(new MainReactPackage(), new RNDeviceInfo(), new ReactNativeConfigPackage(), - new VectorIconsPackage()); + new VectorIconsPackage(), + new LinearGradientPackage()); } @Override @@ -62,7 +65,8 @@ protected List getPackages() { // eg. new VectorIconsPackage() new RNDeviceInfo(), new ReactNativeConfigPackage(), - new VectorIconsPackage() + new VectorIconsPackage(), + new LinearGradientPackage() ); } diff --git a/android/settings.gradle b/android/settings.gradle index 3b390cc959..340db9db26 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,12 +1,13 @@ rootProject.name = 'democracyclient' +include ':react-native-vector-icons' +project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android') +include ':react-native-navigation' +project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/android/app') +include ':react-native-linear-gradient' +project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android') include ':react-native-device-info' project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android') include ':react-native-config' project(':react-native-config').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-config/android') -include ':react-native-vector-icons' -project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android') include ':app' - -include ':react-native-navigation' -project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/android/app/') diff --git a/assets/tutorial/icon.analysiere.png b/assets/tutorial/icon.analysiere.png new file mode 100644 index 0000000000..c5de868f5f Binary files /dev/null and b/assets/tutorial/icon.analysiere.png differ diff --git a/assets/tutorial/icon.analysiere@2x.png b/assets/tutorial/icon.analysiere@2x.png new file mode 100644 index 0000000000..eef2c812d5 Binary files /dev/null and b/assets/tutorial/icon.analysiere@2x.png differ diff --git a/assets/tutorial/icon.analysiere@3x.png b/assets/tutorial/icon.analysiere@3x.png new file mode 100644 index 0000000000..fa4ce6eaba Binary files /dev/null and b/assets/tutorial/icon.analysiere@3x.png differ diff --git a/assets/tutorial/icon.beobachte.png b/assets/tutorial/icon.beobachte.png new file mode 100644 index 0000000000..a0ed430447 Binary files /dev/null and b/assets/tutorial/icon.beobachte.png differ diff --git a/assets/tutorial/icon.beobachte@2x.png b/assets/tutorial/icon.beobachte@2x.png new file mode 100644 index 0000000000..6cffdb448c Binary files /dev/null and b/assets/tutorial/icon.beobachte@2x.png differ diff --git a/assets/tutorial/icon.beobachte@3x.png b/assets/tutorial/icon.beobachte@3x.png new file mode 100644 index 0000000000..d7e144a666 Binary files /dev/null and b/assets/tutorial/icon.beobachte@3x.png differ diff --git a/assets/tutorial/icon.diskutiere.png b/assets/tutorial/icon.diskutiere.png new file mode 100644 index 0000000000..1fcabf968a Binary files /dev/null and b/assets/tutorial/icon.diskutiere.png differ diff --git a/assets/tutorial/icon.diskutiere@2x.png b/assets/tutorial/icon.diskutiere@2x.png new file mode 100644 index 0000000000..cf345d9155 Binary files /dev/null and b/assets/tutorial/icon.diskutiere@2x.png differ diff --git a/assets/tutorial/icon.diskutiere@3x.png b/assets/tutorial/icon.diskutiere@3x.png new file mode 100644 index 0000000000..8833099262 Binary files /dev/null and b/assets/tutorial/icon.diskutiere@3x.png differ diff --git a/assets/tutorial/icon.informiere.png b/assets/tutorial/icon.informiere.png new file mode 100644 index 0000000000..0561ac938b Binary files /dev/null and b/assets/tutorial/icon.informiere.png differ diff --git a/assets/tutorial/icon.informiere@2x.png b/assets/tutorial/icon.informiere@2x.png new file mode 100644 index 0000000000..2f618aea8b Binary files /dev/null and b/assets/tutorial/icon.informiere@2x.png differ diff --git a/assets/tutorial/icon.informiere@3x.png b/assets/tutorial/icon.informiere@3x.png new file mode 100644 index 0000000000..d443e89798 Binary files /dev/null and b/assets/tutorial/icon.informiere@3x.png differ diff --git a/assets/tutorial/icon.logo.png b/assets/tutorial/icon.logo.png new file mode 100644 index 0000000000..b2da859601 Binary files /dev/null and b/assets/tutorial/icon.logo.png differ diff --git a/assets/tutorial/icon.logo@2x.png b/assets/tutorial/icon.logo@2x.png new file mode 100644 index 0000000000..1b2db4ee13 Binary files /dev/null and b/assets/tutorial/icon.logo@2x.png differ diff --git a/assets/tutorial/icon.logo@3x.png b/assets/tutorial/icon.logo@3x.png new file mode 100644 index 0000000000..80a58e3713 Binary files /dev/null and b/assets/tutorial/icon.logo@3x.png differ diff --git a/assets/tutorial/icon.stimme.png b/assets/tutorial/icon.stimme.png new file mode 100644 index 0000000000..d01ad7c374 Binary files /dev/null and b/assets/tutorial/icon.stimme.png differ diff --git a/assets/tutorial/icon.stimme@2x.png b/assets/tutorial/icon.stimme@2x.png new file mode 100644 index 0000000000..9b8b5240c5 Binary files /dev/null and b/assets/tutorial/icon.stimme@2x.png differ diff --git a/assets/tutorial/icon.stimme@3x.png b/assets/tutorial/icon.stimme@3x.png new file mode 100644 index 0000000000..afff0b4948 Binary files /dev/null and b/assets/tutorial/icon.stimme@3x.png differ diff --git a/assets/tutorial/icon.touch.png b/assets/tutorial/icon.touch.png new file mode 100644 index 0000000000..0d87a2169b Binary files /dev/null and b/assets/tutorial/icon.touch.png differ diff --git a/assets/tutorial/icon.touch@2x.png b/assets/tutorial/icon.touch@2x.png new file mode 100644 index 0000000000..a6ecb5332e Binary files /dev/null and b/assets/tutorial/icon.touch@2x.png differ diff --git a/assets/tutorial/icon.touch@3x.png b/assets/tutorial/icon.touch@3x.png new file mode 100644 index 0000000000..977ac4682b Binary files /dev/null and b/assets/tutorial/icon.touch@3x.png differ diff --git a/assets/tutorial/screen.analyse.png b/assets/tutorial/screen.analyse.png new file mode 100644 index 0000000000..7d332e6000 Binary files /dev/null and b/assets/tutorial/screen.analyse.png differ diff --git a/assets/tutorial/screen.analyse@2x.png b/assets/tutorial/screen.analyse@2x.png new file mode 100644 index 0000000000..dcf68fb935 Binary files /dev/null and b/assets/tutorial/screen.analyse@2x.png differ diff --git a/assets/tutorial/screen.analyse@3x.png b/assets/tutorial/screen.analyse@3x.png new file mode 100644 index 0000000000..193096e691 Binary files /dev/null and b/assets/tutorial/screen.analyse@3x.png differ diff --git a/assets/tutorial/screen.detail.png b/assets/tutorial/screen.detail.png new file mode 100644 index 0000000000..bc4493f679 Binary files /dev/null and b/assets/tutorial/screen.detail.png differ diff --git a/assets/tutorial/screen.detail@2x.png b/assets/tutorial/screen.detail@2x.png new file mode 100644 index 0000000000..561798ec28 Binary files /dev/null and b/assets/tutorial/screen.detail@2x.png differ diff --git a/assets/tutorial/screen.detail@3x.png b/assets/tutorial/screen.detail@3x.png new file mode 100644 index 0000000000..af6b7f774d Binary files /dev/null and b/assets/tutorial/screen.detail@3x.png differ diff --git a/assets/tutorial/screen.forum.png b/assets/tutorial/screen.forum.png new file mode 100644 index 0000000000..2f63ac91fc Binary files /dev/null and b/assets/tutorial/screen.forum.png differ diff --git a/assets/tutorial/screen.forum@2x.png b/assets/tutorial/screen.forum@2x.png new file mode 100644 index 0000000000..56a46b2ed7 Binary files /dev/null and b/assets/tutorial/screen.forum@2x.png differ diff --git a/assets/tutorial/screen.forum@3x.png b/assets/tutorial/screen.forum@3x.png new file mode 100644 index 0000000000..ec1a5e4372 Binary files /dev/null and b/assets/tutorial/screen.forum@3x.png differ diff --git a/assets/tutorial/screen.list.png b/assets/tutorial/screen.list.png new file mode 100644 index 0000000000..50a1ff9e55 Binary files /dev/null and b/assets/tutorial/screen.list.png differ diff --git a/assets/tutorial/screen.list@2x.png b/assets/tutorial/screen.list@2x.png new file mode 100644 index 0000000000..94921bc27f Binary files /dev/null and b/assets/tutorial/screen.list@2x.png differ diff --git a/assets/tutorial/screen.list@3x.png b/assets/tutorial/screen.list@3x.png new file mode 100644 index 0000000000..e08cb78055 Binary files /dev/null and b/assets/tutorial/screen.list@3x.png differ diff --git a/assets/tutorial/screen.vote.png b/assets/tutorial/screen.vote.png new file mode 100644 index 0000000000..7e1db8eb47 Binary files /dev/null and b/assets/tutorial/screen.vote.png differ diff --git a/assets/tutorial/screen.vote@2x.png b/assets/tutorial/screen.vote@2x.png new file mode 100644 index 0000000000..4ff2890d22 Binary files /dev/null and b/assets/tutorial/screen.vote@2x.png differ diff --git a/assets/tutorial/screen.vote@3x.png b/assets/tutorial/screen.vote@3x.png new file mode 100644 index 0000000000..7f623d9e8b Binary files /dev/null and b/assets/tutorial/screen.vote@3x.png differ diff --git a/index.js b/index.js index f2ecd8f49d..1afacc29d1 100644 --- a/index.js +++ b/index.js @@ -75,7 +75,10 @@ class App { navBarHidden: true } }, - animationType: "fade" + animationType: "fade", + appStyle: { + orientation: "portrait" + } }); } }; diff --git a/ios/democracyclient.xcodeproj/project.pbxproj b/ios/democracyclient.xcodeproj/project.pbxproj index ccee779c74..c719a65ed8 100644 --- a/ios/democracyclient.xcodeproj/project.pbxproj +++ b/ios/democracyclient.xcodeproj/project.pbxproj @@ -37,6 +37,7 @@ 2DCD954D1E0B4F2C00145EB5 /* democracyclientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* democracyclientTests.m */; }; 3A19523E434F4E52B98E0F7D /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8F9A22D8C210442B92209F31 /* MaterialIcons.ttf */; }; 5716EA5275274560903EEA9C /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C90ED33945EE46ED93CE4270 /* Foundation.ttf */; }; + 5B3A3653AC514347891E19D1 /* libBVLinearGradient.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E60EEBD31A544D8B801D6D1 /* libBVLinearGradient.a */; }; 5D5FAC8BCE4640DD919C0C9F /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B606CDA763364008B1925002 /* FontAwesome.ttf */; }; 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; 7F937BA07FF747BA8AFDC450 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4405FC48A78C474EA507571D /* SimpleLineIcons.ttf */; }; @@ -363,6 +364,20 @@ remoteGlobalIDString = EB2648DF1C7BE17A00B8F155; remoteInfo = ReactNativeConfig; }; + C3A76DBE204EE9A2008D1C29 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D248333CC3664928A505C5AB /* BVLinearGradient.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 134814201AA4EA6300B7C361; + remoteInfo = BVLinearGradient; + }; + C3A76DC0204EE9A2008D1C29 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D248333CC3664928A505C5AB /* BVLinearGradient.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 64AA15081EF7F30100718508; + remoteInfo = "BVLinearGradient-tvOS"; + }; C3EBC73F204547DB0040ED81 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 3E46D3BDC3654F5FAB77111C /* RNVectorIcons.xcodeproj */; @@ -419,6 +434,7 @@ 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; 8F9A22D8C210442B92209F31 /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; 9BFE3F2879F84086BF621EEB /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; + 9E60EEBD31A544D8B801D6D1 /* libBVLinearGradient.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libBVLinearGradient.a; sourceTree = ""; }; ADB1777930654CFFB3852474 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; }; ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = ""; }; B2D6DF01BA014AF1A090AC45 /* libRNDeviceInfo.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNDeviceInfo.a; sourceTree = ""; }; @@ -439,6 +455,7 @@ C90ED33945EE46ED93CE4270 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; CF1A551E9AD54473AE890083 /* RNDeviceInfo.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNDeviceInfo.xcodeproj; path = "../node_modules/react-native-device-info/RNDeviceInfo.xcodeproj"; sourceTree = ""; }; D146E1606C054E768BAFE9F5 /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = ""; }; + D248333CC3664928A505C5AB /* BVLinearGradient.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = BVLinearGradient.xcodeproj; path = "../node_modules/react-native-linear-gradient/BVLinearGradient.xcodeproj"; sourceTree = ""; }; D879F3E7359A4C6C82AE7CFC /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; }; E08B1CA484314178A9A5F917 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; }; E4CF3D41D8A04C95A7AAC65D /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; }; @@ -474,6 +491,7 @@ 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, BFBF28EFC41F43D1BD244700 /* libReactNativeConfig.a in Frameworks */, ADFA4473E79A4134B0A72B42 /* libRNDeviceInfo.a in Frameworks */, + 5B3A3653AC514347891E19D1 /* libBVLinearGradient.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -681,6 +699,7 @@ 03885401ECF640B08F42ACDE /* ReactNativeConfig.xcodeproj */, 3E46D3BDC3654F5FAB77111C /* RNVectorIcons.xcodeproj */, CF1A551E9AD54473AE890083 /* RNDeviceInfo.xcodeproj */, + D248333CC3664928A505C5AB /* BVLinearGradient.xcodeproj */, ); name = Libraries; sourceTree = ""; @@ -765,6 +784,15 @@ path = "../node_modules/react-native-vector-icons/Fonts"; sourceTree = ""; }; + C3A76DBA204EE9A2008D1C29 /* Products */ = { + isa = PBXGroup; + children = ( + C3A76DBF204EE9A2008D1C29 /* libBVLinearGradient.a */, + C3A76DC1204EE9A2008D1C29 /* libBVLinearGradient.a */, + ); + name = Products; + sourceTree = ""; + }; C3DD6C9C2019F87A009C3EB8 /* Recovered References */ = { isa = PBXGroup; children = ( @@ -772,6 +800,7 @@ BE21168EDFFA4F90B10BEC29 /* libReactNativeConfig.a */, B2D6DF01BA014AF1A090AC45 /* libRNDeviceInfo.a */, 77CD98C5685F4A6FB80A4A47 /* libRNDeviceInfo-tvOS.a */, + 9E60EEBD31A544D8B801D6D1 /* libBVLinearGradient.a */, ); name = "Recovered References"; sourceTree = ""; @@ -911,6 +940,10 @@ productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; projectDirPath = ""; projectReferences = ( + { + ProductGroup = C3A76DBA204EE9A2008D1C29 /* Products */; + ProjectRef = D248333CC3664928A505C5AB /* BVLinearGradient.xcodeproj */; + }, { ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; @@ -1260,6 +1293,20 @@ remoteRef = C35A58552032E3E80068C84F /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + C3A76DBF204EE9A2008D1C29 /* libBVLinearGradient.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libBVLinearGradient.a; + remoteRef = C3A76DBE204EE9A2008D1C29 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + C3A76DC1204EE9A2008D1C29 /* libBVLinearGradient.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libBVLinearGradient.a; + remoteRef = C3A76DC0204EE9A2008D1C29 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; C3EBC740204547DB0040ED81 /* libRNVectorIcons.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; @@ -1446,6 +1493,7 @@ "$(SRCROOT)/../node_modules/react-native-config/ios/ReactNativeConfig", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", "$(SRCROOT)/../node_modules/react-native-device-info/RNDeviceInfo", + "$(SRCROOT)..\node_modules\neact-native-linear-gradientBVLinearGradient", ); INFOPLIST_FILE = democracyclientTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; @@ -1456,6 +1504,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1478,6 +1527,7 @@ "$(SRCROOT)/../node_modules/react-native-config/ios/ReactNativeConfig", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", "$(SRCROOT)/../node_modules/react-native-device-info/RNDeviceInfo", + "$(SRCROOT)..\node_modules\neact-native-linear-gradientBVLinearGradient", ); INFOPLIST_FILE = democracyclientTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; @@ -1488,6 +1538,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1514,6 +1565,7 @@ "$(SRCROOT)/../node_modules/react-native-config/ios/ReactNativeConfig", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", "$(SRCROOT)/../node_modules/react-native-device-info/RNDeviceInfo", + "$(SRCROOT)..\node_modules\neact-native-linear-gradientBVLinearGradient", ); INFOPLIST_FILE = democracyclient/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1546,6 +1598,7 @@ "$(SRCROOT)/../node_modules/react-native-config/ios/ReactNativeConfig", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", "$(SRCROOT)/../node_modules/react-native-device-info/RNDeviceInfo", + "$(SRCROOT)..\node_modules\neact-native-linear-gradientBVLinearGradient", ); INFOPLIST_FILE = democracyclient/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1581,6 +1634,7 @@ "$(SRCROOT)/../node_modules/react-native-config/ios/ReactNativeConfig", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", "$(SRCROOT)/../node_modules/react-native-device-info/RNDeviceInfo", + "$(SRCROOT)..\node_modules\neact-native-linear-gradientBVLinearGradient", ); INFOPLIST_FILE = "democracyclient-tvOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1590,6 +1644,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1621,6 +1676,7 @@ "$(SRCROOT)/../node_modules/react-native-config/ios/ReactNativeConfig", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", "$(SRCROOT)/../node_modules/react-native-device-info/RNDeviceInfo", + "$(SRCROOT)..\node_modules\neact-native-linear-gradientBVLinearGradient", ); INFOPLIST_FILE = "democracyclient-tvOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1630,6 +1686,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1662,6 +1719,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.democracyclient-tvOSTests"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1690,6 +1748,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.democracyclient-tvOSTests"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/ios/democracyclient/Info.plist b/ios/democracyclient/Info.plist index fd394b4b9e..dd1b8d58b0 100644 --- a/ios/democracyclient/Info.plist +++ b/ios/democracyclient/Info.plist @@ -38,7 +38,7 @@ NSLocationWhenInUseUsageDescription - + UIAppFonts Ionicons.ttf diff --git a/package.json b/package.json index da19852d04..75c78485f9 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "react-native": "0.53.3", "react-native-config": "^0.11.5", "react-native-device-info": "^0.17.1", + "react-native-linear-gradient": "^2.4.0", "react-native-navigation": "^1.1.389", "react-native-swiper": "^1.5.13", "react-native-vector-icons": "^4.5.0", diff --git a/src/screens/Instructions/Slide.js b/src/screens/Instructions/Slide.js index 53cf7c1d57..acf8826861 100644 --- a/src/screens/Instructions/Slide.js +++ b/src/screens/Instructions/Slide.js @@ -1,33 +1,147 @@ import React from "react"; import PropTypes from "prop-types"; import styled from "styled-components/native"; +import { Dimensions, Platform, Image } from "react-native"; +import LinearGradient from "react-native-linear-gradient"; +import DeviceInfo from "react-native-device-info"; + const Container = styled.View` flex: 1; - justify-content: center; align-items: center; - background: ${({ background }) => background}; + background: #fff; + padding-top: ${() => { + if (DeviceInfo.getModel() === "iPhone X") { + return 36; + } + return Platform.OS === "ios" ? 21 : 5; + }}; + padding-horizontal: 18; `; -const Text = styled.Text` - color: #fff; - font-size: 30; +const ContainerHead = styled.View``; + +const ContainerText = styled.View` + align-items: center; + z-index: 100; +`; + +const TextHead = styled.Text` + color: #000; + font-size: 22; + letter-spacing: -0.1; + padding-top: 5; + font-family: ${Platform.OS === "ios" + ? "HelveticaNeue-Thin" + : "sans-serif-light"}; font-weight: bold; `; -const Slide = ({ background, text }) => ( - - {text} +const TextSub = styled.Text` + color: #9b9b9b; + font-size: 15; + letter-spacing: -0.4; + padding-top: 1; + font-family: ${Platform.OS === "ios" + ? "HelveticaNeue-Thin" + : "sans-serif-light"}; + font-weight: bold; + text-align: center; +`; + +const ContainerImages = styled.View` + flex: 1; + width: 100%; + max-width: 600; + justify-content: center; + align-items: center; + min-height: 518; +`; + +const ContainerCenterImage = styled.View` + position: absolute; +`; + +const ImageTranspContainer = styled.View` + position: absolute; + background-color: #fff; + border-radius: 40; +`; + +const ImageLeft = styled.Image` + opacity: 0.4; + margin-top: 50; +`; + +const ImageRight = styled.Image` + opacity: 0.4; + margin-top: 50; +`; + +const ImageCenter = styled.Image``; + +const ImageCircle = styled.Image` + position: absolute; + right: -20; + top: 165; +`; + +const Slide = ({ + ImgHead, + ImgRight, + ImgLeft, + ImgCenter, + ImgCircle, + TxtHead, + TxtSub +}) => ( + + + + + + {TxtHead} + {TxtSub} + + + + + + + + + + + + + + ); Slide.propTypes = { - background: PropTypes.string, - text: PropTypes.string.isRequired + ImgHead: PropTypes.number.isRequired, + ImgLeft: PropTypes.number, + ImgRight: PropTypes.number, + ImgCenter: PropTypes.number.isRequired, + ImgCircle: PropTypes.number, + TxtHead: PropTypes.string.isRequired, + TxtSub: PropTypes.string.isRequired }; Slide.defaultProps = { - background: "" + ImgLeft: null, + ImgRight: null, + ImgCircle: require("../../../assets/tutorial/icon.touch.png") }; export default Slide; diff --git a/src/screens/Instructions/index.js b/src/screens/Instructions/index.js index 66f4f50ed1..7053deade1 100644 --- a/src/screens/Instructions/index.js +++ b/src/screens/Instructions/index.js @@ -13,12 +13,24 @@ import SET_INSTRUCTIONS_SHOWN from "../../graphql/mutations/setInstructinosShown const Container = styled.View` flex: 1; + background-color: #fff; `; -const Button = styled.Button``; +const Button = styled.TouchableOpacity` + background-color: #fcfcfc; + height: 60; + justify-content: center; +`; + +const ButtonText = styled.Text` + text-align: center; + color: #0076ff; + font-size: 20; + line-height: 24; +`; const BUTTON_TEXTS = { - next: "Weiter >", + next: "Weiter", finish: "Los gehts!" }; @@ -61,16 +73,74 @@ class Introductions extends Component { }} loop={false} onMomentumScrollEnd={this.onMomentumScrollEnd} + paginationStyle={{ + bottom: 0 + }} + dotStyle={{ + width: 5, + height: 5, + backgroundColor: "#4494d3", + opacity: 0.5, + marginTop: 12 + }} + activeDotStyle={{ + width: 5, + height: 5, + backgroundColor: "#4494d3", + marginTop: 12 + }} > - - - + + + + + + - ); } diff --git a/src/screens/SideMenu/index.js b/src/screens/SideMenu/index.js index 236c730523..58a849b50c 100644 --- a/src/screens/SideMenu/index.js +++ b/src/screens/SideMenu/index.js @@ -29,7 +29,7 @@ const BackgroundWrapper = styled.View` const BackgroundImage = styled.Image.attrs({ source: require("../../../assets/images/stars2.png") -})` +}) ` resize-mode: ${Platform.OS === "ios" ? "repeat" : "stretch"}; width: 100%; height: 100%; @@ -48,7 +48,7 @@ const Head = styled.View` const HeadLogo = styled.Image.attrs({ source: require("../../../assets/images/logo-sidemenu.png") -})``; +}) ``; const HeadTextWrapper = styled.View` justify-content: center; @@ -66,7 +66,7 @@ const SideMenu = ({ data: { currentScreen }, navigator }) => { if (screenId === "democracy.Instructions") { navigator.showModal({ screen: screenId, - navigatorStyle: { navBarHidden: true } + navigatorStyle: { navBarHidden: true, orientation: "portrait" } }); } else { navigator.handleDeepLink({ link: screenId, payload: { title } }); diff --git a/yarn.lock b/yarn.lock index 6fedca8f8e..53a7c250fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6060,6 +6060,12 @@ react-native-device-info@^0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/react-native-device-info/-/react-native-device-info-0.17.1.tgz#a34835d33d4d26605ff6d311e50b667d8fc9421d" +react-native-linear-gradient@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/react-native-linear-gradient/-/react-native-linear-gradient-2.4.0.tgz#51d8ea12bb72a59bede9edc87b694b16b64cf435" + dependencies: + prop-types "^15.5.10" + react-native-navigation@^1.1.389: version "1.1.389" resolved "https://registry.yarnpkg.com/react-native-navigation/-/react-native-navigation-1.1.389.tgz#73585c72ac3eeaff76360e19c1bb3cf77b8c1b91"