From 1cd10b380950287d0df7f92a027e516d2d924d75 Mon Sep 17 00:00:00 2001 From: Flummi Date: Sat, 7 Jun 2025 20:32:24 +0200 Subject: [PATCH] v1.1.5+35 - overlay buttons - encrypted storage - downloadbutton (wip) --- lib/providers/ThemeProvider.dart | 6 +++++- lib/screens/DetailView.dart | 4 ++-- lib/widgets/VideoOverlay.dart | 29 +++++++++++++++++++++++++++-- pubspec.yaml | 2 +- 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/lib/providers/ThemeProvider.dart b/lib/providers/ThemeProvider.dart index 7dd2d51..9f78521 100644 --- a/lib/providers/ThemeProvider.dart +++ b/lib/providers/ThemeProvider.dart @@ -34,7 +34,11 @@ class ThemeNotifier extends StateNotifier { final themeNotifierProvider = StateNotifierProvider(( ref, ) { - return ThemeNotifier(secureStorage: FlutterSecureStorage()); + return ThemeNotifier( + secureStorage: FlutterSecureStorage( + aOptions: AndroidOptions(encryptedSharedPreferences: true), + ), + ); }); class CustomTheme { diff --git a/lib/screens/DetailView.dart b/lib/screens/DetailView.dart index 39ffebe..980f243 100644 --- a/lib/screens/DetailView.dart +++ b/lib/screens/DetailView.dart @@ -106,9 +106,9 @@ class _DetailViewState extends ConsumerState { title: Text('f0ck #${mediaState.mediaItems[_currentIndex].id}'), actions: [ IconButton( - icon: Icon(mediaState.muted ? Icons.volume_off : Icons.volume_up), + icon: Icon(Icons.download), onPressed: () { - mediaNotifier.toggleMute(); + // wip }, ), PopupMenuButton( diff --git a/lib/widgets/VideoOverlay.dart b/lib/widgets/VideoOverlay.dart index 88446ff..4c02751 100644 --- a/lib/widgets/VideoOverlay.dart +++ b/lib/widgets/VideoOverlay.dart @@ -1,8 +1,11 @@ import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:cached_video_player_plus/cached_video_player_plus.dart'; -class VideoControlsOverlay extends StatelessWidget { +import 'package:f0ckapp/providers/MediaProvider.dart'; + +class VideoControlsOverlay extends ConsumerWidget { final CachedVideoPlayerPlusController controller; final VoidCallback button; @@ -13,10 +16,32 @@ class VideoControlsOverlay extends StatelessWidget { }); @override - Widget build(BuildContext context) { + Widget build(BuildContext context, ref) { + final mediaState = ref.watch(mediaProvider); + final mediaNotifier = ref.read(mediaProvider.notifier); + return Stack( alignment: Alignment.center, children: [ + Positioned( + right: 12, + top: 12, + child: _ControlButton( + mediaState.muted ? Icons.volume_off : Icons.volume_up, + () { + button(); + mediaNotifier.toggleMute(); + }, + size: 16, + ), + ), + Positioned( + right: 12, + bottom: 12, + child: _ControlButton(Icons.fullscreen, () { + button(); + }, size: 16), + ), Center( child: Row( mainAxisAlignment: MainAxisAlignment.center, diff --git a/pubspec.yaml b/pubspec.yaml index 642d065..beef52b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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. -version: 1.1.4+34 +version: 1.1.5+35 environment: sdk: ^3.9.0-100.2.beta