import React from "react" import { View, ScrollView, StyleSheet, StatusBar, Text, Dimensions, Image, Alert, BackHandler } from "react-native" import AsyncStorage from '@react-native-async-storage/async-storage' import SafeAreaView from 'react-native-safe-area-view' import { Button, ButtonContainer } from "../components/Button" import { Banner } from "../components/Banner" 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 }, 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, }, 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: 20, alignItems: "center", justifyContent: "center", width: "100%", height: 150 }, header: { width: "100%" }, bannerContainer: { flex: 1, alignItems: "center", justifyContent: "center" } }) class Splash extends React.Component { state = { bannerExpanded: true, timer: maxTime, storeWrongAnswers: this.props.navigation.getParam("storeWrongAnswers", []) || [], setupData: {} } 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([])) } AsyncStorage.getItem('setupData').then((setup) => { if(!setup) { AsyncStorage.setItem('setupData', JSON.stringify({})) } this.setState( (state) => { return { storeWrongAnswers: value ? JSON.parse(value) : [], setupData: setup ? JSON.parse(setup) : {} } }) }) }) } 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 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 (