Mztj67_#M}W?l>kYSliK<%xAp;0j{!}J0!o7b
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
literal 0
HcmV?d00001
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..0467bf12aa4d28f374bb26596605a46dcbb3e7c8
GIT binary patch
literal 1418
zcmV;51$Fv~P)q
zKfU)WzW*n(@|xWGCA9ScMt*e9`2kdxPQ&&>|-UCa7_51w+
zLUsW@ZzZSW0y$)Hp~e9%PvP|a03ks1`~K?q{u;6NC8*{AOqIUq{CL&;p56Lf$oQGq
z^={4hPQv)y=I|4n+?>7Fim=dxt1
z2H+Dm+1+fh+IF>G0SjJMkQQre1x4|G*Z==(Ot&kCnUrL4I(rf(ucITwmuHf^hXiJT
zkdTm&kdTm&kdTm&kdP`esgWG0BcWCVkVZ&2dUwN`cgM8QJb`Z7Z~e<&Yj2(}>Tmf`
zm1{eLgw!b{bXkjWbF%dTkTZEJWyWOb##Lfw4EK2}<0d6%>AGS{po>WCOy&f$Tay_>
z?NBlkpo@s-O;0V%Y_Xa-G#_O08q5LR*~F%&)}{}r&L%Sbs8AS4t7Y0NEx*{soY=0MZExqA5XHQkqi#4gW3
zqODM^iyZl;dvf)-bOXtOru(s)Uc7~BFx{w-FK;2{`VA?(g&@3z&bfLFyctOH!cVsF
z7IL=fo-qBndRUm;kAdXR4e6>k-z|21AaN%ubeVrHl*<|s&Ax@W-t?LR(P-24A5=>a
z*R9#QvjzF8n%@1Nw@?CG@6(%>+-0ASK~jEmCV|&a*7-GKT72W<(TbSjf)&Eme6nGE
z>Gkj4Sq&2e+-G%|+NM8OOm5zVl9{Z8Dd8A5z3y8mZ=4Bv4%>as_{9cN#bm~;h>62(
zdqY93Zy}v&c4n($Vv!UybR8ocs7#zbfX1IY-*w~)p}XyZ-SFC~4w>BvMVr`dFbelV{lLL0bx7@*ZZdebr3`sP;?
zVImji)kG)(6Juv0lz@q`F!k1FE;CQ(D0iG$wchPbKZQELlsZ#~rt8#90Y_Xh&3U-<
z{s<&cCV_1`^TD^ia9!*mQDq&
zn2{r`j};V|uV%_wsP!zB?m%;FeaRe+X47K0e+KE!8C{gAWF8)lCd1u1%~|M!XNRvw
zvtqy3iz0WSpWdhn6$hP8PaRBmp)q`#PCA`Vd#Tc$@f1tAcM>f_I@bC)hkI9|o(Iqv
zo}Piadq!j76}004RBio<`)70k^`K1NK)q>w?p^C6J2ZC!+UppiK6&y3Kmbv&O!oYF
z34$0Z;QO!JOY#!`qyGH<3Pd}Pt@q*A0V=3SVtWKRR8d8Z&@)3qLPA19LPA19LPEUC
YUoZo%k(ykuW&i*H07*qoM6N<$f+CH{y8r+H
literal 0
HcmV?d00001
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
new file mode 100644
index 00000000..0bedcf2f
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "filename" : "LaunchImage.png",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "LaunchImage@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "LaunchImage@3x.png",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J
Q1PU{Fy85}Sb4q9e0B4a5jsO4v
literal 0
HcmV?d00001
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J
Q1PU{Fy85}Sb4q9e0B4a5jsO4v
literal 0
HcmV?d00001
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J
Q1PU{Fy85}Sb4q9e0B4a5jsO4v
literal 0
HcmV?d00001
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
new file mode 100644
index 00000000..89c2725b
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
@@ -0,0 +1,5 @@
+# Launch Screen Assets
+
+You can customize the launch screen with your own desired assets by replacing the image files in this directory.
+
+You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
\ No newline at end of file
diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 00000000..f2e259c7
--- /dev/null
+++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard
new file mode 100644
index 00000000..f3c28516
--- /dev/null
+++ b/ios/Runner/Base.lproj/Main.storyboard
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
new file mode 100644
index 00000000..cd48b71b
--- /dev/null
+++ b/ios/Runner/Info.plist
@@ -0,0 +1,70 @@
+
+
+
+
+ CADisableMinimumFrameDurationOnPhone
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleDisplayName
+ App
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ app
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ $(FLUTTER_BUILD_NAME)
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ $(FLUTTER_BUILD_NUMBER)
+ LSRequiresIPhoneOS
+
+ UIApplicationSceneManifest
+
+ UIApplicationSupportsMultipleScenes
+
+ UISceneConfigurations
+
+ UIWindowSceneSessionRoleApplication
+
+
+ UISceneClassName
+ UIWindowScene
+ UISceneConfigurationName
+ flutter
+ UISceneDelegateClassName
+ $(PRODUCT_MODULE_NAME).SceneDelegate
+ UISceneStoryboardFile
+ Main
+
+
+
+
+ UIApplicationSupportsIndirectInputEvents
+
+ UILaunchStoryboardName
+ LaunchScreen
+ UIMainStoryboardFile
+ Main
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+
+
diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h
new file mode 100644
index 00000000..308a2a56
--- /dev/null
+++ b/ios/Runner/Runner-Bridging-Header.h
@@ -0,0 +1 @@
+#import "GeneratedPluginRegistrant.h"
diff --git a/ios/Runner/SceneDelegate.swift b/ios/Runner/SceneDelegate.swift
new file mode 100644
index 00000000..b9ce8ea2
--- /dev/null
+++ b/ios/Runner/SceneDelegate.swift
@@ -0,0 +1,6 @@
+import Flutter
+import UIKit
+
+class SceneDelegate: FlutterSceneDelegate {
+
+}
diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift
new file mode 100644
index 00000000..86a7c3b1
--- /dev/null
+++ b/ios/RunnerTests/RunnerTests.swift
@@ -0,0 +1,12 @@
+import Flutter
+import UIKit
+import XCTest
+
+class RunnerTests: XCTestCase {
+
+ func testExample() {
+ // If you add code to the Runner application, consider adding tests here.
+ // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
+ }
+
+}
diff --git a/lib/core/router.dart b/lib/core/router.dart
new file mode 100644
index 00000000..79fc10dc
--- /dev/null
+++ b/lib/core/router.dart
@@ -0,0 +1,30 @@
+import 'package:go_router/go_router.dart';
+import '../presentation/screens/login_screen.dart';
+import '../presentation/screens/home_screen.dart'; // contains mockServers
+import '../presentation/screens/server_detail_screen.dart';
+
+final GoRouter appRouter = GoRouter(
+ initialLocation: '/',
+ routes: [
+ GoRoute(
+ path: '/',
+ builder: (context, state) => const LoginScreen(),
+ ),
+ GoRoute(
+ path: '/dashboard',
+ builder: (context, state) => const HomeScreen(),
+ ),
+ GoRoute(
+ path: '/server/:id',
+ builder: (context, state) {
+ final id = state.pathParameters['id']!;
+ // Simple lookup from mock data for wireframe
+ final server = mockServers.firstWhere(
+ (s) => s.id == id,
+ orElse: () => mockServers.first,
+ );
+ return ServerDetailScreen(serverId: id, server: server);
+ },
+ ),
+ ],
+);
diff --git a/lib/domain/models/server_config.dart b/lib/domain/models/server_config.dart
new file mode 100644
index 00000000..bbb85689
--- /dev/null
+++ b/lib/domain/models/server_config.dart
@@ -0,0 +1,17 @@
+class ServerConfig {
+ final String id;
+ final String name;
+ final String gameType; // e.g. "Minecraft", "Palworld"
+ final String ip;
+ final int port;
+ final bool isOnline; // For mock status
+
+ const ServerConfig({
+ required this.id,
+ required this.name,
+ required this.gameType,
+ required this.ip,
+ required this.port,
+ this.isOnline = true,
+ });
+}
diff --git a/lib/main.dart b/lib/main.dart
new file mode 100644
index 00000000..59ee82aa
--- /dev/null
+++ b/lib/main.dart
@@ -0,0 +1,31 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+
+import 'core/router.dart';
+import 'theme/app_theme.dart';
+
+void main() {
+ runApp(
+ const ProviderScope(
+ child: RconManagerApp(),
+ ),
+ );
+}
+
+class RconManagerApp extends ConsumerWidget {
+ const RconManagerApp({super.key});
+
+ @override
+ Widget build(BuildContext context, WidgetRef ref) {
+ final themeMode = ref.watch(themeModeProvider);
+
+ return MaterialApp.router(
+ title: 'RCON Manager',
+ theme: AppTheme.lightTheme,
+ darkTheme: AppTheme.darkTheme,
+ themeMode: themeMode,
+ routerConfig: appRouter,
+ debugShowCheckedModeBanner: false,
+ );
+ }
+}
diff --git a/lib/presentation/screens/home_screen.dart b/lib/presentation/screens/home_screen.dart
new file mode 100644
index 00000000..5c83000a
--- /dev/null
+++ b/lib/presentation/screens/home_screen.dart
@@ -0,0 +1,101 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+import 'package:go_router/go_router.dart';
+import '../../theme/app_theme.dart';
+import '../../domain/models/server_config.dart';
+
+// Mock Data
+final mockServers = [
+ ServerConfig(id: '1', name: 'Survival SMP', gameType: 'Minecraft', ip: '192.168.1.100', port: 25575),
+ ServerConfig(id: '2', name: 'Palworld Hub', gameType: 'Palworld', ip: '192.168.1.101', port: 25575),
+ ServerConfig(id: '3', name: 'Modded Realm', gameType: 'Minecraft', ip: '192.168.1.102', port: 25575, isOnline: false),
+];
+
+class HomeScreen extends ConsumerWidget {
+ const HomeScreen({super.key});
+
+ @override
+ Widget build(BuildContext context, WidgetRef ref) {
+ final themeMode = ref.watch(themeModeProvider);
+ final isDark = themeMode == ThemeMode.dark ||
+ (themeMode == ThemeMode.system && MediaQuery.platformBrightnessOf(context) == Brightness.dark);
+
+ return Scaffold(
+ appBar: AppBar(
+ title: const Text('My Servers'),
+ leading: IconButton(
+ icon: const Icon(Icons.logout),
+ onPressed: () => context.go('/'),
+ tooltip: 'Sign Out',
+ ),
+ actions: [
+ IconButton(
+ icon: Icon(isDark ? Icons.light_mode : Icons.dark_mode),
+ onPressed: () {
+ ref.read(themeModeProvider.notifier).toggleTheme();
+ },
+ tooltip: 'Toggle Theme',
+ ),
+ ],
+ ),
+ body: ListView.builder(
+ padding: const EdgeInsets.all(16.0),
+ itemCount: mockServers.length,
+ itemBuilder: (context, index) {
+ final server = mockServers[index];
+ return Card(
+ elevation: 2,
+ margin: const EdgeInsets.only(bottom: 16),
+ child: ListTile(
+ contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
+ leading: CircleAvatar(
+ backgroundColor: server.gameType == 'Minecraft' ? Colors.green.shade700 : Colors.blue.shade700,
+ child: Icon(
+ server.gameType == 'Minecraft' ? Icons.terrain : Icons.pets,
+ color: Colors.white,
+ ),
+ ),
+ title: Text(server.name, style: const TextStyle(fontWeight: FontWeight.bold)),
+ subtitle: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ const SizedBox(height: 4),
+ Text('${server.gameType} • ${server.ip}:${server.port}'),
+ const SizedBox(height: 4),
+ Row(
+ children: [
+ Container(
+ width: 10,
+ height: 10,
+ decoration: BoxDecoration(
+ color: server.isOnline ? Colors.green : Colors.red,
+ shape: BoxShape.circle,
+ ),
+ ),
+ const SizedBox(width: 8),
+ Text(server.isOnline ? 'Online' : 'Offline'),
+ ],
+ ),
+ ],
+ ),
+ trailing: const Icon(Icons.chevron_right),
+ onTap: () {
+ context.go('/server/${server.id}');
+ },
+ ),
+ );
+ },
+ ),
+ floatingActionButton: FloatingActionButton.extended(
+ onPressed: () {
+ // Mock action
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text('Add server dialog would open here')),
+ );
+ },
+ icon: const Icon(Icons.add),
+ label: const Text('Add Server'),
+ ),
+ );
+ }
+}
diff --git a/lib/presentation/screens/login_screen.dart b/lib/presentation/screens/login_screen.dart
new file mode 100644
index 00000000..77d22573
--- /dev/null
+++ b/lib/presentation/screens/login_screen.dart
@@ -0,0 +1,84 @@
+import 'package:flutter/material.dart';
+import 'package:go_router/go_router.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+
+import '../../theme/app_theme.dart';
+
+class LoginScreen extends ConsumerWidget {
+ const LoginScreen({super.key});
+
+ @override
+ Widget build(BuildContext context, WidgetRef ref) {
+ final themeMode = ref.watch(themeModeProvider);
+ final isDark = themeMode == ThemeMode.dark ||
+ (themeMode == ThemeMode.system && MediaQuery.platformBrightnessOf(context) == Brightness.dark);
+
+ return Scaffold(
+ appBar: AppBar(
+ title: const Text('Sign In'),
+ actions: [
+ IconButton(
+ icon: Icon(isDark ? Icons.light_mode : Icons.dark_mode),
+ onPressed: () {
+ ref.read(themeModeProvider.notifier).toggleTheme();
+ },
+ tooltip: 'Toggle Theme',
+ ),
+ ],
+ ),
+ body: Center(
+ child: Padding(
+ padding: const EdgeInsets.all(24.0),
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.stretch,
+ children: [
+ const Icon(Icons.dns, size: 80, color: Colors.blueAccent),
+ const SizedBox(height: 24),
+ Text(
+ 'RCON Manager',
+ textAlign: TextAlign.center,
+ style: Theme.of(context).textTheme.headlineMedium?.copyWith(
+ fontWeight: FontWeight.bold,
+ ),
+ ),
+ const SizedBox(height: 8),
+ Text(
+ 'Manage your private servers',
+ textAlign: TextAlign.center,
+ style: Theme.of(context).textTheme.bodyLarge,
+ ),
+ const SizedBox(height: 48),
+ ElevatedButton.icon(
+ onPressed: () => context.go('/dashboard'),
+ icon: const Icon(Icons.g_mobiledata, size: 32),
+ label: const Text('Sign in with Google'),
+ style: ElevatedButton.styleFrom(
+ padding: const EdgeInsets.symmetric(vertical: 16),
+ ),
+ ),
+ const SizedBox(height: 16),
+ ElevatedButton.icon(
+ onPressed: () => context.go('/dashboard'),
+ icon: const Icon(Icons.facebook),
+ label: const Text('Sign in with Facebook'),
+ style: ElevatedButton.styleFrom(
+ padding: const EdgeInsets.symmetric(vertical: 16),
+ ),
+ ),
+ const SizedBox(height: 16),
+ ElevatedButton.icon(
+ onPressed: () => context.go('/dashboard'),
+ icon: const Icon(Icons.close),
+ label: const Text('Sign in with X'),
+ style: ElevatedButton.styleFrom(
+ padding: const EdgeInsets.symmetric(vertical: 16),
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/presentation/screens/server_detail_screen.dart b/lib/presentation/screens/server_detail_screen.dart
new file mode 100644
index 00000000..5a318725
--- /dev/null
+++ b/lib/presentation/screens/server_detail_screen.dart
@@ -0,0 +1,257 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+import 'package:go_router/go_router.dart';
+import '../../domain/models/server_config.dart';
+
+class ServerDetailScreen extends ConsumerStatefulWidget {
+ final String serverId;
+ final ServerConfig server;
+
+ const ServerDetailScreen({
+ super.key,
+ required this.serverId,
+ required this.server,
+ });
+
+ @override
+ ConsumerState createState() => _ServerDetailScreenState();
+}
+
+class _ServerDetailScreenState extends ConsumerState {
+ final TextEditingController _commandController = TextEditingController();
+ final ScrollController _scrollController = ScrollController();
+
+ // Mock console logs
+ final List _consoleLogs = [
+ '[INFO] RCON Connection Established.',
+ '[INFO] Authenticated successfully.',
+ '[INFO] Server version: 1.20.4',
+ '[INFO] 3 players currently online.',
+ ];
+
+ @override
+ void dispose() {
+ _commandController.dispose();
+ _scrollController.dispose();
+ super.dispose();
+ }
+
+ void _sendCommand(String cmd) {
+ if (cmd.isEmpty) return;
+ setState(() {
+ _consoleLogs.add('> $cmd');
+ _consoleLogs.add('[Mock Response] Command executed: $cmd');
+ });
+ _commandController.clear();
+
+ // Auto-scroll to bottom
+ Future.delayed(const Duration(milliseconds: 100), () {
+ if (_scrollController.hasClients) {
+ _scrollController.animateTo(
+ _scrollController.position.maxScrollExtent,
+ duration: const Duration(milliseconds: 200),
+ curve: Curves.easeOut,
+ );
+ }
+ });
+ }
+
+ Widget _buildActionButtons() {
+ if (widget.server.gameType == 'Minecraft') {
+ return Wrap(
+ spacing: 8.0,
+ runSpacing: 8.0,
+ children: [
+ ActionChip(
+ label: const Text('Kick Player'),
+ avatar: const Icon(Icons.person_remove, size: 16),
+ onPressed: () => _sendCommand('kick '),
+ ),
+ ActionChip(
+ label: const Text('Ban Player'),
+ avatar: const Icon(Icons.block, size: 16),
+ onPressed: () => _sendCommand('ban '),
+ ),
+ ActionChip(
+ label: const Text('Time Set Day'),
+ avatar: const Icon(Icons.wb_sunny, size: 16),
+ onPressed: () => _sendCommand('time set day'),
+ ),
+ ActionChip(
+ label: const Text('Weather Clear'),
+ avatar: const Icon(Icons.cloud_off, size: 16),
+ onPressed: () => _sendCommand('weather clear'),
+ ),
+ ActionChip(
+ label: const Text('Save-All'),
+ avatar: const Icon(Icons.save, size: 16),
+ onPressed: () => _sendCommand('save-all'),
+ ),
+ ],
+ );
+ } else if (widget.server.gameType == 'Palworld') {
+ return Wrap(
+ spacing: 8.0,
+ runSpacing: 8.0,
+ children: [
+ ActionChip(
+ label: const Text('Broadcast'),
+ avatar: const Icon(Icons.campaign, size: 16),
+ onPressed: () => _sendCommand('Broadcast '),
+ ),
+ ActionChip(
+ label: const Text('Save'),
+ avatar: const Icon(Icons.save, size: 16),
+ onPressed: () => _sendCommand('Save'),
+ ),
+ ActionChip(
+ label: const Text('Show Players'),
+ avatar: const Icon(Icons.people, size: 16),
+ onPressed: () => _sendCommand('ShowPlayers'),
+ ),
+ ActionChip(
+ label: const Text('Kick Player'),
+ avatar: const Icon(Icons.person_remove, size: 16),
+ onPressed: () => _sendCommand('KickPlayer '),
+ ),
+ ActionChip(
+ label: const Text('Ban Player'),
+ avatar: const Icon(Icons.block, size: 16),
+ onPressed: () => _sendCommand('BanPlayer '),
+ ),
+ ActionChip(
+ label: const Text('Shutdown'),
+ avatar: const Icon(Icons.power_settings_new, size: 16),
+ onPressed: () => _sendCommand('Shutdown 10 '),
+ ),
+ ],
+ );
+ }
+ return const SizedBox.shrink();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return Scaffold(
+ appBar: AppBar(
+ title: Text(widget.server.name),
+ leading: IconButton(
+ icon: const Icon(Icons.arrow_back),
+ onPressed: () => context.go('/dashboard'),
+ ),
+ ),
+ body: Padding(
+ padding: const EdgeInsets.all(16.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.stretch,
+ children: [
+ // Server Info Header
+ Card(
+ child: Padding(
+ padding: const EdgeInsets.all(16.0),
+ child: Row(
+ children: [
+ Icon(
+ widget.server.gameType == 'Minecraft' ? Icons.terrain : Icons.pets,
+ size: 40,
+ color: Theme.of(context).colorScheme.primary,
+ ),
+ const SizedBox(width: 16),
+ Expanded(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ widget.server.name,
+ style: Theme.of(context).textTheme.titleLarge,
+ ),
+ Text('${widget.server.gameType} • ${widget.server.ip}:${widget.server.port}'),
+ ],
+ ),
+ ),
+ Container(
+ padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
+ decoration: BoxDecoration(
+ color: widget.server.isOnline ? Colors.green.shade100 : Colors.red.shade100,
+ borderRadius: BorderRadius.circular(16),
+ ),
+ child: Text(
+ widget.server.isOnline ? 'ONLINE' : 'OFFLINE',
+ style: TextStyle(
+ color: widget.server.isOnline ? Colors.green.shade800 : Colors.red.shade800,
+ fontWeight: FontWeight.bold,
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ const SizedBox(height: 16),
+
+ // Quick Actions
+ Text('Quick Actions', style: Theme.of(context).textTheme.titleMedium),
+ const SizedBox(height: 8),
+ _buildActionButtons(),
+ const SizedBox(height: 16),
+
+ // Console Terminal
+ Text('RCON Console', style: Theme.of(context).textTheme.titleMedium),
+ const SizedBox(height: 8),
+ Expanded(
+ child: Container(
+ decoration: BoxDecoration(
+ color: Colors.black87,
+ borderRadius: BorderRadius.circular(8),
+ ),
+ padding: const EdgeInsets.all(8.0),
+ child: ListView.builder(
+ controller: _scrollController,
+ itemCount: _consoleLogs.length,
+ itemBuilder: (context, index) {
+ final log = _consoleLogs[index];
+ final isCommand = log.startsWith('>');
+ return Padding(
+ padding: const EdgeInsets.symmetric(vertical: 2.0),
+ child: Text(
+ log,
+ style: TextStyle(
+ color: isCommand ? Colors.yellow : Colors.greenAccent,
+ fontFamily: 'monospace',
+ fontSize: 14,
+ ),
+ ),
+ );
+ },
+ ),
+ ),
+ ),
+ const SizedBox(height: 8),
+
+ // Custom Command Input
+ Row(
+ children: [
+ Expanded(
+ child: TextField(
+ controller: _commandController,
+ decoration: const InputDecoration(
+ hintText: 'Enter custom RCON command...',
+ border: OutlineInputBorder(),
+ contentPadding: EdgeInsets.symmetric(horizontal: 16, vertical: 12),
+ ),
+ onSubmitted: _sendCommand,
+ ),
+ ),
+ const SizedBox(width: 8),
+ IconButton.filled(
+ icon: const Icon(Icons.send),
+ onPressed: () => _sendCommand(_commandController.text),
+ ),
+ ],
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/theme/app_theme.dart b/lib/theme/app_theme.dart
new file mode 100644
index 00000000..31688fab
--- /dev/null
+++ b/lib/theme/app_theme.dart
@@ -0,0 +1,57 @@
+import 'package:flex_color_scheme/flex_color_scheme.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+
+class ThemeModeNotifier extends Notifier {
+ @override
+ ThemeMode build() => ThemeMode.system;
+
+ void toggleTheme() {
+ state = state == ThemeMode.light ? ThemeMode.dark : ThemeMode.light;
+ }
+
+ void setThemeMode(ThemeMode mode) {
+ state = mode;
+ }
+}
+
+final themeModeProvider = NotifierProvider(
+ ThemeModeNotifier.new,
+);
+
+class AppTheme {
+ // Light Theme
+ static final ThemeData lightTheme = FlexThemeData.light(
+ scheme: FlexScheme.deepBlue,
+ surfaceMode: FlexSurfaceMode.levelSurfacesLowScaffold,
+ blendLevel: 7,
+ subThemesData: const FlexSubThemesData(
+ blendOnLevel: 10,
+ blendOnColors: false,
+ useMaterial3Typography: true,
+ useM2StyleDividerInM3: true,
+ alignedDropdown: true,
+ useInputDecoratorThemeInDialogs: true,
+ ),
+ visualDensity: FlexColorScheme.comfortablePlatformDensity,
+ useMaterial3: true,
+ swapLegacyOnMaterial3: true,
+ );
+
+ // Dark Theme
+ static final ThemeData darkTheme = FlexThemeData.dark(
+ scheme: FlexScheme.deepBlue,
+ surfaceMode: FlexSurfaceMode.levelSurfacesLowScaffold,
+ blendLevel: 13,
+ subThemesData: const FlexSubThemesData(
+ blendOnLevel: 20,
+ useMaterial3Typography: true,
+ useM2StyleDividerInM3: true,
+ alignedDropdown: true,
+ useInputDecoratorThemeInDialogs: true,
+ ),
+ visualDensity: FlexColorScheme.comfortablePlatformDensity,
+ useMaterial3: true,
+ swapLegacyOnMaterial3: true,
+ );
+}
diff --git a/pubspec.lock b/pubspec.lock
new file mode 100644
index 00000000..976eab3c
--- /dev/null
+++ b/pubspec.lock
@@ -0,0 +1,554 @@
+# Generated by pub
+# See https://dart.dev/tools/pub/glossary#lockfile
+packages:
+ _fe_analyzer_shared:
+ dependency: transitive
+ description:
+ name: _fe_analyzer_shared
+ sha256: "8d7ff3948166b8ec5da0fbb5962000926b8e02f2ed9b3e51d1738905fbd4c98d"
+ url: "https://pub.dev"
+ source: hosted
+ version: "93.0.0"
+ analyzer:
+ dependency: transitive
+ description:
+ name: analyzer
+ sha256: de7148ed2fcec579b19f122c1800933dfa028f6d9fd38a152b04b1516cec120b
+ url: "https://pub.dev"
+ source: hosted
+ version: "10.0.1"
+ args:
+ dependency: transitive
+ description:
+ name: args
+ sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.7.0"
+ async:
+ dependency: transitive
+ description:
+ name: async
+ sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.13.1"
+ boolean_selector:
+ dependency: transitive
+ description:
+ name: boolean_selector
+ sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.2"
+ characters:
+ dependency: transitive
+ description:
+ name: characters
+ sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.4.1"
+ cli_config:
+ dependency: transitive
+ description:
+ name: cli_config
+ sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.0"
+ clock:
+ dependency: transitive
+ description:
+ name: clock
+ sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.2"
+ collection:
+ dependency: transitive
+ description:
+ name: collection
+ sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.19.1"
+ convert:
+ dependency: transitive
+ description:
+ name: convert
+ sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.1.2"
+ coverage:
+ dependency: transitive
+ description:
+ name: coverage
+ sha256: "956a3de0725ca232ad353565a8290d3357592bf4250f6f298a185e2d949c5d3d"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.15.1"
+ crypto:
+ dependency: transitive
+ description:
+ name: crypto
+ sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.7"
+ cupertino_icons:
+ dependency: "direct main"
+ description:
+ name: cupertino_icons
+ sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.9"
+ fake_async:
+ dependency: transitive
+ description:
+ name: fake_async
+ sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.3.3"
+ file:
+ dependency: transitive
+ description:
+ name: file
+ sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
+ url: "https://pub.dev"
+ source: hosted
+ version: "7.0.1"
+ fixnum:
+ dependency: transitive
+ description:
+ name: fixnum
+ sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.1"
+ flex_color_scheme:
+ dependency: "direct main"
+ description:
+ name: flex_color_scheme
+ sha256: ab854146f201d2d62cc251fd525ef023b84182c4a0bfe4ae4c18ffc505b412d3
+ url: "https://pub.dev"
+ source: hosted
+ version: "8.4.0"
+ flex_seed_scheme:
+ dependency: transitive
+ description:
+ name: flex_seed_scheme
+ sha256: a3183753bbcfc3af106224bff3ab3e1844b73f58062136b7499919f49f3667e7
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.1"
+ flutter:
+ dependency: "direct main"
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ flutter_lints:
+ dependency: "direct dev"
+ description:
+ name: flutter_lints
+ sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1"
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.0.0"
+ flutter_riverpod:
+ dependency: "direct main"
+ description:
+ name: flutter_riverpod
+ sha256: "9255e1e3ad6e38906a1b4f8287678f95f378744c5b46b1985588543f3f19046e"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.3.2"
+ flutter_test:
+ dependency: "direct dev"
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ flutter_web_plugins:
+ dependency: transitive
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ frontend_server_client:
+ dependency: transitive
+ description:
+ name: frontend_server_client
+ sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.0"
+ glob:
+ dependency: transitive
+ description:
+ name: glob
+ sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.3"
+ go_router:
+ dependency: "direct main"
+ description:
+ name: go_router
+ sha256: d7a3576cb312649eaa51f2356450aed686085fb58fcdebda5b359aa951eef7ea
+ url: "https://pub.dev"
+ source: hosted
+ version: "17.5.0"
+ http_multi_server:
+ dependency: transitive
+ description:
+ name: http_multi_server
+ sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.2.2"
+ http_parser:
+ dependency: transitive
+ description:
+ name: http_parser
+ sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.1.2"
+ io:
+ dependency: transitive
+ description:
+ name: io
+ sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.5"
+ leak_tracker:
+ dependency: transitive
+ description:
+ name: leak_tracker
+ sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
+ url: "https://pub.dev"
+ source: hosted
+ version: "11.0.2"
+ leak_tracker_flutter_testing:
+ dependency: transitive
+ description:
+ name: leak_tracker_flutter_testing
+ sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.10"
+ leak_tracker_testing:
+ dependency: transitive
+ description:
+ name: leak_tracker_testing
+ sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.2"
+ lints:
+ dependency: transitive
+ description:
+ name: lints
+ sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df"
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.1.0"
+ logging:
+ dependency: transitive
+ description:
+ name: logging
+ sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.3.0"
+ matcher:
+ dependency: transitive
+ description:
+ name: matcher
+ sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.12.18"
+ material_color_utilities:
+ dependency: transitive
+ description:
+ name: material_color_utilities
+ sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.13.0"
+ meta:
+ dependency: transitive
+ description:
+ name: meta
+ sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.17.0"
+ mime:
+ dependency: transitive
+ description:
+ name: mime
+ sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.0"
+ node_preamble:
+ dependency: transitive
+ description:
+ name: node_preamble
+ sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.2"
+ package_config:
+ dependency: transitive
+ description:
+ name: package_config
+ sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.2.0"
+ path:
+ dependency: transitive
+ description:
+ name: path
+ sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.9.1"
+ pool:
+ dependency: transitive
+ description:
+ name: pool
+ sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.5.2"
+ pub_semver:
+ dependency: transitive
+ description:
+ name: pub_semver
+ sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.2.0"
+ riverpod:
+ dependency: transitive
+ description:
+ name: riverpod
+ sha256: "17100416c51db7810c71a7bb2c34d1f881faa0074fd452afb0c4db6f8f126c76"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.3.2"
+ shelf:
+ dependency: transitive
+ description:
+ name: shelf
+ sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.4.2"
+ shelf_packages_handler:
+ dependency: transitive
+ description:
+ name: shelf_packages_handler
+ sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.2"
+ shelf_static:
+ dependency: transitive
+ description:
+ name: shelf_static
+ sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.3"
+ shelf_web_socket:
+ dependency: transitive
+ description:
+ name: shelf_web_socket
+ sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.0"
+ sky_engine:
+ dependency: transitive
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ source_map_stack_trace:
+ dependency: transitive
+ description:
+ name: source_map_stack_trace
+ sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.2"
+ source_maps:
+ dependency: transitive
+ description:
+ name: source_maps
+ sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.10.13"
+ source_span:
+ dependency: transitive
+ description:
+ name: source_span
+ sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.10.2"
+ stack_trace:
+ dependency: transitive
+ description:
+ name: stack_trace
+ sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.12.1"
+ state_notifier:
+ dependency: transitive
+ description:
+ name: state_notifier
+ sha256: b8677376aa54f2d7c58280d5a007f9e8774f1968d1fb1c096adcb4792fba29bb
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.0"
+ stream_channel:
+ dependency: transitive
+ description:
+ name: stream_channel
+ sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.4"
+ string_scanner:
+ dependency: transitive
+ description:
+ name: string_scanner
+ sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.4.1"
+ term_glyph:
+ dependency: transitive
+ description:
+ name: term_glyph
+ sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.2"
+ test:
+ dependency: transitive
+ description:
+ name: test
+ sha256: "54c516bbb7cee2754d327ad4fca637f78abfc3cbcc5ace83b3eda117e42cd71a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.29.0"
+ test_api:
+ dependency: transitive
+ description:
+ name: test_api
+ sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.7.9"
+ test_core:
+ dependency: transitive
+ description:
+ name: test_core
+ sha256: "394f07d21f0f2255ec9e3989f21e54d3c7dc0e6e9dbce160e5a9c1a6be0e2943"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.6.15"
+ typed_data:
+ dependency: transitive
+ description:
+ name: typed_data
+ sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.4.0"
+ uuid:
+ dependency: transitive
+ description:
+ name: uuid
+ sha256: "9b129329f58692f6e6578329498a8fe9fbe98f090beb764ffbb8ee2eadd01dcd"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.6.0"
+ vector_math:
+ dependency: transitive
+ description:
+ name: vector_math
+ sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.2.0"
+ vm_service:
+ dependency: transitive
+ description:
+ name: vm_service
+ sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360"
+ url: "https://pub.dev"
+ source: hosted
+ version: "15.2.0"
+ watcher:
+ dependency: transitive
+ description:
+ name: watcher
+ sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.1"
+ web:
+ dependency: transitive
+ description:
+ name: web
+ sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.1"
+ web_socket:
+ dependency: transitive
+ description:
+ name: web_socket
+ sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.1"
+ web_socket_channel:
+ dependency: transitive
+ description:
+ name: web_socket_channel
+ sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.3"
+ webkit_inspection_protocol:
+ dependency: transitive
+ description:
+ name: webkit_inspection_protocol
+ sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.1"
+ yaml:
+ dependency: transitive
+ description:
+ name: yaml
+ sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.1.3"
+sdks:
+ dart: ">=3.11.0 <4.0.0"
+ flutter: ">=3.38.0"
diff --git a/pubspec.yaml b/pubspec.yaml
new file mode 100644
index 00000000..2ba4e2cb
--- /dev/null
+++ b/pubspec.yaml
@@ -0,0 +1,92 @@
+name: app
+description: "A new Flutter project."
+# The following line prevents the package from being accidentally published to
+# pub.dev using `flutter pub publish`. This is preferred for private packages.
+publish_to: 'none' # Remove this line if you wish to publish to pub.dev
+
+# The following defines the version and build number for your application.
+# A version number is three numbers separated by dots, like 1.2.43
+# followed by an optional build number separated by a +.
+# Both the version and the builder number may be overridden in flutter
+# build by specifying --build-name and --build-number, respectively.
+# In Android, build-name is used as versionName while build-number used as versionCode.
+# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
+# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.
+# Read more about iOS versioning at
+# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
+# In Windows, build-name is used as the major, minor, and patch parts
+# of the product and file versions while build-number is used as the build suffix.
+version: 1.0.0+1
+
+environment:
+ sdk: ^3.11.0
+
+# Dependencies specify other packages that your package needs in order to work.
+# To automatically upgrade your package dependencies to the latest versions
+# consider running `flutter pub upgrade --major-versions`. Alternatively,
+# dependencies can be manually updated by changing the version numbers below to
+# the latest version available on pub.dev. To see which dependencies have newer
+# versions available, run `flutter pub outdated`.
+dependencies:
+ flutter:
+ sdk: flutter
+
+ # The following adds the Cupertino Icons font to your application.
+ # Use with the CupertinoIcons class for iOS style icons.
+ cupertino_icons: ^1.0.8
+ flutter_riverpod: ^3.3.2
+ go_router: ^17.5.0
+ flex_color_scheme: ^8.4.0
+
+dev_dependencies:
+ flutter_test:
+ sdk: flutter
+
+ # The "flutter_lints" package below contains a set of recommended lints to
+ # encourage good coding practices. The lint set provided by the package is
+ # activated in the `analysis_options.yaml` file located at the root of your
+ # package. See that file for information about deactivating specific lint
+ # rules and activating additional ones.
+ flutter_lints: ^6.0.0
+
+# For information on the generic Dart part of this file, see the
+# following page: https://dart.dev/tools/pub/pubspec
+
+# The following section is specific to Flutter packages.
+flutter:
+
+ # The following line ensures that the Material Icons font is
+ # included with your application, so that you can use the icons in
+ # the material Icons class.
+ uses-material-design: true
+
+ # To add assets to your application, add an assets section, like this:
+ # assets:
+ # - images/a_dot_burr.jpeg
+ # - images/a_dot_ham.jpeg
+
+ # An image asset can refer to one or more resolution-specific "variants", see
+ # https://flutter.dev/to/resolution-aware-images
+
+ # For details regarding adding assets from package dependencies, see
+ # https://flutter.dev/to/asset-from-package
+
+ # To add custom fonts to your application, add a fonts section here,
+ # in this "flutter" section. Each entry in this list should have a
+ # "family" key with the font family name, and a "fonts" key with a
+ # list giving the asset and other descriptors for the font. For
+ # example:
+ # fonts:
+ # - family: Schyler
+ # fonts:
+ # - asset: fonts/Schyler-Regular.ttf
+ # - asset: fonts/Schyler-Italic.ttf
+ # style: italic
+ # - family: Trajan Pro
+ # fonts:
+ # - asset: fonts/TrajanPro.ttf
+ # - asset: fonts/TrajanPro_Bold.ttf
+ # weight: 700
+ #
+ # For details regarding fonts from package dependencies,
+ # see https://flutter.dev/to/font-from-package
diff --git a/test/widget_test.dart b/test/widget_test.dart
new file mode 100644
index 00000000..3a6471bc
--- /dev/null
+++ b/test/widget_test.dart
@@ -0,0 +1,14 @@
+import 'package:flutter_test/flutter_test.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+
+import 'package:app/main.dart';
+
+void main() {
+ testWidgets('RCON Manager starts up', (WidgetTester tester) async {
+ // Build our app and trigger a frame.
+ await tester.pumpWidget(const ProviderScope(child: RconManagerApp()));
+
+ // Verify that our title is present.
+ expect(find.text('RCON Manager'), findsOneWidget);
+ });
+}
From 6664980be95adb34add223facb6833b553bc94c9 Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Fri, 14 Aug 2026 18:03:49 +0000
Subject: [PATCH 2/3] chore: remove flutter project to transfer to separate
repo
Removes the newly created Flutter RCON Manager wireframe and plan from this repository so it can be transferred and managed in its own dedicated Git repository.
Co-authored-by: Y6b <161412+Y6b@users.noreply.github.com>
---
.dart_tool/package_config.json | 436 -------
.dart_tool/package_graph.json | 644 -----------
.dart_tool/version | 1 -
.idea/libraries/Dart_SDK.xml | 19 -
.idea/libraries/KotlinJavaRuntime.xml | 15 -
.idea/modules.xml | 9 -
.idea/runConfigurations/main_dart.xml | 6 -
.idea/workspace.xml | 36 -
.metadata | 33 -
analysis_options.yaml | 28 -
android/.gitignore | 14 -
android/app/build.gradle.kts | 44 -
android/app/src/debug/AndroidManifest.xml | 7 -
android/app/src/main/AndroidManifest.xml | 45 -
.../kotlin/com/example/app/MainActivity.kt | 5 -
.../res/drawable-v21/launch_background.xml | 12 -
.../main/res/drawable/launch_background.xml | 12 -
.../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 0 bytes
.../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 0 bytes
.../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 0 bytes
.../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 0 bytes
.../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 0 bytes
.../app/src/main/res/values-night/styles.xml | 18 -
android/app/src/main/res/values/styles.xml | 18 -
android/app/src/profile/AndroidManifest.xml | 7 -
android/app_android.iml | 29 -
android/build.gradle.kts | 24 -
android/gradle.properties | 2 -
.../gradle/wrapper/gradle-wrapper.properties | 5 -
android/settings.gradle.kts | 26 -
app.iml | 17 -
ios/.gitignore | 34 -
ios/Flutter/AppFrameworkInfo.plist | 24 -
ios/Flutter/Debug.xcconfig | 1 -
ios/Flutter/Release.xcconfig | 1 -
ios/Runner.xcodeproj/project.pbxproj | 620 ----------
.../contents.xcworkspacedata | 7 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
.../xcshareddata/WorkspaceSettings.xcsettings | 8 -
.../xcshareddata/xcschemes/Runner.xcscheme | 101 --
.../contents.xcworkspacedata | 7 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
.../xcshareddata/WorkspaceSettings.xcsettings | 8 -
ios/Runner/AppDelegate.swift | 16 -
.../AppIcon.appiconset/Contents.json | 122 --
.../Icon-App-1024x1024@1x.png | Bin 10932 -> 0 bytes
.../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 295 -> 0 bytes
.../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 406 -> 0 bytes
.../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 450 -> 0 bytes
.../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 282 -> 0 bytes
.../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 462 -> 0 bytes
.../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 704 -> 0 bytes
.../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 406 -> 0 bytes
.../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 586 -> 0 bytes
.../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 862 -> 0 bytes
.../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 862 -> 0 bytes
.../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 1674 -> 0 bytes
.../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 762 -> 0 bytes
.../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 1226 -> 0 bytes
.../Icon-App-83.5x83.5@2x.png | Bin 1418 -> 0 bytes
.../LaunchImage.imageset/Contents.json | 23 -
.../LaunchImage.imageset/LaunchImage.png | Bin 68 -> 0 bytes
.../LaunchImage.imageset/LaunchImage@2x.png | Bin 68 -> 0 bytes
.../LaunchImage.imageset/LaunchImage@3x.png | Bin 68 -> 0 bytes
.../LaunchImage.imageset/README.md | 5 -
ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 -
ios/Runner/Base.lproj/Main.storyboard | 26 -
ios/Runner/Info.plist | 70 --
ios/Runner/Runner-Bridging-Header.h | 1 -
ios/Runner/SceneDelegate.swift | 6 -
ios/RunnerTests/RunnerTests.swift | 12 -
lib/core/router.dart | 30 -
lib/domain/models/server_config.dart | 17 -
lib/main.dart | 31 -
lib/presentation/screens/home_screen.dart | 101 --
lib/presentation/screens/login_screen.dart | 84 --
.../screens/server_detail_screen.dart | 257 -----
lib/theme/app_theme.dart | 57 -
pubspec.lock | 554 ---------
pubspec.yaml | 92 --
test/widget_test.dart | 14 -
usernames_default.txt | 1007 -----------------
82 files changed, 4901 deletions(-)
delete mode 100644 .dart_tool/package_config.json
delete mode 100644 .dart_tool/package_graph.json
delete mode 100644 .dart_tool/version
delete mode 100644 .idea/libraries/Dart_SDK.xml
delete mode 100644 .idea/libraries/KotlinJavaRuntime.xml
delete mode 100644 .idea/modules.xml
delete mode 100644 .idea/runConfigurations/main_dart.xml
delete mode 100644 .idea/workspace.xml
delete mode 100644 .metadata
delete mode 100644 analysis_options.yaml
delete mode 100644 android/.gitignore
delete mode 100644 android/app/build.gradle.kts
delete mode 100644 android/app/src/debug/AndroidManifest.xml
delete mode 100644 android/app/src/main/AndroidManifest.xml
delete mode 100644 android/app/src/main/kotlin/com/example/app/MainActivity.kt
delete mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml
delete mode 100644 android/app/src/main/res/drawable/launch_background.xml
delete mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png
delete mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png
delete mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
delete mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
delete mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
delete mode 100644 android/app/src/main/res/values-night/styles.xml
delete mode 100644 android/app/src/main/res/values/styles.xml
delete mode 100644 android/app/src/profile/AndroidManifest.xml
delete mode 100644 android/app_android.iml
delete mode 100644 android/build.gradle.kts
delete mode 100644 android/gradle.properties
delete mode 100644 android/gradle/wrapper/gradle-wrapper.properties
delete mode 100644 android/settings.gradle.kts
delete mode 100644 app.iml
delete mode 100644 ios/.gitignore
delete mode 100644 ios/Flutter/AppFrameworkInfo.plist
delete mode 100644 ios/Flutter/Debug.xcconfig
delete mode 100644 ios/Flutter/Release.xcconfig
delete mode 100644 ios/Runner.xcodeproj/project.pbxproj
delete mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
delete mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
delete mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
delete mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
delete mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata
delete mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
delete mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
delete mode 100644 ios/Runner/AppDelegate.swift
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
delete mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
delete mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
delete mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
delete mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
delete mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
delete mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard
delete mode 100644 ios/Runner/Base.lproj/Main.storyboard
delete mode 100644 ios/Runner/Info.plist
delete mode 100644 ios/Runner/Runner-Bridging-Header.h
delete mode 100644 ios/Runner/SceneDelegate.swift
delete mode 100644 ios/RunnerTests/RunnerTests.swift
delete mode 100644 lib/core/router.dart
delete mode 100644 lib/domain/models/server_config.dart
delete mode 100644 lib/main.dart
delete mode 100644 lib/presentation/screens/home_screen.dart
delete mode 100644 lib/presentation/screens/login_screen.dart
delete mode 100644 lib/presentation/screens/server_detail_screen.dart
delete mode 100644 lib/theme/app_theme.dart
delete mode 100644 pubspec.lock
delete mode 100644 pubspec.yaml
delete mode 100644 test/widget_test.dart
delete mode 100644 usernames_default.txt
diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json
deleted file mode 100644
index b3d96a76..00000000
--- a/.dart_tool/package_config.json
+++ /dev/null
@@ -1,436 +0,0 @@
-{
- "configVersion": 2,
- "packages": [
- {
- "name": "_fe_analyzer_shared",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-93.0.0",
- "packageUri": "lib/",
- "languageVersion": "3.9"
- },
- {
- "name": "analyzer",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/analyzer-10.0.1",
- "packageUri": "lib/",
- "languageVersion": "3.9"
- },
- {
- "name": "args",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/args-2.7.0",
- "packageUri": "lib/",
- "languageVersion": "3.3"
- },
- {
- "name": "async",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/async-2.13.1",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "boolean_selector",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2",
- "packageUri": "lib/",
- "languageVersion": "3.1"
- },
- {
- "name": "characters",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/characters-1.4.1",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "cli_config",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/cli_config-0.2.0",
- "packageUri": "lib/",
- "languageVersion": "3.0"
- },
- {
- "name": "clock",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/clock-1.1.2",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "collection",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/collection-1.19.1",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "convert",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/convert-3.1.2",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "coverage",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/coverage-1.15.1",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "crypto",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/crypto-3.0.7",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "cupertino_icons",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.9",
- "packageUri": "lib/",
- "languageVersion": "3.9"
- },
- {
- "name": "fake_async",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/fake_async-1.3.3",
- "packageUri": "lib/",
- "languageVersion": "3.3"
- },
- {
- "name": "file",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/file-7.0.1",
- "packageUri": "lib/",
- "languageVersion": "3.0"
- },
- {
- "name": "fixnum",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/fixnum-1.1.1",
- "packageUri": "lib/",
- "languageVersion": "3.1"
- },
- {
- "name": "flex_color_scheme",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/flex_color_scheme-8.4.0",
- "packageUri": "lib/",
- "languageVersion": "3.6"
- },
- {
- "name": "flex_seed_scheme",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/flex_seed_scheme-4.0.1",
- "packageUri": "lib/",
- "languageVersion": "3.6"
- },
- {
- "name": "flutter",
- "rootUri": "file:///opt/flutter/packages/flutter",
- "packageUri": "lib/",
- "languageVersion": "3.9"
- },
- {
- "name": "flutter_lints",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/flutter_lints-6.0.0",
- "packageUri": "lib/",
- "languageVersion": "3.8"
- },
- {
- "name": "flutter_riverpod",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/flutter_riverpod-3.3.2",
- "packageUri": "lib/",
- "languageVersion": "3.7"
- },
- {
- "name": "flutter_test",
- "rootUri": "file:///opt/flutter/packages/flutter_test",
- "packageUri": "lib/",
- "languageVersion": "3.9"
- },
- {
- "name": "flutter_web_plugins",
- "rootUri": "file:///opt/flutter/packages/flutter_web_plugins",
- "packageUri": "lib/",
- "languageVersion": "3.9"
- },
- {
- "name": "frontend_server_client",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0",
- "packageUri": "lib/",
- "languageVersion": "3.0"
- },
- {
- "name": "glob",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/glob-2.1.3",
- "packageUri": "lib/",
- "languageVersion": "3.3"
- },
- {
- "name": "go_router",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/go_router-17.5.0",
- "packageUri": "lib/",
- "languageVersion": "3.10"
- },
- {
- "name": "http_multi_server",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2",
- "packageUri": "lib/",
- "languageVersion": "3.2"
- },
- {
- "name": "http_parser",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/http_parser-4.1.2",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "io",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/io-1.0.5",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "leak_tracker",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/leak_tracker-11.0.2",
- "packageUri": "lib/",
- "languageVersion": "3.2"
- },
- {
- "name": "leak_tracker_flutter_testing",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.10",
- "packageUri": "lib/",
- "languageVersion": "3.2"
- },
- {
- "name": "leak_tracker_testing",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.2",
- "packageUri": "lib/",
- "languageVersion": "3.2"
- },
- {
- "name": "lints",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/lints-6.1.0",
- "packageUri": "lib/",
- "languageVersion": "3.8"
- },
- {
- "name": "logging",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/logging-1.3.0",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "matcher",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/matcher-0.12.18",
- "packageUri": "lib/",
- "languageVersion": "3.7"
- },
- {
- "name": "material_color_utilities",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/material_color_utilities-0.13.0",
- "packageUri": "lib/",
- "languageVersion": "3.5"
- },
- {
- "name": "meta",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/meta-1.17.0",
- "packageUri": "lib/",
- "languageVersion": "3.5"
- },
- {
- "name": "mime",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/mime-2.0.0",
- "packageUri": "lib/",
- "languageVersion": "3.2"
- },
- {
- "name": "node_preamble",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/node_preamble-2.0.2",
- "packageUri": "lib/",
- "languageVersion": "2.12"
- },
- {
- "name": "package_config",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/package_config-2.2.0",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "path",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/path-1.9.1",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "pool",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/pool-1.5.2",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "pub_semver",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/pub_semver-2.2.0",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "riverpod",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/riverpod-3.3.2",
- "packageUri": "lib/",
- "languageVersion": "3.7"
- },
- {
- "name": "shelf",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/shelf-1.4.2",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "shelf_packages_handler",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2",
- "packageUri": "lib/",
- "languageVersion": "2.17"
- },
- {
- "name": "shelf_static",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/shelf_static-1.1.3",
- "packageUri": "lib/",
- "languageVersion": "3.3"
- },
- {
- "name": "shelf_web_socket",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0",
- "packageUri": "lib/",
- "languageVersion": "3.5"
- },
- {
- "name": "sky_engine",
- "rootUri": "file:///opt/flutter/bin/cache/pkg/sky_engine",
- "packageUri": "lib/",
- "languageVersion": "3.9"
- },
- {
- "name": "source_map_stack_trace",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2",
- "packageUri": "lib/",
- "languageVersion": "3.3"
- },
- {
- "name": "source_maps",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/source_maps-0.10.13",
- "packageUri": "lib/",
- "languageVersion": "3.3"
- },
- {
- "name": "source_span",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/source_span-1.10.2",
- "packageUri": "lib/",
- "languageVersion": "3.1"
- },
- {
- "name": "stack_trace",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/stack_trace-1.12.1",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "state_notifier",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/state_notifier-1.0.0",
- "packageUri": "lib/",
- "languageVersion": "2.12"
- },
- {
- "name": "stream_channel",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/stream_channel-2.1.4",
- "packageUri": "lib/",
- "languageVersion": "3.3"
- },
- {
- "name": "string_scanner",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/string_scanner-1.4.1",
- "packageUri": "lib/",
- "languageVersion": "3.1"
- },
- {
- "name": "term_glyph",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/term_glyph-1.2.2",
- "packageUri": "lib/",
- "languageVersion": "3.1"
- },
- {
- "name": "test",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/test-1.29.0",
- "packageUri": "lib/",
- "languageVersion": "3.7"
- },
- {
- "name": "test_api",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/test_api-0.7.9",
- "packageUri": "lib/",
- "languageVersion": "3.7"
- },
- {
- "name": "test_core",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/test_core-0.6.15",
- "packageUri": "lib/",
- "languageVersion": "3.7"
- },
- {
- "name": "typed_data",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/typed_data-1.4.0",
- "packageUri": "lib/",
- "languageVersion": "3.5"
- },
- {
- "name": "uuid",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/uuid-4.6.0",
- "packageUri": "lib/",
- "languageVersion": "3.0"
- },
- {
- "name": "vector_math",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/vector_math-2.2.0",
- "packageUri": "lib/",
- "languageVersion": "3.1"
- },
- {
- "name": "vm_service",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/vm_service-15.2.0",
- "packageUri": "lib/",
- "languageVersion": "3.5"
- },
- {
- "name": "watcher",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/watcher-1.2.1",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "web",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/web-1.1.1",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "web_socket",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/web_socket-1.0.1",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "web_socket_channel",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.3",
- "packageUri": "lib/",
- "languageVersion": "3.3"
- },
- {
- "name": "webkit_inspection_protocol",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1",
- "packageUri": "lib/",
- "languageVersion": "3.0"
- },
- {
- "name": "yaml",
- "rootUri": "file:///home/jules/.pub-cache/hosted/pub.dev/yaml-3.1.3",
- "packageUri": "lib/",
- "languageVersion": "3.4"
- },
- {
- "name": "app",
- "rootUri": "../",
- "packageUri": "lib/",
- "languageVersion": "3.11"
- }
- ],
- "generator": "pub",
- "generatorVersion": "3.11.0",
- "flutterRoot": "file:///opt/flutter",
- "flutterVersion": "3.41.2",
- "pubCache": "file:///home/jules/.pub-cache"
-}
diff --git a/.dart_tool/package_graph.json b/.dart_tool/package_graph.json
deleted file mode 100644
index 5d3b3f21..00000000
--- a/.dart_tool/package_graph.json
+++ /dev/null
@@ -1,644 +0,0 @@
-{
- "roots": [
- "app"
- ],
- "packages": [
- {
- "name": "app",
- "version": "1.0.0+1",
- "dependencies": [
- "cupertino_icons",
- "flex_color_scheme",
- "flutter",
- "flutter_riverpod",
- "go_router"
- ],
- "devDependencies": [
- "flutter_lints",
- "flutter_test"
- ]
- },
- {
- "name": "flutter_lints",
- "version": "6.0.0",
- "dependencies": [
- "lints"
- ]
- },
- {
- "name": "flutter_test",
- "version": "0.0.0",
- "dependencies": [
- "clock",
- "collection",
- "fake_async",
- "flutter",
- "leak_tracker_flutter_testing",
- "matcher",
- "meta",
- "path",
- "stack_trace",
- "stream_channel",
- "test_api",
- "vector_math"
- ]
- },
- {
- "name": "flex_color_scheme",
- "version": "8.4.0",
- "dependencies": [
- "flex_seed_scheme",
- "flutter",
- "meta"
- ]
- },
- {
- "name": "go_router",
- "version": "17.5.0",
- "dependencies": [
- "collection",
- "flutter",
- "flutter_web_plugins",
- "logging",
- "meta"
- ]
- },
- {
- "name": "flutter_riverpod",
- "version": "3.3.2",
- "dependencies": [
- "collection",
- "flutter",
- "flutter_test",
- "meta",
- "riverpod",
- "state_notifier"
- ]
- },
- {
- "name": "cupertino_icons",
- "version": "1.0.9",
- "dependencies": []
- },
- {
- "name": "flutter",
- "version": "0.0.0",
- "dependencies": [
- "characters",
- "collection",
- "material_color_utilities",
- "meta",
- "sky_engine",
- "vector_math"
- ]
- },
- {
- "name": "lints",
- "version": "6.1.0",
- "dependencies": []
- },
- {
- "name": "stream_channel",
- "version": "2.1.4",
- "dependencies": [
- "async"
- ]
- },
- {
- "name": "meta",
- "version": "1.17.0",
- "dependencies": []
- },
- {
- "name": "collection",
- "version": "1.19.1",
- "dependencies": []
- },
- {
- "name": "leak_tracker_flutter_testing",
- "version": "3.0.10",
- "dependencies": [
- "flutter",
- "leak_tracker",
- "leak_tracker_testing",
- "matcher",
- "meta"
- ]
- },
- {
- "name": "vector_math",
- "version": "2.2.0",
- "dependencies": []
- },
- {
- "name": "stack_trace",
- "version": "1.12.1",
- "dependencies": [
- "path"
- ]
- },
- {
- "name": "clock",
- "version": "1.1.2",
- "dependencies": []
- },
- {
- "name": "fake_async",
- "version": "1.3.3",
- "dependencies": [
- "clock",
- "collection"
- ]
- },
- {
- "name": "path",
- "version": "1.9.1",
- "dependencies": []
- },
- {
- "name": "matcher",
- "version": "0.12.18",
- "dependencies": [
- "async",
- "meta",
- "stack_trace",
- "term_glyph",
- "test_api"
- ]
- },
- {
- "name": "test_api",
- "version": "0.7.9",
- "dependencies": [
- "async",
- "boolean_selector",
- "collection",
- "meta",
- "source_span",
- "stack_trace",
- "stream_channel",
- "string_scanner",
- "term_glyph"
- ]
- },
- {
- "name": "logging",
- "version": "1.3.0",
- "dependencies": []
- },
- {
- "name": "flutter_web_plugins",
- "version": "0.0.0",
- "dependencies": [
- "flutter"
- ]
- },
- {
- "name": "state_notifier",
- "version": "1.0.0",
- "dependencies": [
- "meta"
- ]
- },
- {
- "name": "riverpod",
- "version": "3.3.2",
- "dependencies": [
- "async",
- "clock",
- "collection",
- "meta",
- "stack_trace",
- "state_notifier",
- "test",
- "uuid"
- ]
- },
- {
- "name": "sky_engine",
- "version": "0.0.0",
- "dependencies": []
- },
- {
- "name": "material_color_utilities",
- "version": "0.13.0",
- "dependencies": [
- "collection"
- ]
- },
- {
- "name": "characters",
- "version": "1.4.1",
- "dependencies": []
- },
- {
- "name": "async",
- "version": "2.13.1",
- "dependencies": [
- "collection",
- "meta"
- ]
- },
- {
- "name": "leak_tracker_testing",
- "version": "3.0.2",
- "dependencies": [
- "leak_tracker",
- "matcher",
- "meta"
- ]
- },
- {
- "name": "leak_tracker",
- "version": "11.0.2",
- "dependencies": [
- "clock",
- "collection",
- "meta",
- "path",
- "vm_service"
- ]
- },
- {
- "name": "term_glyph",
- "version": "1.2.2",
- "dependencies": []
- },
- {
- "name": "string_scanner",
- "version": "1.4.1",
- "dependencies": [
- "source_span"
- ]
- },
- {
- "name": "source_span",
- "version": "1.10.2",
- "dependencies": [
- "collection",
- "path",
- "term_glyph"
- ]
- },
- {
- "name": "boolean_selector",
- "version": "2.1.2",
- "dependencies": [
- "source_span",
- "string_scanner"
- ]
- },
- {
- "name": "uuid",
- "version": "4.6.0",
- "dependencies": [
- "crypto",
- "fixnum"
- ]
- },
- {
- "name": "test",
- "version": "1.29.0",
- "dependencies": [
- "analyzer",
- "async",
- "boolean_selector",
- "collection",
- "coverage",
- "http_multi_server",
- "io",
- "matcher",
- "node_preamble",
- "package_config",
- "path",
- "pool",
- "shelf",
- "shelf_packages_handler",
- "shelf_static",
- "shelf_web_socket",
- "source_span",
- "stack_trace",
- "stream_channel",
- "test_api",
- "test_core",
- "typed_data",
- "web_socket_channel",
- "webkit_inspection_protocol",
- "yaml"
- ]
- },
- {
- "name": "vm_service",
- "version": "15.2.0",
- "dependencies": []
- },
- {
- "name": "fixnum",
- "version": "1.1.1",
- "dependencies": []
- },
- {
- "name": "crypto",
- "version": "3.0.7",
- "dependencies": [
- "typed_data"
- ]
- },
- {
- "name": "yaml",
- "version": "3.1.3",
- "dependencies": [
- "collection",
- "source_span",
- "string_scanner"
- ]
- },
- {
- "name": "webkit_inspection_protocol",
- "version": "1.2.1",
- "dependencies": [
- "logging"
- ]
- },
- {
- "name": "web_socket_channel",
- "version": "3.0.3",
- "dependencies": [
- "async",
- "crypto",
- "stream_channel",
- "web",
- "web_socket"
- ]
- },
- {
- "name": "typed_data",
- "version": "1.4.0",
- "dependencies": [
- "collection"
- ]
- },
- {
- "name": "test_core",
- "version": "0.6.15",
- "dependencies": [
- "analyzer",
- "args",
- "async",
- "boolean_selector",
- "collection",
- "coverage",
- "frontend_server_client",
- "glob",
- "io",
- "meta",
- "package_config",
- "path",
- "pool",
- "source_map_stack_trace",
- "source_maps",
- "source_span",
- "stack_trace",
- "stream_channel",
- "test_api",
- "vm_service",
- "yaml"
- ]
- },
- {
- "name": "shelf_web_socket",
- "version": "3.0.0",
- "dependencies": [
- "shelf",
- "stream_channel",
- "web_socket_channel"
- ]
- },
- {
- "name": "shelf_static",
- "version": "1.1.3",
- "dependencies": [
- "convert",
- "http_parser",
- "mime",
- "path",
- "shelf"
- ]
- },
- {
- "name": "shelf_packages_handler",
- "version": "3.0.2",
- "dependencies": [
- "path",
- "shelf",
- "shelf_static"
- ]
- },
- {
- "name": "shelf",
- "version": "1.4.2",
- "dependencies": [
- "async",
- "collection",
- "http_parser",
- "path",
- "stack_trace",
- "stream_channel"
- ]
- },
- {
- "name": "pool",
- "version": "1.5.2",
- "dependencies": [
- "async",
- "stack_trace"
- ]
- },
- {
- "name": "package_config",
- "version": "2.2.0",
- "dependencies": [
- "path"
- ]
- },
- {
- "name": "node_preamble",
- "version": "2.0.2",
- "dependencies": []
- },
- {
- "name": "io",
- "version": "1.0.5",
- "dependencies": [
- "meta",
- "path",
- "string_scanner"
- ]
- },
- {
- "name": "http_multi_server",
- "version": "3.2.2",
- "dependencies": [
- "async"
- ]
- },
- {
- "name": "coverage",
- "version": "1.15.1",
- "dependencies": [
- "args",
- "cli_config",
- "glob",
- "logging",
- "meta",
- "package_config",
- "path",
- "source_maps",
- "stack_trace",
- "vm_service",
- "yaml"
- ]
- },
- {
- "name": "analyzer",
- "version": "10.0.1",
- "dependencies": [
- "_fe_analyzer_shared",
- "collection",
- "convert",
- "crypto",
- "glob",
- "meta",
- "package_config",
- "path",
- "pub_semver",
- "source_span",
- "watcher",
- "yaml"
- ]
- },
- {
- "name": "web_socket",
- "version": "1.0.1",
- "dependencies": [
- "web"
- ]
- },
- {
- "name": "web",
- "version": "1.1.1",
- "dependencies": []
- },
- {
- "name": "source_maps",
- "version": "0.10.13",
- "dependencies": [
- "source_span"
- ]
- },
- {
- "name": "source_map_stack_trace",
- "version": "2.1.2",
- "dependencies": [
- "path",
- "source_maps",
- "stack_trace"
- ]
- },
- {
- "name": "glob",
- "version": "2.1.3",
- "dependencies": [
- "async",
- "collection",
- "file",
- "path",
- "string_scanner"
- ]
- },
- {
- "name": "frontend_server_client",
- "version": "4.0.0",
- "dependencies": [
- "async",
- "path"
- ]
- },
- {
- "name": "args",
- "version": "2.7.0",
- "dependencies": []
- },
- {
- "name": "mime",
- "version": "2.0.0",
- "dependencies": []
- },
- {
- "name": "http_parser",
- "version": "4.1.2",
- "dependencies": [
- "collection",
- "source_span",
- "string_scanner",
- "typed_data"
- ]
- },
- {
- "name": "convert",
- "version": "3.1.2",
- "dependencies": [
- "typed_data"
- ]
- },
- {
- "name": "cli_config",
- "version": "0.2.0",
- "dependencies": [
- "args",
- "yaml"
- ]
- },
- {
- "name": "watcher",
- "version": "1.2.1",
- "dependencies": [
- "async",
- "path"
- ]
- },
- {
- "name": "pub_semver",
- "version": "2.2.0",
- "dependencies": [
- "collection"
- ]
- },
- {
- "name": "_fe_analyzer_shared",
- "version": "93.0.0",
- "dependencies": [
- "meta",
- "source_span"
- ]
- },
- {
- "name": "file",
- "version": "7.0.1",
- "dependencies": [
- "meta",
- "path"
- ]
- },
- {
- "name": "flex_seed_scheme",
- "version": "4.0.1",
- "dependencies": [
- "collection",
- "flutter",
- "meta"
- ]
- }
- ],
- "configVersion": 1
-}
\ No newline at end of file
diff --git a/.dart_tool/version b/.dart_tool/version
deleted file mode 100644
index 2624404f..00000000
--- a/.dart_tool/version
+++ /dev/null
@@ -1 +0,0 @@
-3.41.2
\ No newline at end of file
diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml
deleted file mode 100644
index 6b36ee26..00000000
--- a/.idea/libraries/Dart_SDK.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/KotlinJavaRuntime.xml b/.idea/libraries/KotlinJavaRuntime.xml
deleted file mode 100644
index 2b96ac4b..00000000
--- a/.idea/libraries/KotlinJavaRuntime.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index fdbd97d9..00000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/.idea/runConfigurations/main_dart.xml b/.idea/runConfigurations/main_dart.xml
deleted file mode 100644
index aab7b5cd..00000000
--- a/.idea/runConfigurations/main_dart.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
deleted file mode 100644
index 5b3388cc..00000000
--- a/.idea/workspace.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.metadata b/.metadata
deleted file mode 100644
index d31e83a1..00000000
--- a/.metadata
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file tracks properties of this Flutter project.
-# Used by Flutter tool to assess capabilities and perform upgrades etc.
-#
-# This file should be version controlled and should not be manually edited.
-
-version:
- revision: "90673a4eef275d1a6692c26ac80d6d746d41a73a"
- channel: "stable"
-
-project_type: app
-
-# Tracks metadata for the flutter migrate command
-migration:
- platforms:
- - platform: root
- create_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
- base_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
- - platform: android
- create_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
- base_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
- - platform: ios
- create_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
- base_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
-
- # User provided section
-
- # List of Local paths (relative to this file) that should be
- # ignored by the migrate tool.
- #
- # Files that are not part of the templates will be ignored by default.
- unmanaged_files:
- - 'lib/main.dart'
- - 'ios/Runner.xcodeproj/project.pbxproj'
diff --git a/analysis_options.yaml b/analysis_options.yaml
deleted file mode 100644
index 0d290213..00000000
--- a/analysis_options.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file configures the analyzer, which statically analyzes Dart code to
-# check for errors, warnings, and lints.
-#
-# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
-# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
-# invoked from the command line by running `flutter analyze`.
-
-# The following line activates a set of recommended lints for Flutter apps,
-# packages, and plugins designed to encourage good coding practices.
-include: package:flutter_lints/flutter.yaml
-
-linter:
- # The lint rules applied to this project can be customized in the
- # section below to disable rules from the `package:flutter_lints/flutter.yaml`
- # included above or to enable additional rules. A list of all available lints
- # and their documentation is published at https://dart.dev/lints.
- #
- # Instead of disabling a lint rule for the entire project in the
- # section below, it can also be suppressed for a single line of code
- # or a specific dart file by using the `// ignore: name_of_lint` and
- # `// ignore_for_file: name_of_lint` syntax on the line or in the file
- # producing the lint.
- rules:
- # avoid_print: false # Uncomment to disable the `avoid_print` rule
- # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
-
-# Additional information about this file can be found at
-# https://dart.dev/guides/language/analysis-options
diff --git a/android/.gitignore b/android/.gitignore
deleted file mode 100644
index be3943c9..00000000
--- a/android/.gitignore
+++ /dev/null
@@ -1,14 +0,0 @@
-gradle-wrapper.jar
-/.gradle
-/captures/
-/gradlew
-/gradlew.bat
-/local.properties
-GeneratedPluginRegistrant.java
-.cxx/
-
-# Remember to never publicly share your keystore.
-# See https://flutter.dev/to/reference-keystore
-key.properties
-**/*.keystore
-**/*.jks
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
deleted file mode 100644
index e272c333..00000000
--- a/android/app/build.gradle.kts
+++ /dev/null
@@ -1,44 +0,0 @@
-plugins {
- id("com.android.application")
- id("kotlin-android")
- // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
- id("dev.flutter.flutter-gradle-plugin")
-}
-
-android {
- namespace = "com.example.app"
- compileSdk = flutter.compileSdkVersion
- ndkVersion = flutter.ndkVersion
-
- compileOptions {
- sourceCompatibility = JavaVersion.VERSION_17
- targetCompatibility = JavaVersion.VERSION_17
- }
-
- kotlinOptions {
- jvmTarget = JavaVersion.VERSION_17.toString()
- }
-
- defaultConfig {
- // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
- applicationId = "com.example.app"
- // You can update the following values to match your application needs.
- // For more information, see: https://flutter.dev/to/review-gradle-config.
- minSdk = flutter.minSdkVersion
- targetSdk = flutter.targetSdkVersion
- versionCode = flutter.versionCode
- versionName = flutter.versionName
- }
-
- buildTypes {
- release {
- // TODO: Add your own signing config for the release build.
- // Signing with the debug keys for now, so `flutter run --release` works.
- signingConfig = signingConfigs.getByName("debug")
- }
- }
-}
-
-flutter {
- source = "../.."
-}
diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml
deleted file mode 100644
index 399f6981..00000000
--- a/android/app/src/debug/AndroidManifest.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
deleted file mode 100644
index 6ee3df00..00000000
--- a/android/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/android/app/src/main/kotlin/com/example/app/MainActivity.kt b/android/app/src/main/kotlin/com/example/app/MainActivity.kt
deleted file mode 100644
index 4c832cdd..00000000
--- a/android/app/src/main/kotlin/com/example/app/MainActivity.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.example.app
-
-import io.flutter.embedding.android.FlutterActivity
-
-class MainActivity : FlutterActivity()
diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml
deleted file mode 100644
index f74085f3..00000000
--- a/android/app/src/main/res/drawable-v21/launch_background.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml
deleted file mode 100644
index 304732f8..00000000
--- a/android/app/src/main/res/drawable/launch_background.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index db77bb4b7b0906d62b1847e87f15cdcacf6a4f29..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 544
zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G}
zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc
zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs
zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG
zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0
zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~
AQ2+n{
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 442
zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB
zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q0|W-^A&VhjhO+044$%!YxiPI;`p4Q#=k
za-F;6dk-j1J*_nBlG2>3KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l
zytQ?X=U+MF$@3
zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+
yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs
z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM
zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R`
zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM
zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg
zoq1^2_p9@|WEo
z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q&
zrYBH{QP^@Sti!`2)uG{irBBq@y*$B
zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N
zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1031
zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{(
zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_%
zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3
zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc
z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R
zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2
z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b
zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE
z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o
zo~|9I;xof
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 4d6372eebdb28e45604e46eeda8dd24651419bc0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1443
zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY
zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv
za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw
zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3
z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w!
zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u
zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad
z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt*
zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW
zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w
z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf<
zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$
zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v
zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq
z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek
zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+
zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q
zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl
z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f
z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H
zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP
z(1P?z~7YxD~Rf<(a@_y`
diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml
deleted file mode 100644
index 06952be7..00000000
--- a/android/app/src/main/res/values-night/styles.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml
deleted file mode 100644
index cb1ef880..00000000
--- a/android/app/src/main/res/values/styles.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml
deleted file mode 100644
index 399f6981..00000000
--- a/android/app/src/profile/AndroidManifest.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/android/app_android.iml b/android/app_android.iml
deleted file mode 100644
index 3bc4b3b3..00000000
--- a/android/app_android.iml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/android/build.gradle.kts b/android/build.gradle.kts
deleted file mode 100644
index dbee657b..00000000
--- a/android/build.gradle.kts
+++ /dev/null
@@ -1,24 +0,0 @@
-allprojects {
- repositories {
- google()
- mavenCentral()
- }
-}
-
-val newBuildDir: Directory =
- rootProject.layout.buildDirectory
- .dir("../../build")
- .get()
-rootProject.layout.buildDirectory.value(newBuildDir)
-
-subprojects {
- val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
- project.layout.buildDirectory.value(newSubprojectBuildDir)
-}
-subprojects {
- project.evaluationDependsOn(":app")
-}
-
-tasks.register("clean") {
- delete(rootProject.layout.buildDirectory)
-}
diff --git a/android/gradle.properties b/android/gradle.properties
deleted file mode 100644
index fbee1d8c..00000000
--- a/android/gradle.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
-android.useAndroidX=true
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index e4ef43fb..00000000
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip
diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts
deleted file mode 100644
index ca7fe065..00000000
--- a/android/settings.gradle.kts
+++ /dev/null
@@ -1,26 +0,0 @@
-pluginManagement {
- val flutterSdkPath =
- run {
- val properties = java.util.Properties()
- file("local.properties").inputStream().use { properties.load(it) }
- val flutterSdkPath = properties.getProperty("flutter.sdk")
- require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
- flutterSdkPath
- }
-
- includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
-
- repositories {
- google()
- mavenCentral()
- gradlePluginPortal()
- }
-}
-
-plugins {
- id("dev.flutter.flutter-plugin-loader") version "1.0.0"
- id("com.android.application") version "8.11.1" apply false
- id("org.jetbrains.kotlin.android") version "2.2.20" apply false
-}
-
-include(":app")
diff --git a/app.iml b/app.iml
deleted file mode 100644
index f66303d5..00000000
--- a/app.iml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ios/.gitignore b/ios/.gitignore
deleted file mode 100644
index 7a7f9873..00000000
--- a/ios/.gitignore
+++ /dev/null
@@ -1,34 +0,0 @@
-**/dgph
-*.mode1v3
-*.mode2v3
-*.moved-aside
-*.pbxuser
-*.perspectivev3
-**/*sync/
-.sconsign.dblite
-.tags*
-**/.vagrant/
-**/DerivedData/
-Icon?
-**/Pods/
-**/.symlinks/
-profile
-xcuserdata
-**/.generated/
-Flutter/App.framework
-Flutter/Flutter.framework
-Flutter/Flutter.podspec
-Flutter/Generated.xcconfig
-Flutter/ephemeral/
-Flutter/app.flx
-Flutter/app.zip
-Flutter/flutter_assets/
-Flutter/flutter_export_environment.sh
-ServiceDefinitions.json
-Runner/GeneratedPluginRegistrant.*
-
-# Exceptions to above rules.
-!default.mode1v3
-!default.mode2v3
-!default.pbxuser
-!default.perspectivev3
diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist
deleted file mode 100644
index 391a902b..00000000
--- a/ios/Flutter/AppFrameworkInfo.plist
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- App
- CFBundleIdentifier
- io.flutter.flutter.app
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- App
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0
-
-
diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig
deleted file mode 100644
index 592ceee8..00000000
--- a/ios/Flutter/Debug.xcconfig
+++ /dev/null
@@ -1 +0,0 @@
-#include "Generated.xcconfig"
diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig
deleted file mode 100644
index 592ceee8..00000000
--- a/ios/Flutter/Release.xcconfig
+++ /dev/null
@@ -1 +0,0 @@
-#include "Generated.xcconfig"
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
deleted file mode 100644
index ef114cac..00000000
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,620 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 54;
- objects = {
-
-/* Begin PBXBuildFile section */
- 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
- 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
- 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
- 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
- 7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */; };
- 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
- 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
- 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 97C146E61CF9000F007C117D /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 97C146ED1CF9000F007C117D;
- remoteInfo = Runner;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "";
- dstSubfolderSpec = 10;
- files = (
- );
- name = "Embed Frameworks";
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
- 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
- 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
- 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; };
- 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
- 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
- 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
- 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
- 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; };
- 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
- 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
- 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
- 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
- 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
- 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 97C146EB1CF9000F007C117D /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 331C8082294A63A400263BE5 /* RunnerTests */ = {
- isa = PBXGroup;
- children = (
- 331C807B294A618700263BE5 /* RunnerTests.swift */,
- );
- path = RunnerTests;
- sourceTree = "";
- };
- 9740EEB11CF90186004384FC /* Flutter */ = {
- isa = PBXGroup;
- children = (
- 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
- 9740EEB21CF90195004384FC /* Debug.xcconfig */,
- 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
- 9740EEB31CF90195004384FC /* Generated.xcconfig */,
- );
- name = Flutter;
- sourceTree = "";
- };
- 97C146E51CF9000F007C117D = {
- isa = PBXGroup;
- children = (
- 9740EEB11CF90186004384FC /* Flutter */,
- 97C146F01CF9000F007C117D /* Runner */,
- 97C146EF1CF9000F007C117D /* Products */,
- 331C8082294A63A400263BE5 /* RunnerTests */,
- );
- sourceTree = "";
- };
- 97C146EF1CF9000F007C117D /* Products */ = {
- isa = PBXGroup;
- children = (
- 97C146EE1CF9000F007C117D /* Runner.app */,
- 331C8081294A63A400263BE5 /* RunnerTests.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
- 97C146F01CF9000F007C117D /* Runner */ = {
- isa = PBXGroup;
- children = (
- 97C146FA1CF9000F007C117D /* Main.storyboard */,
- 97C146FD1CF9000F007C117D /* Assets.xcassets */,
- 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
- 97C147021CF9000F007C117D /* Info.plist */,
- 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
- 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
- 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
- 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */,
- 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
- );
- path = Runner;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 331C8080294A63A400263BE5 /* RunnerTests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
- buildPhases = (
- 331C807D294A63A400263BE5 /* Sources */,
- 331C807F294A63A400263BE5 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- 331C8086294A63A400263BE5 /* PBXTargetDependency */,
- );
- name = RunnerTests;
- productName = RunnerTests;
- productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
- 97C146ED1CF9000F007C117D /* Runner */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
- buildPhases = (
- 9740EEB61CF901F6004384FC /* Run Script */,
- 97C146EA1CF9000F007C117D /* Sources */,
- 97C146EB1CF9000F007C117D /* Frameworks */,
- 97C146EC1CF9000F007C117D /* Resources */,
- 9705A1C41CF9048500538489 /* Embed Frameworks */,
- 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = Runner;
- productName = Runner;
- productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 97C146E61CF9000F007C117D /* Project object */ = {
- isa = PBXProject;
- attributes = {
- BuildIndependentTargetsInParallel = YES;
- LastUpgradeCheck = 1510;
- ORGANIZATIONNAME = "";
- TargetAttributes = {
- 331C8080294A63A400263BE5 = {
- CreatedOnToolsVersion = 14.0;
- TestTargetID = 97C146ED1CF9000F007C117D;
- };
- 97C146ED1CF9000F007C117D = {
- CreatedOnToolsVersion = 7.3.1;
- LastSwiftMigration = 1100;
- };
- };
- };
- buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
- compatibilityVersion = "Xcode 9.3";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 97C146E51CF9000F007C117D;
- productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 97C146ED1CF9000F007C117D /* Runner */,
- 331C8080294A63A400263BE5 /* RunnerTests */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 331C807F294A63A400263BE5 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 97C146EC1CF9000F007C117D /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
- 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
- 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
- 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
- isa = PBXShellScriptBuildPhase;
- alwaysOutOfDate = 1;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
- );
- name = "Thin Binary";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
- };
- 9740EEB61CF901F6004384FC /* Run Script */ = {
- isa = PBXShellScriptBuildPhase;
- alwaysOutOfDate = 1;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Run Script";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 331C807D294A63A400263BE5 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 97C146EA1CF9000F007C117D /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
- 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
- 7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 331C8086294A63A400263BE5 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 97C146ED1CF9000F007C117D /* Runner */;
- targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
- 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- 97C146FB1CF9000F007C117D /* Base */,
- );
- name = Main.storyboard;
- sourceTree = "";
- };
- 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- 97C147001CF9000F007C117D /* Base */,
- );
- name = LaunchScreen.storyboard;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- 249021D3217E4FDB00AE95B9 /* Profile */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 13.0;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VALIDATE_PRODUCT = YES;
- };
- name = Profile;
- };
- 249021D4217E4FDB00AE95B9 /* Profile */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- ENABLE_BITCODE = NO;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.example.app;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
- SWIFT_VERSION = 5.0;
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Profile;
- };
- 331C8088294A63A400263BE5 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 1;
- GENERATE_INFOPLIST_FILE = YES;
- MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.example.app.RunnerTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
- };
- name = Debug;
- };
- 331C8089294A63A400263BE5 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 1;
- GENERATE_INFOPLIST_FILE = YES;
- MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.example.app.RunnerTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
- };
- name = Release;
- };
- 331C808A294A63A400263BE5 /* Profile */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 1;
- GENERATE_INFOPLIST_FILE = YES;
- MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.example.app.RunnerTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
- };
- name = Profile;
- };
- 97C147031CF9000F007C117D /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 13.0;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Debug;
- };
- 97C147041CF9000F007C117D /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 13.0;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = iphoneos;
- SWIFT_COMPILATION_MODE = wholemodule;
- SWIFT_OPTIMIZATION_LEVEL = "-O";
- TARGETED_DEVICE_FAMILY = "1,2";
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- 97C147061CF9000F007C117D /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- ENABLE_BITCODE = NO;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.example.app;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 5.0;
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Debug;
- };
- 97C147071CF9000F007C117D /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- ENABLE_BITCODE = NO;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.example.app;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
- SWIFT_VERSION = 5.0;
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 331C8088294A63A400263BE5 /* Debug */,
- 331C8089294A63A400263BE5 /* Release */,
- 331C808A294A63A400263BE5 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 97C147031CF9000F007C117D /* Debug */,
- 97C147041CF9000F007C117D /* Release */,
- 249021D3217E4FDB00AE95B9 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 97C147061CF9000F007C117D /* Debug */,
- 97C147071CF9000F007C117D /* Release */,
- 249021D4217E4FDB00AE95B9 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 97C146E61CF9000F007C117D /* Project object */;
-}
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a6..00000000
--- a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d98100..00000000
--- a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
deleted file mode 100644
index f9b0d7c5..00000000
--- a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- PreviewsEnabled
-
-
-
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
deleted file mode 100644
index e3773d42..00000000
--- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 1d526a16..00000000
--- a/ios/Runner.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d98100..00000000
--- a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
deleted file mode 100644
index f9b0d7c5..00000000
--- a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- PreviewsEnabled
-
-
-
diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift
deleted file mode 100644
index c30b367e..00000000
--- a/ios/Runner/AppDelegate.swift
+++ /dev/null
@@ -1,16 +0,0 @@
-import Flutter
-import UIKit
-
-@main
-@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
- override func application(
- _ application: UIApplication,
- didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
- ) -> Bool {
- return super.application(application, didFinishLaunchingWithOptions: launchOptions)
- }
-
- func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
- GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
- }
-}
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index d36b1fab..00000000
--- a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,122 +0,0 @@
-{
- "images" : [
- {
- "size" : "20x20",
- "idiom" : "iphone",
- "filename" : "Icon-App-20x20@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "20x20",
- "idiom" : "iphone",
- "filename" : "Icon-App-20x20@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-App-40x40@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-App-40x40@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-App-60x60@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-App-60x60@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "20x20",
- "idiom" : "ipad",
- "filename" : "Icon-App-20x20@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "20x20",
- "idiom" : "ipad",
- "filename" : "Icon-App-20x20@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "29x29",
- "idiom" : "ipad",
- "filename" : "Icon-App-29x29@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "ipad",
- "filename" : "Icon-App-29x29@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "ipad",
- "filename" : "Icon-App-40x40@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "40x40",
- "idiom" : "ipad",
- "filename" : "Icon-App-40x40@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "76x76",
- "idiom" : "ipad",
- "filename" : "Icon-App-76x76@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "76x76",
- "idiom" : "ipad",
- "filename" : "Icon-App-76x76@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "83.5x83.5",
- "idiom" : "ipad",
- "filename" : "Icon-App-83.5x83.5@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "1024x1024",
- "idiom" : "ios-marketing",
- "filename" : "Icon-App-1024x1024@1x.png",
- "scale" : "1x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
deleted file mode 100644
index dc9ada4725e9b0ddb1deab583e5b5102493aa332..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 10932
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
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
deleted file mode 100644
index 797d452e458972bab9d994556c8305db4c827017..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 406
zcmV;H0crk;P))>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN
zo!X
zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY
zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW
z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx
ACIA2c
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
deleted file mode 100644
index 6ed2d933e1120817fe9182483a228007b18ab6ae..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 450
zcmV;z0X_bSP)iGWQ_5NJQ_~rNh*z)}eT%KUb
z`7gNk0#AwF^#0T0?hIa^`~Ck;!}#m+_uT050aTR(J!bU#|IzRL%^UsMS#KsYnTF*!YeDOytlP4VhV?b}
z%rz_<=#CPc)tU1MZTq~*2=8~iZ!lSa<{9b@2Jl;?IEV8)=fG217*|@)CCYgFze-x?
zIFODUIA>nWKpE+bn~n7;-89sa>#DR>TSlqWk*!2hSN6D~Qb#VqbP~4Fk&m`@1$JGr
zXPIdeRE&b2Thd#{MtDK$px*d3-Wx``>!oimf%|A-&-q*6KAH)e$3|6JV%HX{Hig)k
suLT-RhftRq8b9;(V=235Wa|I=027H2wCDra;{X5v07*qoM6N<$f;9x^2LJ#7
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
deleted file mode 100644
index 4cd7b0099ca80c806f8fe495613e8d6c69460d76..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 282
zcmV+#0p(^bcu7P-R4C8Q
z&e;xxFbF_Vrezo%_kH*OKhshZ6BFpG-Y1e10`QXJKbND7AMQ&cMj