This commit is contained in:
		@@ -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: () {
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user