import React from "react" import { View, ScrollView, StyleSheet, StatusBar, Text, SafeAreaView, Dimensions, Image, Alert, BackHandler, AsyncStorage } from "react-native" import { AdMobBanner } from "expo-ads-admob" import { Button, ButtonContainer } from "../components/Button" import { colors, texts, credentials } from "../components/Variables" import { examQuestions } from "../components/ExamQuestions" import { trueFalseQuestions } from "../components/TrueFalseQuestions" const screen = Dimensions.get("window") const header = require("../assets/header.png") const pkg = require('../../app.json') const maxTime = 0 // 10 let interval = null const styles = StyleSheet.create({ container: { backgroundColor: colors.dark_blue, flex: 1 }, bannerContainer: { backgroundColor: colors.dark_blue, flex: 1, alignItems: "center", justifyContent: "center" }, bannerExpanded: { backgroundColor: colors.dark_blue, height: screen.height-230 }, bannerCollapsed: { backgroundColor: colors.dark_blue, height: 300 }, banner: { width: 300, height: 250, marginVertical: 20 }, title: { color: colors.white, fontSize: 25, textAlign: "center", fontWeight: "600", paddingVertical: 20 }, text: { color: colors.white, fontSize: 20, textAlign: "center", fontWeight: "400", paddingVertical: 20, marginTop: 20, }, textLabel: { paddingHorizontal: 20, paddingVertical: 20 }, timer: { color: colors.white, fontSize: 30, textAlign: "center", fontWeight: "600", paddingVertical: 20, marginBottom: 20, }, safearea: { flex: 1, marginTop: 0, justifyContent: "space-between", paddingHorizontal: 20 }, headerContainer: { marginTop: 0, alignItems: "center", justifyContent: "center", width: "100%", height: 200 }, header: { width: "100%" } }) class Splash extends React.Component { state = { bannerExpanded: true, timer: maxTime, storeWrongAnswers: this.props.navigation.getParam("storeWrongAnswers", []) || [] } bannerError = (e) => { //console.log("Banner error: ", e) } componentDidMount() { BackHandler.addEventListener('hardwareBackPress', this.handleBackButton) AsyncStorage.getItem('storeWrongAnswers').then( (value) => { if(!value) { AsyncStorage.setItem('storeWrongAnswers', JSON.stringify([])) } this.setState( (state) => { return { storeWrongAnswers: value ? JSON.parse(value) : [] } }) }).done() } componentWillUnmount() { BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton) } handleBackButton = () => { Alert.alert( texts.exit, texts.exitQuestion, [ {text: 'No', onPress: () => console.log('Cancel Pressed'), style: 'cancel'}, {text: 'Si', onPress: () => BackHandler.exitApp()}, ], { cancelable: false } ) return true } render() { const storeWrongAnswers = this.props.navigation.getParam("storeWrongAnswers") || this.state.storeWrongAnswers //console.log(storeWrongAnswers.length) if(this.state.timer==maxTime) { interval = setInterval( () => { this.setState( (state) => { return { timer: this.state.timer-1, } }) }, 1000) } if(this.state.timer < 1) { clearInterval(interval) setTimeout( () => { this.setState( (state) => { return { bannerExpanded: false } }) }, 500) } return ( {`${texts.version}: ${pkg.expo.version}`}