v1.1.7+37
All checks were successful
Flutter Schmutter / build (push) Successful in 3m44s

- worst update eu west
This commit is contained in:
2025-06-08 17:16:10 +02:00
parent f7777821fd
commit 346e447d5e
9 changed files with 183 additions and 18 deletions

View File

@ -102,6 +102,12 @@ class _DetailViewState extends ConsumerState<DetailView> {
centerTitle: true,
title: Text('f0ck #${mediaState.mediaItems[_currentIndex].id}'),
actions: [
IconButton(
icon: Icon(Icons.fullscreen),
onPressed: () {
// wip
},
),
IconButton(
icon: Icon(Icons.download),
onPressed: () {

View File

@ -1,18 +1,21 @@
import 'package:flutter/material.dart';
import 'package:app_links/app_links.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:f0ckapp/screens/DetailView.dart';
import 'package:f0ckapp/providers/MediaProvider.dart';
import 'package:f0ckapp/utils/AppVersion.dart';
import 'package:f0ckapp/utils/ParseDeepLink.dart';
import 'package:f0ckapp/providers/ThemeProvider.dart';
const List<String> mediaTypes = ["alles", "image", "video", "audio"];
const List<String> mediaModes = ["sfw", "nsfw", "untagged", "all"];
class MediaGrid extends ConsumerStatefulWidget {
const MediaGrid({super.key});
final Uri? initialUri = null;
const MediaGrid({super.key, required initialUri});
@override
ConsumerState<MediaGrid> createState() => _MediaGridState();
@ -25,6 +28,8 @@ class _MediaGridState extends ConsumerState<MediaGrid> {
final TextEditingController _usernameController = TextEditingController();
final TextEditingController _passwordController = TextEditingController();
final appLinks = AppLinks();
int _calculateCrossAxisCount(BuildContext context, int defaultCount) {
return defaultCount == 0
? (MediaQuery.of(context).size.width / 110).clamp(3, 5).toInt()
@ -43,6 +48,23 @@ class _MediaGridState extends ConsumerState<MediaGrid> {
ref.read(mediaProvider.notifier).loadMedia();
}
});
appLinks.uriLinkStream.listen((Uri uri) async {
final parsedResult = parseDeepLink(uri);
if (parsedResult == null) return;
if (parsedResult['route'] != 'complex') return;
final params = parsedResult['params'] as Map<String, String>;
await handleComplexDeepLink(params, context, ref, _scrollController);
});
//print('initial: ${parseDeepLink(widget.initialUri)}');
Future.microtask(() async {
final initparsedResult = parseDeepLink(widget.initialUri);
if (initparsedResult == null) return;
if (initparsedResult['route'] != 'complex') return;
final initparams = initparsedResult['params'] as Map<String, String>;
await handleComplexDeepLink(initparams, context, ref, _scrollController);
});
}
@override