v1.1.13+43
- fk android
This commit is contained in:
		@@ -51,3 +51,6 @@ jobs:
 | 
				
			|||||||
          files: |-
 | 
					          files: |-
 | 
				
			||||||
            build/app/outputs/flutter-apk/app-release.apk
 | 
					            build/app/outputs/flutter-apk/app-release.apk
 | 
				
			||||||
          token: '${{secrets.RELEASE_TOKEN}}'
 | 
					          token: '${{secrets.RELEASE_TOKEN}}'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: trigger fdroid puller
 | 
				
			||||||
 | 
					        run: curl https://flumm.io/pullfdroid.php?token=${{secrets.PULLER_TOKEN}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,7 @@
 | 
				
			|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
 | 
					<manifest xmlns:android="http://schemas.android.com/apk/res/android">
 | 
				
			||||||
    <uses-permission android:name="android.permission.INTERNET"/>
 | 
					    <uses-permission android:name="android.permission.INTERNET"/>
 | 
				
			||||||
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 | 
					    <uses-permission android:name="android.permission.WAKE_LOCK"/>
 | 
				
			||||||
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
 | 
					    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
 | 
				
			||||||
 | 
					 | 
				
			||||||
    <application
 | 
					    <application
 | 
				
			||||||
        android:label="f0ckapp"
 | 
					        android:label="f0ckapp"
 | 
				
			||||||
        android:name="${applicationName}"
 | 
					        android:name="${applicationName}"
 | 
				
			||||||
@@ -16,8 +15,7 @@
 | 
				
			|||||||
            android:theme="@style/LaunchTheme"
 | 
					            android:theme="@style/LaunchTheme"
 | 
				
			||||||
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
 | 
					            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
 | 
				
			||||||
            android:hardwareAccelerated="true"
 | 
					            android:hardwareAccelerated="true"
 | 
				
			||||||
            android:windowSoftInputMode="adjustResize"
 | 
					            android:windowSoftInputMode="adjustResize">
 | 
				
			||||||
            android:requestLegacyExternalStorage="true">
 | 
					 | 
				
			||||||
            <!-- Specifies an Android theme to apply to this Activity as soon as
 | 
					            <!-- Specifies an Android theme to apply to this Activity as soon as
 | 
				
			||||||
                 the Android process has started. This theme is visible to the user
 | 
					                 the Android process has started. This theme is visible to the user
 | 
				
			||||||
                 while the Flutter UI initializes. After that, this theme continues
 | 
					                 while the Flutter UI initializes. After that, this theme continues
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,6 @@ 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:flutter_downloader/flutter_downloader.dart';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:f0ckapp/screens/mediagrid_screen.dart';
 | 
					import 'package:f0ckapp/screens/mediagrid_screen.dart';
 | 
				
			||||||
import 'package:f0ckapp/screens/detailview_screen.dart';
 | 
					import 'package:f0ckapp/screens/detailview_screen.dart';
 | 
				
			||||||
@@ -14,7 +13,6 @@ import 'package:f0ckapp/providers/theme_provider.dart';
 | 
				
			|||||||
