PIN PUUUUUSH

Zhe Pin lautet:
091142069 (very common pin, dont ask why)
This commit is contained in:
Ali
2025-01-24 15:18:13 +01:00
parent 3fe6ac8433
commit bbb9f8ef51
5 changed files with 149 additions and 18 deletions
+8 -11
View File
@@ -8,25 +8,22 @@ import 'package:mensaapp/providers/serviceProvider.dart';
import 'package:mensaapp/providers/spaceProvider.dart';
import 'package:mensaapp/providers/spezielleErnaehrungProvider.dart';
import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'dart:async';
import 'package:supabase_flutter/supabase_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
var prefs = await SharedPreferences.getInstance();
print(prefs.getString('supabase-ip'));
var backendIp = prefs.getString('supabase-ip');
if (backendIp != ''){
await Supabase.initialize(
url: "http://192.168.2.229:8000",
anonKey: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE",
url: "http://$backendIp:8000",
anonKey: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE",
);
var supabase = Supabase.instance.client;
/*
var test = await supabase.from('flutter').insert(
{"rating": {"huhu" : "Fuuuuck uuuuuu if this works"}}
);
*/
}
runApp(const MyApp());
}
+1 -1
View File
@@ -145,7 +145,7 @@ class DatabaseService {
},
style: ElevatedButton.styleFrom(
backgroundColor: Theme.of(context).colorScheme.secondary),
child: Text("Abbrechen"),
child: Text("Überarbeiten"),
),
ElevatedButton(
onPressed: allUnrated
+131 -6
View File
@@ -3,7 +3,7 @@ import 'package:google_nav_bar/google_nav_bar.dart';
import 'package:mensaapp/modules/databaseService.dart';
import 'package:mensaapp/providers/spaceProvider.dart';
import 'package:provider/provider.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
import '../providers/ambienteProvider.dart';
import '../providers/anmerkungProvider.dart';
import '../providers/essenProvider.dart';
@@ -11,6 +11,9 @@ import '../providers/languageProvider.dart';
import '../providers/pageProvider.dart';
import '../providers/serviceProvider.dart';
import '../providers/spezielleErnaehrungProvider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:restart_app/restart_app.dart';
class SpaceRate extends StatelessWidget {
const SpaceRate({super.key});
@@ -80,20 +83,142 @@ class SpaceRate extends StatelessWidget {
);
}
void change_backend_ip(BuildContext context) {
final TextEditingController _ipController = TextEditingController();
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20),
),
title: Text("Backend-IP ändern"),
content: TextField(
controller: _ipController,
keyboardType: TextInputType.numberWithOptions(decimal: true), // IP-Format unterstützen
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'Neue Backend-IP (z. B. 192.168.1.1)',
),
),
actions: [
ElevatedButton(
onPressed: () async {
final newIp = _ipController.text;
if (newIp.isEmpty) {
// Falls das Feld leer ist, gib eine Warnung aus
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text("Die IP-Adresse darf nicht leer sein!")),
);
return;
}
// Speichere die neue IP in den Shared Preferences
final prefs = await SharedPreferences.getInstance();
await prefs.setString('supabase-ip', newIp);
// Hole die neue IP und initialisiere die Supabase-Verbindung neu
Restart.restartApp();
},
style: ElevatedButton.styleFrom(
backgroundColor: Theme.of(context).colorScheme.secondary,
),
child: Text("IP Ändern"),
),
ElevatedButton(
onPressed: () {
Navigator.of(context).pop(); // Dialog schließen
},
style: ElevatedButton.styleFrom(
backgroundColor: Theme.of(context).colorScheme.secondary,
),
child: Text("Abbrechen"),
),
],
);
},
);
}
void enter_pin(BuildContext context) {
showDialog(
context: context,
builder: (BuildContext context) {
final TextEditingController _pinController = TextEditingController();
return AlertDialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20),
),
content: TextField(
controller: _pinController,
obscureText: true, // PIN als Passwort maskieren
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'PIN',
counterText: '', // Entfernt die Zeichenanzahl-Anzeige
),
),
actions: [
ElevatedButton(
onPressed: () {
if (_pinController.text == '091142069') {
// Wenn die PIN korrekt ist
Navigator.of(context).pop(); // Dialog schließen
change_backend_ip(context); // Aktion ausführen
} else {
// Wenn die PIN falsch ist, Fehler anzeigen
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text("Falsche PIN!"),
backgroundColor: Colors.red,
),
);
}
},
style: ElevatedButton.styleFrom(
backgroundColor: Theme.of(context).colorScheme.secondary,
),
child: Text("Absenden"),
),
ElevatedButton(
onPressed: () {
Navigator.of(context).pop(); // Schließt den Dialog
},
style: ElevatedButton.styleFrom(
backgroundColor: Theme.of(context).colorScheme.secondary,
),
child: Text("Schließen"),
),
],
);
},
);
}
@override
Widget build(BuildContext context) {
return Consumer<LanguageProvider>(builder: (context, languageProvider, x) {
return Scaffold(
appBar: AppBar(
leading: IconButton(
icon: Icon(
leading: GestureDetector(
onTap: () {
_showDeleteDialog(context); // Kurzer Klick
},
onLongPress: () async {
await Future.delayed(Duration(seconds: 5));
enter_pin(context); // Langer Klick
},
child: Icon(
Icons.home_rounded,
size: 36,
color: Theme.of(context).colorScheme.onPrimary,
),
onPressed: () {
_showDeleteDialog(context);
},
),
title: Consumer<PageProvider>(
// Consumer verwenden, um den dynamischen Titel anzuzeigen
+8
View File
@@ -384,6 +384,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.4.0"
restart_app:
dependency: "direct main"
description:
name: restart_app
sha256: "00d5ec3e9de871cedbe552fc41e615b042b5ec654385e090e0983f6d02f655ed"
url: "https://pub.dev"
source: hosted
version: "1.3.2"
retry:
dependency: transitive
description:
+1
View File
@@ -37,6 +37,7 @@ dependencies:
shared_preferences: ^2.3.3
xml: ^6.5.0
supabase_flutter: ^2.8.1
restart_app: ^1.3.2
# The following adds the Cupertino Icons font to your application.