diff --git a/components/SetupView.js b/components/SetupView.js
new file mode 100644
index 0000000..c0f4c4d
--- /dev/null
+++ b/components/SetupView.js
@@ -0,0 +1,103 @@
+import React from "react";
+import {
+ StyleSheet,
+ View,
+ StatusBar,
+ ImageBackground,
+ Text,
+ TouchableOpacity,
+} from "react-native";
+import EntypoIcon from "react-native-vector-icons/Entypo";
+
+
+function AdditionalOptionsBottomBar(props) {
+ return (
+
+ { props.leftText ?
+
+ {props.leftText}
+ :
+ }
+ {props.rightText &&
+
+ {props.rightText}
+
+ }
+
+ );
+};
+
+const bottomBarStyles = StyleSheet.create({
+ container: {
+ flexDirection: "row",
+ justifyContent: "space-between",
+ paddingBottom: 30,
+ },
+ text: {
+ color: "rgba(255,255,255,0.5)",
+ }
+})
+
+// ---------------------------------------------------------------------------------------------
+
+
+function SetupView(props) {
+
+ return (
+
+
+
+
+
+
+ {props.backButton &&
+
+
+
+ }
+
+ {props.headerText}
+
+
+ {props.children}
+
+
+
+
+
+ );
+}
+
+const setupViewStyles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: "space-between",
+ width: "80%",
+ marginLeft: 40,
+ marginTop: 60,
+ },
+ headerText: {
+ color: "rgba(255,255,255,1)",
+ fontSize: 25,
+ },
+ subtext: {
+ color: "rgba(255,255,255,1)",
+ textAlign: "left",
+ fontSize: 18,
+ lineHeight: 25,
+ width: "80%",
+ },
+ backButton: {
+ color: "rgba(255,255,255,1)",
+ fontSize: 40
+ },
+});
+
+export default SetupView;
\ No newline at end of file
diff --git a/views/ConnectingView.js b/views/ConnectingView.js
new file mode 100644
index 0000000..88507e6
--- /dev/null
+++ b/views/ConnectingView.js
@@ -0,0 +1,37 @@
+import React from "react";
+import {
+ StyleSheet,
+ Text,
+ ActivityIndicator,
+} from "react-native";
+import SetupView from '../components/SetupView';
+
+
+function ConnectingView(props) {
+
+ return (
+
+
+
+ Please connect your phone to the WiFi of your SwimTracker
+
+
+
+ )
+}
+
+const styles = StyleSheet.create({
+ subtext: {
+ color: "rgba(255,255,255,1)",
+ textAlign: "left",
+ fontSize: 18,
+ lineHeight: 25,
+ width: "80%",
+ }
+});
+
+export default ConnectingView;
\ No newline at end of file
diff --git a/views/WifiPasswordView.js b/views/WifiPasswordView.js
new file mode 100644
index 0000000..30bbdaf
--- /dev/null
+++ b/views/WifiPasswordView.js
@@ -0,0 +1,135 @@
+import React from "react";
+import {
+ StyleSheet,
+ Text,
+ View,
+ TouchableOpacity,
+ TextInput,
+} from "react-native";
+import SetupView from '../components/SetupView';
+import EvilIcon from "react-native-vector-icons/EvilIcons";
+import MaterialIcon from "react-native-vector-icons/MaterialCommunityIcons";
+import themeColors from '../components/themeColors';
+
+
+function WifiPasswordView(props) {
+
+ let iconName = "wifi-strength-" + props.strength;
+ if (props.lock) {
+ iconName += "-lock";
+ }
+
+ return (
+
+
+ {props.subText}
+
+
+
+
+
+ {props.ssid}
+
+
+
+
+
+
+
+ {props.confirmPwInput &&
+ < View style={styles.row}>
+
+
+
+ }
+
+
+ {props.buttonText}
+
+
+
+
+
+ );
+}
+
+WifiPasswordView.defaultProps = {
+ lock: true,
+ strength: 2,
+ ssid: "TheWLANName",
+ confirmPwInput: false,
+ buttonText: "Set Password",
+ subText: "Please enter password for your home WiFi"
+}
+
+
+WifiPasswordView.defaultProps = {
+ lock: true,
+ strength: 3,
+ ssid: "swimtracker-E2842S",
+ subText: "Use this option only if you're home WiFi doesn't reach the SwimTracker. The SwimTracker creates its own WiFi with the password you set here.",
+ confirmPwInput: true,
+ buttonText: "Set Password",
+}
+
+
+const styles = StyleSheet.create({
+ subtext: {
+ color: "rgba(255,255,255,1)",
+ textAlign: "left",
+ fontSize: 18,
+ lineHeight: 25,
+ width: "80%",
+ },
+ formContainer: {
+ },
+ row: {
+ backgroundColor: "rgba(255,255,255,0.4)",
+ borderRadius: 5,
+ width: "100%",
+ height: 50,
+ flexDirection: "row",
+ alignItems: "center",
+ marginTop: 5,
+ marginBottom: 5,
+ },
+ ssidLabel: {
+ color: "rgba(255,255,255,1)",
+ fontSize: 18,
+ width: "100%"
+ },
+ button: {
+ marginTop: 20,
+ backgroundColor: themeColors["GREEN SEA"],
+ justifyContent: "center"
+ },
+ ssidIcon: {
+ fontSize: 25,
+ color: "rgba(255,255,255,1)",
+ marginLeft: 15,
+ marginRight: 15,
+ },
+ passwordInput: {
+ height: 30,
+ color: "rgba(255,255,255,1)",
+ width: "100%",
+ fontSize: 18,
+ }
+
+});
+
+
+export default WifiPasswordView;
\ No newline at end of file
diff --git a/views/WifiSelectionView.js b/views/WifiSelectionView.js
new file mode 100644
index 0000000..dd85469
--- /dev/null
+++ b/views/WifiSelectionView.js
@@ -0,0 +1,87 @@
+import React from "react";
+import {
+ StyleSheet,
+ Text,
+ View,
+ TouchableOpacity,
+ ScrollView,
+} from "react-native";
+import SetupView from '../components/SetupView';
+import MaterialIcon from "react-native-vector-icons/MaterialCommunityIcons";
+
+
+function WifiListElement(props) {
+ let iconName = "wifi-strength-" + props.strength;
+ if(props.lock) {
+ iconName += "-lock";
+ }
+
+ return (
+
+
+
+ {props.text}
+
+
+ )
+}
+const wifiListElementStyles = {
+ container: {
+ backgroundColor: "rgba(255,255,255,0.4)",
+ borderRadius: 5,
+ width: "100%",
+ height: 50,
+ flexDirection: "row",
+ alignItems: "center",
+ marginTop: 8,
+ marginBottom: 8,
+ },
+ icon: {
+ fontSize: 25,
+ color: "rgba(255,255,255,1)",
+ marginLeft: 15,
+ marginRight: 15,
+ },
+ text: {
+ color: "rgba(255,255,255,1)",
+ fontSize: 18,
+ width: "100%"
+ }
+};
+
+// ---------------------------------------------------------------------------------------------
+
+
+function WifiSelectionView(props) {
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+const styles = StyleSheet.create({
+ listContainer: {
+ height: "75%",
+ //backgroundColor: "red",
+ }
+});
+
+export default WifiSelectionView;
\ No newline at end of file