v1.1.1+32
All checks were successful
Flutter Schmutter / build (push) Successful in 6m13s

This commit is contained in:
2025-06-06 19:26:53 +02:00
parent f083fc8e8f
commit 8e9f0eb1b8
9 changed files with 141 additions and 1 deletions

View File

@ -1,3 +1,4 @@
import 'package:f0ckapp/services/Api.dart';
import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:provider/provider.dart';
@ -44,6 +45,9 @@ class _MediaGridState extends State<MediaGrid> {
final provider = Provider.of<MediaProvider>(context);
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
final TextEditingController _usernameController = TextEditingController();
final TextEditingController _passwordController = TextEditingController();
return Scaffold(
key: scaffoldKey,
appBar: AppBar(
@ -129,6 +133,53 @@ class _MediaGridState extends State<MediaGrid> {
),
child: null,
),
ExpansionTile(
title: Text('Login'),
children: [
Padding(
padding: EdgeInsets.all(16.0),
child: Column(
children: [
TextField(
readOnly: true,
controller: _usernameController,
decoration: InputDecoration(labelText: 'Benutzername'),
),
SizedBox(height: 10),
TextField(
readOnly: true,
controller: _passwordController,
obscureText: true,
decoration: InputDecoration(labelText: 'Passwort'),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () async {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text("noch nicht implementiert lol"),
),
);
/*final success = await login(
_usernameController.text,
_passwordController.text,
);
if (success) {
Navigator.pop(context);
} else {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text("Login fehlgeschlagen!")),
);
}*/
},
child: Text('Login'),
),
],
),
),
],
),
ListTile(
title: Text('v${AppVersion.version}'),
onTap: () {

View File

@ -1,8 +1,11 @@
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:f0ckapp/models/MediaItem.dart';
final storage = FlutterSecureStorage();
Future<List<MediaItem>> fetchMedia({
int? older,
String? type,
@ -43,3 +46,21 @@ Future<MediaItem> fetchMediaDetail(int itemId) async {
);
}
}
Future<bool> login(String username, String password) async {
final response = await http.post(
Uri.parse('https://api.f0ck.me/login'),
body: {'username': username, 'password': password},
);
if (response.statusCode == 200) {
final data = jsonDecode(response.body);
final token = data['token'];
await storage.write(key: "token", value: token);
return true;
} else {
return false;
}
}