full retard renaming
This commit is contained in:
		@@ -1,14 +1,14 @@
 | 
				
			|||||||
import 'package:f0ckapp/providers/MediaProvider.dart';
 | 
					import 'package:f0ckapp/providers/media_provider.dart';
 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
import 'package:flutter/services.dart';
 | 
					import 'package:flutter/services.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:go_router/go_router.dart';
 | 
					import 'package:go_router/go_router.dart';
 | 
				
			||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
 | 
					import 'package:flutter_riverpod/flutter_riverpod.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:f0ckapp/screens/MediaGrid.dart';
 | 
					import 'package:f0ckapp/screens/mediagrid_screen.dart';
 | 
				
			||||||
import 'package:f0ckapp/screens/DetailView.dart';
 | 
					import 'package:f0ckapp/screens/detailview_screen.dart';
 | 
				
			||||||
import 'package:f0ckapp/utils/AppVersion.dart';
 | 
					import 'package:f0ckapp/utils/appversion_util.dart';
 | 
				
			||||||
import 'package:f0ckapp/providers/ThemeProvider.dart';
 | 
					import 'package:f0ckapp/providers/theme_provider.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void main() async {
 | 
					void main() async {
 | 
				
			||||||
  WidgetsFlutterBinding.ensureInitialized();
 | 
					  WidgetsFlutterBinding.ensureInitialized();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
 | 
					import 'package:flutter_riverpod/flutter_riverpod.dart';
 | 
				
			||||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
 | 
					import 'package:flutter_secure_storage/flutter_secure_storage.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:f0ckapp/models/MediaItem.dart';
 | 
					import 'package:f0ckapp/models/mediaitem_model.dart';
 | 
				
			||||||
import 'package:f0ckapp/services/Api.dart';
 | 
					import 'package:f0ckapp/services/api_service.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const List<String> mediaTypes = ["alles", "image", "video", "audio"];
 | 
					const List<String> mediaTypes = ["alles", "image", "video", "audio"];
 | 
				
			||||||
const List<String> mediaModes = ["sfw", "nsfw", "untagged", "all"];
 | 
					const List<String> mediaModes = ["sfw", "nsfw", "untagged", "all"];
 | 
				
			||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
 | 
					import 'package:flutter_secure_storage/flutter_secure_storage.dart';
 | 
				
			||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
 | 
					import 'package:flutter_riverpod/flutter_riverpod.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -8,11 +8,11 @@ import 'package:flutter_cache_manager/flutter_cache_manager.dart';
 | 
				
			|||||||
import 'package:go_router/go_router.dart';
 | 
					import 'package:go_router/go_router.dart';
 | 
				
			||||||
import 'package:share_plus/share_plus.dart';
 | 
					import 'package:share_plus/share_plus.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:f0ckapp/models/MediaItem.dart';
 | 
					import 'package:f0ckapp/models/mediaitem_model.dart';
 | 
				
			||||||
import 'package:f0ckapp/widgets/VideoWidget.dart';
 | 
					import 'package:f0ckapp/widgets/video_widget.dart';
 | 
				
			||||||
import 'package:f0ckapp/utils/SmartRefreshIndicator.dart';
 | 
					import 'package:f0ckapp/utils/smartrefreshindicator_util.dart';
 | 
				
			||||||
import 'package:f0ckapp/utils/PageTransformer.dart';
 | 
					import 'package:f0ckapp/utils/pagetransformer_util.dart';
 | 
				
			||||||
import 'package:f0ckapp/providers/MediaProvider.dart';
 | 
					import 'package:f0ckapp/providers/media_provider.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class DetailView extends ConsumerStatefulWidget {
 | 
					class DetailView extends ConsumerStatefulWidget {
 | 
				
			||||||
  final int initialItemId;
 | 
					  final int initialItemId;
 | 
				
			||||||
@@ -2,13 +2,12 @@ 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:flutter_riverpod/flutter_riverpod.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/providers/ThemeProvider.dart';
 | 
					 | 
				
			||||||
import 'package:go_router/go_router.dart';
 | 
					import 'package:go_router/go_router.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:f0ckapp/providers/media_provider.dart';
 | 
				
			||||||
 | 
					import 'package:f0ckapp/utils/appversion_util.dart';
 | 
				
			||||||
 | 
					import 'package:f0ckapp/providers/theme_provider.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const List<String> mediaTypes = ["alles", "image", "video", "audio"];
 | 
					const List<String> mediaTypes = ["alles", "image", "video", "audio"];
 | 
				
			||||||
const List<String> mediaModes = ["sfw", "nsfw", "untagged", "all"];
 | 
					const List<String> mediaModes = ["sfw", "nsfw", "untagged", "all"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -3,7 +3,7 @@ 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:flutter_secure_storage/flutter_secure_storage.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:f0ckapp/models/MediaItem.dart';
 | 
					import 'package:f0ckapp/models/mediaitem_model.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
final storage = FlutterSecureStorage();
 | 
					final storage = FlutterSecureStorage();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1,94 +0,0 @@
 | 
				
			|||||||
import 'package:flutter/material.dart';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import 'package:f0ckapp/providers/MediaProvider.dart';
 | 
					 | 
				
			||||||
import 'package:f0ckapp/screens/DetailView.dart';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Map<String, RegExp> routes = {
 | 
					 | 
				
			||||||
  //'login': RegExp(r'^/login/?$'),
 | 
					 | 
				
			||||||
  //'user': RegExp(r'^/user/(?<user>.*)$'),
 | 
					 | 
				
			||||||
  'complex': RegExp(
 | 
					 | 
				
			||||||
    r'^/?'
 | 
					 | 
				
			||||||
    r'(?:tag/(?<tag>.+?))?'
 | 
					 | 
				
			||||||
    r'(?:/user/(?<username>.+?)/(?<set>f0cks|favs))?'
 | 
					 | 
				
			||||||
    r'(?:/(?<media>image|audio|video))?'
 | 
					 | 
				
			||||||
    r'(?:/(?<id>\d+))?'
 | 
					 | 
				
			||||||
    r'$',
 | 
					 | 
				
			||||||
  ),
 | 
					 | 
				
			||||||
  //'random': RegExp(r'^/random$'),
 | 
					 | 
				
			||||||
  //'search': RegExp(r'^/search/?$'),
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Map<String, dynamic> parseDeepLink(Uri? uri) {
 | 
					 | 
				
			||||||
  if (uri == null) {
 | 
					 | 
				
			||||||
    return {};
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  String url = uri.toString().replaceAll("https://f0ck.me", "");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  for (final MapEntry<String, RegExp> entry in routes.entries) {
 | 
					 | 
				
			||||||
    final String routeName = entry.key;
 | 
					 | 
				
			||||||
    final RegExp pattern = entry.value;
 | 
					 | 
				
			||||||
    final RegExpMatch? match = pattern.firstMatch(url.toString());
 | 
					 | 
				
			||||||
    if (match != null) {
 | 
					 | 
				
			||||||
      Map<String, String> params = <String, String>{};
 | 
					 | 
				
			||||||
      for (String name in match.groupNames) {
 | 
					 | 
				
			||||||
        params[name] = match.namedGroup(name) ?? '';
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      return {'route': routeName, 'params': params};
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  return {};
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Future<void> handleComplexDeepLink(
 | 
					 | 
				
			||||||
  Map<String, String> params,
 | 
					 | 
				
			||||||
  BuildContext context,
 | 
					 | 
				
			||||||
  WidgetRef ref,
 | 
					 | 
				
			||||||
  ScrollController scrollController,
 | 
					 | 
				
			||||||
) async {
 | 
					 | 
				
			||||||
  final media = params['media'];
 | 
					 | 
				
			||||||
  const validMediaTypes = {'audio', 'video', 'image'};
 | 
					 | 
				
			||||||
  if (media != null && validMediaTypes.contains(media)) {
 | 
					 | 
				
			||||||
    ref.read(mediaProvider.notifier).setType(media);
 | 
					 | 
				
			||||||
  } else {
 | 
					 | 
				
			||||||
    ref.read(mediaProvider.notifier).setType('alles');
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  ref.read(mediaProvider.notifier).setMode(0); // wip
 | 
					 | 
				
			||||||
  ref.read(mediaProvider.notifier).setTag(null);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  final idParam = params['id'];
 | 
					 | 
				
			||||||
  if (idParam == null || idParam.isEmpty) return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  final int? id = int.tryParse(idParam);
 | 
					 | 
				
			||||||
  if (id == null) return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  final mediaState = ref.read(mediaProvider);
 | 
					 | 
				
			||||||
  final index = mediaState.mediaItems.indexWhere((item) => item.id == id);
 | 
					 | 
				
			||||||
  if (index == -1) {
 | 
					 | 
				
			||||||
    await ref.read(mediaProvider.notifier).loadMedia(id: id + 50);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    final updatedState = ref.read(mediaProvider);
 | 
					 | 
				
			||||||
    final updatedIndex = updatedState.mediaItems.indexWhere(
 | 
					 | 
				
			||||||
      (item) => item.id == id,
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    print(updatedIndex.toString());
 | 
					 | 
				
			||||||
    if (updatedIndex == -1) {
 | 
					 | 
				
			||||||
      return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool? navigationResult = await Navigator.push(
 | 
					 | 
				
			||||||
    context,
 | 
					 | 
				
			||||||
    MaterialPageRoute(builder: (_) => DetailView(initialItemId: id)),
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (navigationResult == true) {
 | 
					 | 
				
			||||||
    scrollController.jumpTo(0);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
type: mediaTypes[state.typeIndex],
 | 
					 | 
				
			||||||
mode: state.modeIndex,
 | 
					 | 
				
			||||||
random: state.random,
 | 
					 | 
				
			||||||
tag: state.tag,*/
 | 
					 | 
				
			||||||
@@ -6,9 +6,9 @@ import 'package:cached_video_player_plus/cached_video_player_plus.dart';
 | 
				
			|||||||
import 'package:cached_network_image/cached_network_image.dart';
 | 
					import 'package:cached_network_image/cached_network_image.dart';
 | 
				
			||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
 | 
					import 'package:flutter_riverpod/flutter_riverpod.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:f0ckapp/models/MediaItem.dart';
 | 
					import 'package:f0ckapp/models/mediaitem_model.dart';
 | 
				
			||||||
import 'package:f0ckapp/widgets/VideoOverlay.dart';
 | 
					import 'package:f0ckapp/widgets/videooverlay_widget.dart';
 | 
				
			||||||
import 'package:f0ckapp/providers/MediaProvider.dart';
 | 
					import 'package:f0ckapp/providers/media_provider.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class VideoWidget extends ConsumerStatefulWidget {
 | 
					class VideoWidget extends ConsumerStatefulWidget {
 | 
				
			||||||
  final MediaItem details;
 | 
					  final MediaItem details;
 | 
				
			||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
 | 
				
			|||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
 | 
					import 'package:flutter_riverpod/flutter_riverpod.dart';
 | 
				
			||||||
import 'package:cached_video_player_plus/cached_video_player_plus.dart';
 | 
					import 'package:cached_video_player_plus/cached_video_player_plus.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:f0ckapp/providers/MediaProvider.dart';
 | 
					import 'package:f0ckapp/providers/media_provider.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class VideoControlsOverlay extends ConsumerWidget {
 | 
					class VideoControlsOverlay extends ConsumerWidget {
 | 
				
			||||||
  final CachedVideoPlayerPlusController controller;
 | 
					  final CachedVideoPlayerPlusController controller;
 | 
				
			||||||
		Reference in New Issue
	
	Block a user