ugly login page and dbhelper
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'pages/login_page.dart';
|
||||
|
||||
void main() {
|
||||
runApp(const MyApp());
|
||||
runApp(const Application());
|
||||
}
|
||||
|
||||
class MyApp extends StatelessWidget {
|
||||
const MyApp({super.key});
|
||||
class Application extends StatelessWidget {
|
||||
const Application({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -15,6 +17,7 @@ class MyApp extends StatelessWidget {
|
||||
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
|
||||
useMaterial3: true,
|
||||
),
|
||||
home: const LoginPage(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
34
lib/pages/login_page.dart
Normal file
34
lib/pages/login_page.dart
Normal 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'),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
27
lib/services/db_helper.dart
Normal file
27
lib/services/db_helper.dart
Normal 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
|
||||
}
|
||||
}
|
||||
16
pubspec.lock
16
pubspec.lock
@@ -128,6 +128,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.1"
|
||||
nested:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: nested
|
||||
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -176,6 +184,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
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:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
||||
@@ -13,6 +13,7 @@ dependencies:
|
||||
|
||||
cupertino_icons: ^1.0.2
|
||||
shared_preferences: ^2.2.2
|
||||
provider: ^6.0.5
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
Reference in New Issue
Block a user