ugly login page and dbhelper

This commit is contained in:
SomnusVeritas
2023-10-20 17:26:56 +02:00
parent 9bc3a8366a
commit 1148d79279
5 changed files with 84 additions and 3 deletions

View File

@@ -1,11 +1,13 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'pages/login_page.dart';
void main() { void main() {
runApp(const MyApp()); runApp(const Application());
} }
class MyApp extends StatelessWidget { class Application extends StatelessWidget {
const MyApp({super.key}); const Application({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -15,6 +17,7 @@ class MyApp extends StatelessWidget {
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true, useMaterial3: true,
), ),
home: const LoginPage(),
); );
} }
} }

34
lib/pages/login_page.dart Normal file
View File

@@ -0,0 +1,34 @@
import 'package:flutter/material.dart';
import '../services/db_helper.dart';
class LoginPage extends StatelessWidget {
const LoginPage({super.key});
@override
Widget build(BuildContext context) {
TextEditingController username = TextEditingController();
return Scaffold(
body: Center(
child: Column(
children: [
TextField(
controller: username,
decoration: const InputDecoration(
label: Text('Username'),
),
),
TextButton(
onPressed: () => DbHelper.login(username.text),
child: const Text('Login'),
),
TextButton(
onPressed: () => DbHelper.logout(),
child: const Text('Logout'),
)
],
),
),
);
}
}

View File

@@ -0,0 +1,27 @@
import 'package:shared_preferences/shared_preferences.dart';
class DbHelper {
static Future<SharedPreferences> get _prefs async =>
SharedPreferences.getInstance();
static void login(String username) async {
final prefs = await _prefs;
final String? savedUsername = prefs.getString('username');
if (savedUsername == null) {
await prefs.setString('username', username);
// TODO create new account
} else if (savedUsername == username) {
// TODO log into database
} else {
// TODO wrong username
}
}
static void logout() async {
final prefs = await _prefs;
bool success = await prefs.remove('username');
//TODO log out on database
}
}

View File

@@ -128,6 +128,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.1" version: "1.9.1"
nested:
dependency: transitive
description:
name: nested
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
path: path:
dependency: transitive dependency: transitive
description: description:
@@ -176,6 +184,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.6" version: "2.1.6"
provider:
dependency: "direct main"
description:
name: provider
sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f
url: "https://pub.dev"
source: hosted
version: "6.0.5"
shared_preferences: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:

View File

@@ -13,6 +13,7 @@ dependencies:
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
shared_preferences: ^2.2.2 shared_preferences: ^2.2.2
provider: ^6.0.5
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: