diff --git a/android/app/build.gradle b/android/app/build.gradle index 512324e8..fd088e77 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -79,7 +79,7 @@ android { applicationId "com.zooniversemobile" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 76 + versionCode 78 versionName "2.11.0" } signingConfigs { diff --git a/ios/ZooniverseMobile.xcodeproj/project.pbxproj b/ios/ZooniverseMobile.xcodeproj/project.pbxproj index b2b62f07..578cea3c 100644 --- a/ios/ZooniverseMobile.xcodeproj/project.pbxproj +++ b/ios/ZooniverseMobile.xcodeproj/project.pbxproj @@ -15,7 +15,11 @@ 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 2E064546FB3D4C388D642441 /* Karla-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 63CDDC79B999473B86AF6A88 /* Karla-Bold.ttf */; }; + 53D06EFAEA794E028A306B97 /* Karla-Italic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = EB37AAC8B6F44EFAA6324B6E /* Karla-Italic.ttf */; }; + 787318D492A44A599F5509FB /* Karla-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 596C160120BC4BDF95A7978D /* Karla-Regular.ttf */; }; 9CAED0F1495FF0274C4D2F25 /* Pods_ZooniverseMobile_ZooniverseMobileTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE35456BDD45379EC2E82793 /* Pods_ZooniverseMobile_ZooniverseMobileTests.framework */; }; + BEBC6121A9944191B71262AC /* Karla-BoldItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0C8E9F986AFD4C80BFEFC636 /* Karla-BoldItalic.ttf */; }; D019609D0BCA1FB56D290CA7 /* Pods_ZooniverseMobile.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E66FA795E38004D47C4D78D /* Pods_ZooniverseMobile.framework */; }; /* End PBXBuildFile section */ @@ -64,6 +68,7 @@ 09D54E9F2AAF2663008D50C3 /* Entypo.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; 09D54EA02AAF2663008D50C3 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; }; 09FEDAC32AEFCA2F005F8BC6 /* ZooniverseMobile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = ZooniverseMobile.entitlements; path = ZooniverseMobile/ZooniverseMobile.entitlements; sourceTree = ""; }; + 0C8E9F986AFD4C80BFEFC636 /* Karla-BoldItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Karla-BoldItalic.ttf"; path = "../assets/fonts/Karla-BoldItalic.ttf"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* ZooniverseMobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ZooniverseMobile.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = ZooniverseMobile/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = ZooniverseMobile/AppDelegate.mm; sourceTree = ""; }; @@ -73,8 +78,11 @@ 3B4392A12AC88292D35C810B /* Pods-ZooniverseMobile.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZooniverseMobile.debug.xcconfig"; path = "Target Support Files/Pods-ZooniverseMobile/Pods-ZooniverseMobile.debug.xcconfig"; sourceTree = ""; }; 3E66FA795E38004D47C4D78D /* Pods_ZooniverseMobile.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ZooniverseMobile.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5709B34CF0A7D63546082F79 /* Pods-ZooniverseMobile.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZooniverseMobile.release.xcconfig"; path = "Target Support Files/Pods-ZooniverseMobile/Pods-ZooniverseMobile.release.xcconfig"; sourceTree = ""; }; + 596C160120BC4BDF95A7978D /* Karla-Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Karla-Regular.ttf"; path = "../assets/fonts/Karla-Regular.ttf"; sourceTree = ""; }; 5B7EB9410499542E8C5724F5 /* Pods-ZooniverseMobile-ZooniverseMobileTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZooniverseMobile-ZooniverseMobileTests.debug.xcconfig"; path = "Target Support Files/Pods-ZooniverseMobile-ZooniverseMobileTests/Pods-ZooniverseMobile-ZooniverseMobileTests.debug.xcconfig"; sourceTree = ""; }; + 63CDDC79B999473B86AF6A88 /* Karla-Bold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Karla-Bold.ttf"; path = "../assets/fonts/Karla-Bold.ttf"; sourceTree = ""; }; 89C6BE57DB24E9ADA2F236DE /* Pods-ZooniverseMobile-ZooniverseMobileTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZooniverseMobile-ZooniverseMobileTests.release.xcconfig"; path = "Target Support Files/Pods-ZooniverseMobile-ZooniverseMobileTests/Pods-ZooniverseMobile-ZooniverseMobileTests.release.xcconfig"; sourceTree = ""; }; + EB37AAC8B6F44EFAA6324B6E /* Karla-Italic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Karla-Italic.ttf"; path = "../assets/fonts/Karla-Italic.ttf"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; FE35456BDD45379EC2E82793 /* Pods_ZooniverseMobile_ZooniverseMobileTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ZooniverseMobile_ZooniverseMobileTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -193,6 +201,7 @@ 83CBBA001A601CBA00E9B192 /* Products */, 2D16E6871FA4F8E400B85C8A /* Frameworks */, BBD78D7AC51CEA395F1C20DB /* Pods */, + 8DFA53389A4C4D21B3CC5F36 /* Resources */, ); indentWidth = 2; sourceTree = ""; @@ -208,6 +217,17 @@ name = Products; sourceTree = ""; }; + 8DFA53389A4C4D21B3CC5F36 /* Resources */ = { + isa = PBXGroup; + children = ( + 63CDDC79B999473B86AF6A88 /* Karla-Bold.ttf */, + 0C8E9F986AFD4C80BFEFC636 /* Karla-BoldItalic.ttf */, + EB37AAC8B6F44EFAA6324B6E /* Karla-Italic.ttf */, + 596C160120BC4BDF95A7978D /* Karla-Regular.ttf */, + ); + name = Resources; + sourceTree = ""; + }; BBD78D7AC51CEA395F1C20DB /* Pods */ = { isa = PBXGroup; children = ( @@ -319,6 +339,10 @@ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 09C7A2502AB06FC000D82D95 /* LaunchScreen.storyboard in Resources */, 0906CF2D2AF9018100BF7B56 /* GoogleService-Info-Debug.plist in Resources */, + 2E064546FB3D4C388D642441 /* Karla-Bold.ttf in Resources */, + BEBC6121A9944191B71262AC /* Karla-BoldItalic.ttf in Resources */, + 53D06EFAEA794E028A306B97 /* Karla-Italic.ttf in Resources */, + 787318D492A44A599F5509FB /* Karla-Regular.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -574,7 +598,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ZooniverseMobile/ZooniverseMobile.entitlements; - CURRENT_PROJECT_VERSION = 8; + CURRENT_PROJECT_VERSION = 10; DEVELOPMENT_TEAM = 888MXXMABP; ENABLE_BITCODE = NO; INFOPLIST_FILE = ZooniverseMobile/Info.plist; @@ -604,7 +628,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ZooniverseMobile/ZooniverseMobile.entitlements; - CURRENT_PROJECT_VERSION = 8; + CURRENT_PROJECT_VERSION = 10; DEVELOPMENT_TEAM = 888MXXMABP; INFOPLIST_FILE = ZooniverseMobile/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/ios/ZooniverseMobile/Info.plist b/ios/ZooniverseMobile/Info.plist index 666c2786..53b2d055 100644 --- a/ios/ZooniverseMobile/Info.plist +++ b/ios/ZooniverseMobile/Info.plist @@ -42,7 +42,7 @@ NSLocationWhenInUseUsageDescription - + NSPhotoLibraryUsageDescription Photo Library Access Warning UIAppFonts @@ -56,10 +56,6 @@ Entypo.ttf EvilIcons.ttf Feather.ttf - Karla-Bold.ttf - Karla-BoldItalic.ttf - Karla-Italic.ttf - Karla-Regular.ttf FontAwesome.ttf FontAwesome5_Brands.ttf FontAwesome5_Regular.ttf @@ -72,6 +68,10 @@ SimpleLineIcons.ttf Zocial.ttf Fontisto.ttf + Karla-Bold.ttf + Karla-BoldItalic.ttf + Karla-Italic.ttf + Karla-Regular.ttf UIBackgroundModes diff --git a/src/components/NotificationLandingPageScreen.js b/src/components/NotificationLandingPageScreen.js index 5ff9ceb1..029b8eb1 100644 --- a/src/components/NotificationLandingPageScreen.js +++ b/src/components/NotificationLandingPageScreen.js @@ -9,7 +9,6 @@ import { setNavbarSettingsForPage } from '../actions/navBar'; import PageKeys from '../constants/PageKeys'; import Notification from './notifications/Notification'; import OverlaySpinner from './OverlaySpinner'; -import { extractSwipeEnabledProjects } from '../utils/projectUtils'; function NotificationLandingPageScreen({ route }) { const dispatch = useDispatch(); @@ -21,14 +20,11 @@ function NotificationLandingPageScreen({ route }) { ); const checkedForProjects = useRef(false); // Used to ensure the setTimeout is only run once. - const filteredProjects = extractSwipeEnabledProjects( - projectList.filter( project => !project.isPreview && project.launch_approved ) - ); // Take the list of notifications and associate with a cooresponding project. const notificationsWithProject = []; notifications.forEach((notification) => { - const hasProject = filteredProjects.find((p) => p.id === notification.projectId); + const hasProject = projectList.find((p) => p.id === notification.projectId); if (hasProject) { notificationsWithProject.push({ ...notification, project: hasProject }); } @@ -47,7 +43,7 @@ function NotificationLandingPageScreen({ route }) { if (checkedForProjects.current) return; let projectTimeout; - if (filteredProjects.length === 0) { + if (projectList.length === 0) { setLoading(true); projectTimeout = setTimeout(() => { checkedForProjects.current = true; @@ -63,7 +59,7 @@ function NotificationLandingPageScreen({ route }) { } return () => clearTimeout(projectTimeout); - }, [filteredProjects]); + }, [projectList]); // Update the navigation header with the title and zoon icon. useEffect(() => { diff --git a/src/components/SideDrawerContent.js b/src/components/SideDrawerContent.js index 215003ec..f17a8256 100644 --- a/src/components/SideDrawerContent.js +++ b/src/components/SideDrawerContent.js @@ -3,6 +3,7 @@ import { Alert, Image, Linking, + ScrollView, TouchableOpacity, View } from 'react-native' @@ -13,7 +14,6 @@ import Fontisto from 'react-native-vector-icons/Fontisto' import LinearGradient from 'react-native-linear-gradient'; import DeviceInfo from 'react-native-device-info' import FontedText from './common/FontedText' -import Separator from './common/Separator' import { signOut } from '../actions/auth' import { connect } from 'react-redux' import PropTypes from 'prop-types'; @@ -108,68 +108,68 @@ export class SideDrawerContent extends Component { start={{ x: 0, y: 0 }} end={{ x: 1, y: 0 }} /> - + - - { this.props.isGuestUser ? + onPress={this.goHome} + text={'Home'} + /> + + { this.props.isGuestUser ? + + : null + } + - : null - } - - - - this.openLink('https://www.zooniverse.org/about/publications')} - text={'Publications'} - externalOpenIcon={true} - /> + onPress={this.goToAbout} + text={'About the Zooniverse'} + /> - + this.openLink('https://www.zooniverse.org/about/publications')} + text={'Publications'} + externalOpenIcon={true} + /> - + - + - this.openLink('https://www.zooniverse.org/privacy')} - text={'Privacy'} - externalOpenIcon={true} - /> + - + this.openLink('https://www.zooniverse.org/privacy')} + text={'Privacy'} + externalOpenIcon={true} + /> - + - this.openLink('https://www.zooniverse.org/about/contact')} - text={'Contact us'} - externalOpenIcon={true} - /> + - { this.props.isGuestUser ? null : this.openLink('https://www.zooniverse.org/about/contact')} + text={'Contact us'} + externalOpenIcon={true} /> - } + { this.props.isGuestUser ? null : + + } + ) } @@ -275,7 +275,7 @@ const styles = EStyleSheet.create({ justifyContent: 'space-between', }, logoStyle: { - width: 173.77, + width: '70%', height: 20, resizeMode: 'contain', }, diff --git a/src/components/settings/Settings.js b/src/components/settings/Settings.js index 405e31dc..d582b707 100644 --- a/src/components/settings/Settings.js +++ b/src/components/settings/Settings.js @@ -157,7 +157,6 @@ const styles = StyleSheet.create({ scrollViewContainer: { padding: 16, backgroundColor: '#fff', - flex: 1, }, });