This commit is contained in:
		@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					import 'package:f0ckapp/services/Api.dart';
 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
import 'package:cached_network_image/cached_network_image.dart';
 | 
					import 'package:cached_network_image/cached_network_image.dart';
 | 
				
			||||||
import 'package:provider/provider.dart';
 | 
					import 'package:provider/provider.dart';
 | 
				
			||||||
@@ -44,6 +45,9 @@ class _MediaGridState extends State<MediaGrid> {
 | 
				
			|||||||
    final provider = Provider.of<MediaProvider>(context);
 | 
					    final provider = Provider.of<MediaProvider>(context);
 | 
				
			||||||
    final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
 | 
					    final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    final TextEditingController _usernameController = TextEditingController();
 | 
				
			||||||
 | 
					    final TextEditingController _passwordController = TextEditingController();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return Scaffold(
 | 
					    return Scaffold(
 | 
				
			||||||
      key: scaffoldKey,
 | 
					      key: scaffoldKey,
 | 
				
			||||||
      appBar: AppBar(
 | 
					      appBar: AppBar(
 | 
				
			||||||
@@ -129,6 +133,53 @@ class _MediaGridState extends State<MediaGrid> {
 | 
				
			|||||||
              ),
 | 
					              ),
 | 
				
			||||||
              child: null,
 | 
					              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(
 | 
					            ListTile(
 | 
				
			||||||
              title: Text('v${AppVersion.version}'),
 | 
					              title: Text('v${AppVersion.version}'),
 | 
				
			||||||
              onTap: () {
 | 
					              onTap: () {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,11 @@
 | 
				
			|||||||
import 'dart:convert';
 | 
					import 'dart:convert';
 | 
				
			||||||
import 'package:http/http.dart' as http;
 | 
					import 'package:http/http.dart' as http;
 | 
				
			||||||
 | 
					import 'package:flutter_secure_storage/flutter_secure_storage.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:f0ckapp/models/MediaItem.dart';
 | 
					import 'package:f0ckapp/models/MediaItem.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final storage = FlutterSecureStorage();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Future<List<MediaItem>> fetchMedia({
 | 
					Future<List<MediaItem>> fetchMedia({
 | 
				
			||||||
  int? older,
 | 
					  int? older,
 | 
				
			||||||
  String? type,
 | 
					  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;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -6,9 +6,13 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "generated_plugin_registrant.h"
 | 
					#include "generated_plugin_registrant.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h>
 | 
				
			||||||
#include <url_launcher_linux/url_launcher_plugin.h>
 | 
					#include <url_launcher_linux/url_launcher_plugin.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void fl_register_plugins(FlPluginRegistry* registry) {
 | 
					void fl_register_plugins(FlPluginRegistry* registry) {
 | 
				
			||||||
 | 
					  g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar =
 | 
				
			||||||
 | 
					      fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin");
 | 
				
			||||||
 | 
					  flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar);
 | 
				
			||||||
  g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
 | 
					  g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
 | 
				
			||||||
      fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
 | 
					      fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
 | 
				
			||||||
  url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
 | 
					  url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
list(APPEND FLUTTER_PLUGIN_LIST
 | 
					list(APPEND FLUTTER_PLUGIN_LIST
 | 
				
			||||||
 | 
					  flutter_secure_storage_linux
 | 
				
			||||||
  url_launcher_linux
 | 
					  url_launcher_linux
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,7 @@
 | 
				
			|||||||
import FlutterMacOS
 | 
					import FlutterMacOS
 | 
				
			||||||
import Foundation
 | 
					import Foundation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import flutter_secure_storage_macos
 | 
				
			||||||
import package_info_plus
 | 
					import package_info_plus
 | 
				
			||||||
import path_provider_foundation
 | 
					import path_provider_foundation
 | 
				
			||||||
import share_plus
 | 
					import share_plus
 | 
				
			||||||
@@ -12,6 +13,7 @@ import sqflite_darwin
 | 
				
			|||||||
import video_player_avfoundation
 | 
					import video_player_avfoundation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
 | 
					func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
 | 
				
			||||||
 | 
					  FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
 | 
				
			||||||
  FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
 | 
					  FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
 | 
				
			||||||
  PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
 | 
					  PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
 | 
				
			||||||
  SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
 | 
					  SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										56
									
								
								pubspec.lock
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								pubspec.lock
									
									
									
									
									
								
							@@ -158,6 +158,54 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "6.0.0"
 | 
					    version: "6.0.0"
 | 
				
			||||||
 | 
					  flutter_secure_storage:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_secure_storage
 | 
				
			||||||
 | 
					      sha256: "9cad52d75ebc511adfae3d447d5d13da15a55a92c9410e50f67335b6d21d16ea"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "9.2.4"
 | 
				
			||||||
 | 
					  flutter_secure_storage_linux:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_secure_storage_linux
 | 
				
			||||||
 | 
					      sha256: be76c1d24a97d0b98f8b54bce6b481a380a6590df992d0098f868ad54dc8f688
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.2.3"
 | 
				
			||||||
 | 
					  flutter_secure_storage_macos:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_secure_storage_macos
 | 
				
			||||||
 | 
					      sha256: "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "3.1.3"
 | 
				
			||||||
 | 
					  flutter_secure_storage_platform_interface:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_secure_storage_platform_interface
 | 
				
			||||||
 | 
					      sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.1.2"
 | 
				
			||||||
 | 
					  flutter_secure_storage_web:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_secure_storage_web
 | 
				
			||||||
 | 
					      sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.2.1"
 | 
				
			||||||
 | 
					  flutter_secure_storage_windows:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_secure_storage_windows
 | 
				
			||||||
 | 
					      sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "3.1.2"
 | 
				
			||||||
  flutter_test:
 | 
					  flutter_test:
 | 
				
			||||||
    dependency: "direct dev"
 | 
					    dependency: "direct dev"
 | 
				
			||||||
    description: flutter
 | 
					    description: flutter
 | 
				
			||||||
@@ -208,6 +256,14 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "4.1.2"
 | 
					    version: "4.1.2"
 | 
				
			||||||
 | 
					  js:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: js
 | 
				
			||||||
 | 
					      sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.6.7"
 | 
				
			||||||
  leak_tracker:
 | 
					  leak_tracker:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 | 
				
			|||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
 | 
					# 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
 | 
					# 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.
 | 
					# of the product and file versions while build-number is used as the build suffix.
 | 
				
			||||||
version: 1.1.1+31
 | 
					version: 1.1.1+32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
environment:
 | 
					environment:
 | 
				
			||||||
  sdk: ^3.9.0-100.2.beta
 | 
					  sdk: ^3.9.0-100.2.beta
 | 
				
			||||||
@@ -40,6 +40,7 @@ dependencies:
 | 
				
			|||||||
  provider: ^6.1.5
 | 
					  provider: ^6.1.5
 | 
				
			||||||
  package_info_plus: ^8.3.0
 | 
					  package_info_plus: ^8.3.0
 | 
				
			||||||
  share_plus: ^11.0.0
 | 
					  share_plus: ^11.0.0
 | 
				
			||||||
 | 
					  flutter_secure_storage: ^9.2.4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dev_dependencies:
 | 
					dev_dependencies:
 | 
				
			||||||
  flutter_test:
 | 
					  flutter_test:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,10 +6,13 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "generated_plugin_registrant.h"
 | 
					#include "generated_plugin_registrant.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
 | 
				
			||||||
#include <share_plus/share_plus_windows_plugin_c_api.h>
 | 
					#include <share_plus/share_plus_windows_plugin_c_api.h>
 | 
				
			||||||
#include <url_launcher_windows/url_launcher_windows.h>
 | 
					#include <url_launcher_windows/url_launcher_windows.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
 | 
					void RegisterPlugins(flutter::PluginRegistry* registry) {
 | 
				
			||||||
 | 
					  FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
 | 
				
			||||||
 | 
					      registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
 | 
				
			||||||
  SharePlusWindowsPluginCApiRegisterWithRegistrar(
 | 
					  SharePlusWindowsPluginCApiRegisterWithRegistrar(
 | 
				
			||||||
      registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi"));
 | 
					      registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi"));
 | 
				
			||||||
  UrlLauncherWindowsRegisterWithRegistrar(
 | 
					  UrlLauncherWindowsRegisterWithRegistrar(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
list(APPEND FLUTTER_PLUGIN_LIST
 | 
					list(APPEND FLUTTER_PLUGIN_LIST
 | 
				
			||||||
 | 
					  flutter_secure_storage_windows
 | 
				
			||||||
  share_plus
 | 
					  share_plus
 | 
				
			||||||
  url_launcher_windows
 | 
					  url_launcher_windows
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user