diff --git a/README.md b/README.md
index 0343f01..fb0d8e0 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# UpSnap Mobile
+# Jumpstart - Client for UpSnap
A React Native Expo app that connects to an UpSnap server and provides mobile access to all Wake-on-LAN features.
diff --git a/app.json b/app.json
index 34426dd..e8d4812 100644
--- a/app.json
+++ b/app.json
@@ -1,6 +1,6 @@
{
"expo": {
- "name": "Remote WoL",
+ "name": "Jumpstart",
"slug": "remote-wol",
"version": "1.0.0",
"orientation": "portrait",
diff --git a/app/(tabs)/settings.tsx b/app/(tabs)/settings.tsx
index 7434fae..a6ae4f8 100644
--- a/app/(tabs)/settings.tsx
+++ b/app/(tabs)/settings.tsx
@@ -1,250 +1,231 @@
-import React from "react";
+import React from 'react';
import {
- Alert,
- ScrollView,
- StyleSheet,
- Text,
- TouchableOpacity,
- View,
-} from "react-native";
-import { useColorScheme } from "../../hooks/use-color-scheme";
-import { useAuth } from "../../src/context/AuthContext";
-import { useRouter } from "expo-router";
+ Alert,
+ ScrollView,
+ StyleSheet,
+ Text,
+ TouchableOpacity,
+ View,
+} from 'react-native';
+import { useColorScheme } from '../../hooks/use-color-scheme';
+import { useAuth } from '../../src/context/AuthContext';
+import { useRouter } from 'expo-router';
+import Constants from 'expo-constants';
export default function SettingsScreen() {
- const { user, serverAddress, logout } = useAuth();
- const router = useRouter();
- const colorScheme = useColorScheme() ?? "light";
- const isDark = colorScheme === "dark";
- const bgColor = isDark ? "#0b0b0d" : "#f5f5f5";
- const sectionBg = isDark ? "#1c1c1e" : "#fff";
- const sectionTitleBg = isDark ? "#111111" : "#f9f9f9";
- const textColor = isDark ? "#fff" : "#333";
- const subTextColor = isDark ? "#c6c6c8" : "#666";
- const primary = isDark ? "#0A84FF" : "#007AFF";
- const destructiveColor = "#f44336";
+ const { user, serverAddress, logout } = useAuth();
+ const router = useRouter();
+ const colorScheme = useColorScheme() ?? 'light';
+ const isDark = colorScheme === 'dark';
+ const bgColor = isDark ? '#0b0b0d' : '#f5f5f5';
+ const sectionBg = isDark ? '#1c1c1e' : '#fff';
+ const sectionTitleBg = isDark ? '#111111' : '#f9f9f9';
+ const textColor = isDark ? '#fff' : '#333';
+ const subTextColor = isDark ? '#c6c6c8' : '#666';
+ const primary = isDark ? '#0A84FF' : '#007AFF';
+ const destructiveColor = '#f44336';
- const handleLogout = () => {
- Alert.alert("Logout", "Are you sure you want to logout?", [
- { text: "Cancel", style: "cancel" },
- {
- text: "Logout",
- style: "destructive",
- onPress: async () => {
- router.replace("/login");
- await logout();
- },
- },
- ]);
- };
+ const handleLogout = () => {
+ Alert.alert('Logout', 'Are you sure you want to logout?', [
+ { text: 'Cancel', style: 'cancel' },
+ {
+ text: 'Logout',
+ style: 'destructive',
+ onPress: async () => {
+ router.replace('/login');
+ await logout();
+ },
+ },
+ ]);
+ };
- const SettingItem = ({
- label,
- value,
- onPress,
- }: {
- label: string;
- value?: string;
- onPress?: () => void;
- }) => (
-
- {label}
-
-
- {value}
-
-
-
- );
+ const SettingItem = ({
+ label,
+ value,
+ onPress,
+ }: {
+ label: string;
+ value?: string;
+ onPress?: () => void;
+ }) => (
+
+ {label}
+
+
+ {value}
+
+
+
+ );
- const ActionButton = ({
- title,
- onPress,
- destructive = false,
- }: {
- title: string;
- onPress: () => void;
- destructive?: boolean;
- }) => (
-
- {title}
-
- );
+ const ActionButton = ({
+ title,
+ onPress,
+ destructive = false,
+ }: {
+ title: string;
+ onPress: () => void;
+ destructive?: boolean;
+ }) => (
+
+ {title}
+
+ );
- return (
-
-
-
-
- User Information
-
-
-
-
-
+ return (
+
+
+
+
+ Information
+
+
+
+
+
+
-
-
- App Info
-
-
-
-
+
+
+ Actions
+
+
+
-
-
- Actions
-
-
-
-
-
-
- UpSnap Mobile App
-
-
- Connect to your UpSnap server
-
-
-
-
- );
+
+
+ UpSnap Mobile App
+
+
+ Connect to your UpSnap server
+
+
+
+
+ );
}
const styles = StyleSheet.create({
- container: {
- flex: 1,
- backgroundColor: "#f5f5f5",
- },
- content: {
- padding: 20,
- },
- section: {
- backgroundColor: "#fff",
- borderRadius: 12,
- marginBottom: 20,
- overflow: "hidden",
- shadowColor: "#000",
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.1,
- shadowRadius: 4,
- elevation: 3,
- },
- sectionTitle: {
- fontSize: 14,
- fontWeight: "bold",
- color: "#666",
- paddingHorizontal: 15,
- paddingTop: 15,
- paddingBottom: 10,
- backgroundColor: "#f9f9f9",
- borderTopLeftRadius: 12,
- borderTopRightRadius: 12,
- },
- settingItem: {
- flexDirection: "row",
- justifyContent: "space-between",
- alignItems: "center",
- paddingHorizontal: 15,
- paddingVertical: 15,
- borderBottomWidth: 1,
- borderBottomColor: "#f0f0f0",
- },
- settingLabel: {
- fontSize: 16,
- color: "#333",
- flex: 1,
- },
- settingValueContainer: {
- flex: 1,
- alignItems: "flex-end",
- },
- settingValue: {
- fontSize: 14,
- color: "#666",
- maxWidth: 200,
- },
- actionButton: {
- backgroundColor: "#007AFF",
- margin: 15,
- padding: 15,
- borderRadius: 8,
- alignItems: "center",
- },
- actionButtonDestructive: {
- backgroundColor: "#f44336",
- },
- actionButtonText: {
- color: "#fff",
- fontSize: 16,
- fontWeight: "bold",
- },
- actionButtonTextDestructive: {
- color: "#fff",
- },
- footer: {
- alignItems: "center",
- paddingVertical: 30,
- },
- footerText: {
- fontSize: 14,
- color: "#999",
- marginBottom: 5,
- },
+ container: {
+ flex: 1,
+ backgroundColor: '#f5f5f5',
+ },
+ content: {
+ padding: 20,
+ },
+ section: {
+ backgroundColor: '#fff',
+ borderRadius: 12,
+ marginBottom: 20,
+ overflow: 'hidden',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 4,
+ elevation: 3,
+ },
+ sectionTitle: {
+ fontSize: 14,
+ fontWeight: 'bold',
+ color: '#666',
+ paddingHorizontal: 15,
+ paddingTop: 15,
+ paddingBottom: 10,
+ backgroundColor: '#f9f9f9',
+ borderTopLeftRadius: 12,
+ borderTopRightRadius: 12,
+ },
+ settingItem: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ paddingHorizontal: 15,
+ paddingVertical: 15,
+ borderBottomWidth: 1,
+ borderBottomColor: '#f0f0f0',
+ },
+ settingLabel: {
+ fontSize: 16,
+ color: '#333',
+ flex: 1,
+ },
+ settingValueContainer: {
+ flex: 1,
+ alignItems: 'flex-end',
+ },
+ settingValue: {
+ fontSize: 14,
+ color: '#666',
+ maxWidth: 200,
+ },
+ actionButton: {
+ backgroundColor: '#007AFF',
+ margin: 15,
+ padding: 15,
+ borderRadius: 8,
+ alignItems: 'center',
+ },
+ actionButtonDestructive: {
+ backgroundColor: '#f44336',
+ },
+ actionButtonText: {
+ color: '#fff',
+ fontSize: 16,
+ fontWeight: 'bold',
+ },
+ actionButtonTextDestructive: {
+ color: '#fff',
+ },
+ footer: {
+ alignItems: 'center',
+ paddingVertical: 30,
+ },
+ footerText: {
+ fontSize: 14,
+ color: '#999',
+ marginBottom: 5,
+ },
});
diff --git a/app/login.tsx b/app/login.tsx
index 1cdda6f..ea0febd 100644
--- a/app/login.tsx
+++ b/app/login.tsx
@@ -55,7 +55,7 @@ export default function LoginScreen() {
>
- Remote WoL
+ Jumpstart
Mobile Frontend for UpSnap
diff --git a/assets/remotewol-ios.icon/Assets/Image.png b/assets/remotewol-ios.icon/Assets/Image.png
new file mode 100644
index 0000000..391371e
Binary files /dev/null and b/assets/remotewol-ios.icon/Assets/Image.png differ
diff --git a/assets/remotewol-ios.icon/Assets/display 2.png b/assets/remotewol-ios.icon/Assets/display 2.png
new file mode 100644
index 0000000..8783a71
Binary files /dev/null and b/assets/remotewol-ios.icon/Assets/display 2.png differ
diff --git a/assets/remotewol-ios.icon/Assets/display 3.png b/assets/remotewol-ios.icon/Assets/display 3.png
new file mode 100644
index 0000000..210fbd3
Binary files /dev/null and b/assets/remotewol-ios.icon/Assets/display 3.png differ
diff --git a/assets/remotewol-ios.icon/Assets/display.png b/assets/remotewol-ios.icon/Assets/display.png
new file mode 100644
index 0000000..5c2a731
Binary files /dev/null and b/assets/remotewol-ios.icon/Assets/display.png differ
diff --git a/assets/remotewol-ios.icon/Assets/gopher.svg b/assets/remotewol-ios.icon/Assets/gopher.svg
deleted file mode 100644
index ce565eb..0000000
--- a/assets/remotewol-ios.icon/Assets/gopher.svg
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
diff --git a/assets/remotewol-ios.icon/icon.json b/assets/remotewol-ios.icon/icon.json
index 861340b..ebdf087 100644
--- a/assets/remotewol-ios.icon/icon.json
+++ b/assets/remotewol-ios.icon/icon.json
@@ -1,19 +1,48 @@
{
"fill" : {
- "automatic-gradient" : "extended-srgb:0.00000,0.53333,1.00000,1.00000"
+ "automatic-gradient" : "extended-gray:1.00000,1.00000"
},
"groups" : [
{
"layers" : [
{
- "glass" : true,
- "image-name" : "gopher.svg",
- "name" : "gopher",
+ "hidden" : false,
+ "image-name" : "Image.png",
+ "name" : "Image",
"position" : {
- "scale" : 0.45,
+ "scale" : 0.65,
"translation-in-points" : [
- -6.017952794793246,
- -0.4600234584925147
+ 0,
+ -52.942187500000045
+ ]
+ }
+ },
+ {
+ "fill-specializations" : [
+ {
+ "appearance" : "dark",
+ "value" : "none"
+ }
+ ],
+ "image-name-specializations" : [
+ {
+ "value" : "display 2.png"
+ },
+ {
+ "appearance" : "dark",
+ "value" : "display.png"
+ },
+ {
+ "appearance" : "tinted",
+ "value" : "display 3.png"
+ }
+ ],
+ "name" : "display 3",
+ "position" : {
+ "scale" : 1.25,
+ "translation-in-points" : [
+ 0,
+ -10.625
]
}
}