v1.3.2+58
All checks were successful
Flutter Schmutter / build (push) Successful in 3m50s

This commit is contained in:
2025-06-16 19:10:00 +02:00
parent e9107a7f62
commit 089fe1f8df
12 changed files with 179 additions and 22 deletions

View File

@ -1,7 +1,5 @@
import 'dart:io';
import 'package:f0ckapp/utils/animatedtransition.dart';
import 'package:f0ckapp/utils/smartrefreshindicator.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@ -10,6 +8,8 @@ import 'package:get/get.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:share_plus/share_plus.dart';
import 'package:f0ckapp/utils/animatedtransition.dart';
import 'package:f0ckapp/utils/smartrefreshindicator.dart';
import 'package:f0ckapp/controller/media_controller.dart';
import 'package:f0ckapp/models/media_item.dart';
import 'package:f0ckapp/screens/media_grid.dart';
@ -151,7 +151,11 @@ class _DetailViewState extends State<DetailView> {
title: Text('f0ck #${currentItem.id.toString()}'),
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () => Get.back(),
onPressed: () {
Navigator.canPop(context)
? Get.back()
: Get.offAllNamed('/');
}
),
actions: [
IconButton(

View File

@ -1,10 +1,11 @@
import 'package:f0ckapp/utils/animatedtransition.dart';
import 'package:flutter/material.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:get/get.dart';
import 'package:f0ckapp/controller/media_controller.dart';
import 'package:f0ckapp/controller/localization_controller.dart';
import 'package:f0ckapp/utils/animatedtransition.dart';
class SettingsPage extends StatefulWidget {
const SettingsPage({super.key});
@ -14,7 +15,8 @@ class SettingsPage extends StatefulWidget {
}
class _SettingsPageState extends State<SettingsPage> {
final MediaController controller = Get.find<MediaController>();
final MediaController controller = Get.find();
final LocalizationController localizationController = Get.find();
@override
Widget build(BuildContext context) {
@ -24,12 +26,12 @@ class _SettingsPageState extends State<SettingsPage> {
SliverAppBar(
floating: false,
pinned: true,
title: const Text('Settings'),
title: Text('settings_title'.tr),
),
SliverList(
delegate: SliverChildListDelegate([
ListTile(
title: const Text("Spaltenanzahl"),
title: Text('settings_numberofcolumns_title'.tr),
trailing: Obx(
() => DropdownButton<int>(
value: controller.crossAxisCount.value,
@ -38,7 +40,13 @@ class _SettingsPageState extends State<SettingsPage> {
items: [0, 3, 4, 5].map((int value) {
return DropdownMenuItem<int>(
value: value,
child: Text(value == 0 ? 'auto' : '$value Spalten'),
child: Text(
value == 0
? 'auto'
: 'settings_numberofcolumns_columns'.trParams({
'count': value.toString(),
}),
),
);
}).toList(),
onChanged: (int? newValue) async {
@ -52,7 +60,7 @@ class _SettingsPageState extends State<SettingsPage> {
),
const Divider(),
ListTile(
title: const Text("Seitenwechselanimation"),
title: Text('settings_pageanimation_title'.tr),
trailing: Obx(
() => DropdownButton<PageTransition>(
value: controller.transitionType.value,
@ -94,10 +102,8 @@ class _SettingsPageState extends State<SettingsPage> {
const Divider(),
SwitchListTile(
title: const Text("Drawer per Geste öffnen"),
subtitle: const Text(
"Wähle, ob der Drawer mit einer Wischgeste geschlossen/ geöffnet werden kann.",
),
title: Text('settings_drawer_title'.tr),
subtitle: Text('settings_drawer_subtitle'.tr),
value: controller.drawerSwipeEnabled.value,
onChanged: (bool value) async {
await controller.setDrawerSwipeEnabled(value);
@ -106,17 +112,50 @@ class _SettingsPageState extends State<SettingsPage> {
),
const Divider(),
ListTile(
title: Text("Cache löschen"),
title: Text('settings_language'.tr),
trailing: Obx(
() => DropdownButton<Locale>(
value: localizationController.currentLocale.value,
dropdownColor: const Color.fromARGB(255, 43, 43, 43),
iconEnabledColor: Colors.white,
items: const [
DropdownMenuItem<Locale>(
value: Locale('en', 'US'),
child: Text('English'),
),
DropdownMenuItem<Locale>(
value: Locale('de', 'DE'),
child: Text('Deutsch'),
),
DropdownMenuItem<Locale>(
value: Locale('fr', 'FR'),
child: Text('Français'),
),
DropdownMenuItem<Locale>(
value: Locale('nl', 'NL'),
child: Text('Nederlands'),
),
],
onChanged: (Locale? newLocale) async {
if (newLocale != null) {
await localizationController.changeLocale(newLocale);
}
},
),
),
),
const Divider(),
ListTile(
title: Text('settings_cache_title'.tr),
trailing: ElevatedButton(
onPressed: () async {
await DefaultCacheManager().emptyCache();
if (!mounted) return;
Get.snackbar('', 'der Cache wurde geleert.');
},
child: const Text("Löschen"),
child: Text('settings_cache_clear_button'.tr),
),
),
const SizedBox(height: 20),
]),
),
],