void main() async {
 | 
					void main() async {
 | 
				
			||||||
  WidgetsFlutterBinding.ensureInitialized();
 | 
					  WidgetsFlutterBinding.ensureInitialized();
 | 
				
			||||||
  await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
 | 
					  await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
 | 
				
			||||||
  await FlutterDownloader.initialize();
 | 
					 | 
				
			||||||
  await AppVersion.init();
 | 
					  await AppVersion.init();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  runApp(ProviderScope(child: F0ckApp()));
 | 
					  runApp(ProviderScope(child: F0ckApp()));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,10 +6,8 @@ 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:flutter_cache_manager/flutter_cache_manager.dart';
 | 
					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:permission_handler/permission_handler.dart';
 | 
					 | 
				
			||||||
import 'package:flutter_downloader/flutter_downloader.dart';
 | 
					 | 
				
			||||||
import 'package:path_provider/path_provider.dart';
 | 
					 | 
				
			||||||
import 'package:share_plus/share_plus.dart';
 | 
					import 'package:share_plus/share_plus.dart';
 | 
				
			||||||
 | 
					import 'package:downloadsfolder/downloadsfolder.dart' as blah;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:f0ckapp/models/mediaitem_model.dart';
 | 
					import 'package:f0ckapp/models/mediaitem_model.dart';
 | 
				
			||||||
import 'package:f0ckapp/widgets/video_widget.dart';
 | 
					import 'package:f0ckapp/widgets/video_widget.dart';
 | 
				
			||||||
@@ -72,49 +70,16 @@ class _DetailViewState extends ConsumerState<DetailView> {
 | 
				
			|||||||
  Future<void> _downloadMedia() async {
 | 
					  Future<void> _downloadMedia() async {
 | 
				
			||||||
    final MediaState mediaState = ref.read(mediaProvider);
 | 
					    final MediaState mediaState = ref.read(mediaProvider);
 | 
				
			||||||
    final MediaItem currentItem = mediaState.mediaItems[_currentIndex];
 | 
					    final MediaItem currentItem = mediaState.mediaItems[_currentIndex];
 | 
				
			||||||
 | 
					    final file = await DefaultCacheManager().getSingleFile(currentItem.mediaUrl);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (Platform.isAndroid || Platform.isIOS) {
 | 
					    bool? success = await blah.copyFileIntoDownloadFolder(
 | 
				
			||||||
      PermissionStatus status = await Permission.storage.status;
 | 
					      '${file.dirname}/${file.basename}',
 | 
				
			||||||
      if (!status.isGranted) {
 | 
					      currentItem.mediaUrl.split('/').last
 | 
				
			||||||
        status = await Permission.storage.request();
 | 
					    );
 | 
				
			||||||
        if (!status.isGranted) {
 | 
					    if (success == true) {
 | 
				
			||||||
          _showMsg("Speicherberechtigung wurde nicht erteilt.");
 | 
					      _showMsg('${file.basename} wurde irgendwie heruntergeladen. Viel Spaß bei der Suche');
 | 
				
			||||||
          return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    String localPath;
 | 
					 | 
				
			||||||
    if (Platform.isAndroid) {
 | 
					 | 
				
			||||||
      final Directory? directory = await getExternalStorageDirectory();
 | 
					 | 
				
			||||||
      localPath = "${directory!.path}/Download/fApp";
 | 
					 | 
				
			||||||
    } else if (Platform.isIOS) {
 | 
					 | 
				
			||||||
      final Directory directory = await getApplicationDocumentsDirectory();
 | 
					 | 
				
			||||||
      localPath = directory.path;
 | 
					 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      final Directory directory = await getTemporaryDirectory();
 | 
					      _showMsg('${file.basename} konnte nicht heruntergeladen werden.');
 | 
				
			||||||
      localPath = directory.path;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    final Directory savedDir = Directory(localPath);
 | 
					 | 
				
			||||||
    if (!await savedDir.exists()) {
 | 
					 | 
				
			||||||
      await savedDir.create(recursive: true);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    try {
 | 
					 | 
				
			||||||
      await FlutterDownloader.enqueue(
 | 
					 | 
				
			||||||
        url: currentItem.mediaUrl,
 | 
					 | 
				
			||||||
        savedDir: localPath,
 | 
					 | 
				
			||||||
        fileName: currentItem.mediaUrl.split('/').last,
 | 
					 | 
				
			||||||
        showNotification: true,
 | 
					 | 
				
			||||||
        openFileFromNotification: true,
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (mounted) {
 | 
					 | 
				
			||||||
        _showMsg('Download gestartet: ${currentItem.mediaUrl}');
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    } catch (e) {
 | 
					 | 
				
			||||||
      _showMsg('Download fehlgeschlagen: $e');
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										32
									
								
								pubspec.lock
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								pubspec.lock
									
									
									
									
									
								
							@@ -105,6 +105,30 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "1.0.8"
 | 
					    version: "1.0.8"
 | 
				
			||||||
 | 
					  dartx:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: dartx
 | 
				
			||||||
 | 
					      sha256: "8b25435617027257d43e6508b5fe061012880ddfdaa75a71d607c3de2a13d244"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.2.0"
 | 
				
			||||||
 | 
					  diacritic:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: diacritic
 | 
				
			||||||
 | 
					      sha256: "12981945ec38931748836cd76f2b38773118d0baef3c68404bdfde9566147876"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.1.6"
 | 
				
			||||||
 | 
					  downloadsfolder:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: downloadsfolder
 | 
				
			||||||
 | 
					      sha256: "0e1bb7dd634d6231c0ac116c467da94507a07ed62239712ea0dead981d58b114"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.2.0"
 | 
				
			||||||
  fake_async:
 | 
					  fake_async:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -653,6 +677,14 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "0.7.6"
 | 
					    version: "0.7.6"
 | 
				
			||||||
 | 
					  time:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: time
 | 
				
			||||||
 | 
					      sha256: "370572cf5d1e58adcb3e354c47515da3f7469dac3a95b447117e728e7be6f461"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.1.5"
 | 
				
			||||||
  typed_data:
 | 
					  typed_data:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
					# 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
 | 
					# 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.
 | 
					# of the product and file versions while build-number is used as the build suffix.
 | 
				
			||||||
version: 1.1.12+42
 | 
					version: 1.1.13+43
 | 
				
			||||||
 | 
					
 | 
				
			||||||
environment:
 | 
					environment:
 | 
				
			||||||
  sdk: ^3.9.0-100.2.beta
 | 
					  sdk: ^3.9.0-100.2.beta
 | 
				
			||||||
@@ -45,6 +45,7 @@ dependencies:
 | 
				
			|||||||
  flutter_downloader: ^1.12.0
 | 
					  flutter_downloader: ^1.12.0
 | 
				
			||||||
  permission_handler: ^12.0.0+1
 | 
					  permission_handler: ^12.0.0+1
 | 
				
			||||||
  path_provider: ^2.1.5
 | 
					  path_provider: ^2.1.5
 | 
				
			||||||
 | 
					  downloadsfolder: ^1.2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dev_dependencies:
 | 
					dev_dependencies:
 | 
				
			||||||
  flutter_test:
 | 
					  flutter_test:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user