diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ccccecb9..678183c2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -136,7 +136,7 @@ jobs: if: startsWith(matrix.platform,'android') uses: gradle/actions/setup-gradle@v3 with: - gradle-version: 8.1 + gradle-version: 7.5 - name: Setup dependencies run: | make ${{ matrix.platform }}-install-dependencies diff --git a/android/gradle.properties b/android/gradle.properties index cc18a0cd..cdbc001c 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,3 +1,3 @@ -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx4048m -Dfile.encoding=UTF-8 android.useAndroidX=true android.enableJetifier=true diff --git a/android/settings.gradle b/android/settings.gradle index 767847f1..fc0bff7a 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.0.0" apply false - id "org.jetbrains.kotlin.android" version "1.8.0" apply false + id "com.android.application" version "7.5.0" apply false + id "org.jetbrains.kotlin.android" version "1.7.5" apply false } include ":app" diff --git a/lib/features/common/qr_code_scanner_screen.dart b/lib/features/common/qr_code_scanner_screen.dart index 7fd0f623..450f9838 100644 --- a/lib/features/common/qr_code_scanner_screen.dart +++ b/lib/features/common/qr_code_scanner_screen.dart @@ -1,15 +1,15 @@ import 'package:dartx/dartx.dart'; import 'package:fluentui_system_icons/fluentui_system_icons.dart'; import 'package:flutter/material.dart'; -// import 'package:flutter_easy_permission/easy_permissions.dart'; +import 'package:flutter_easy_permission/easy_permissions.dart'; import 'package:hiddify/core/localization/translations.dart'; import 'package:hiddify/utils/utils.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:mobile_scanner/mobile_scanner.dart'; // import 'package:permission_handler/permission_handler.dart'; -// const permissions = [Permissions.CAMERA]; -// const permissionGroup = [PermissionGroup.Camera]; +const permissions = [Permissions.CAMERA]; +const permissionGroup = [PermissionGroup.Camera]; class QRCodeScannerScreen extends StatefulHookConsumerWidget { const QRCodeScannerScreen({super.key}); @@ -31,52 +31,51 @@ class _QRCodeScannerScreenState extends ConsumerState with final controller = MobileScannerController(detectionTimeoutMs: 500, autoStart: false); bool started = false; - // late FlutterEasyPermission _easyPermission; + late FlutterEasyPermission _easyPermission; @override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); - // _easyPermission = FlutterEasyPermission() - // ..addPermissionCallback(onGranted: (requestCode, androidPerms, iosPerm) { - // debugPrint("android:$androidPerms"); - // debugPrint("iOS:$iosPerm"); - // startQrScannerIfPermissionGranted(); - // }, onDenied: (requestCode, androidPerms, iosPerm, isPermanent) { - // if (isPermanent) { - // FlutterEasyPermission.showAppSettingsDialog(title: "Camera"); - // } else { - // debugPrint("android:$androidPerms"); - // debugPrint("iOS:$iosPerm"); - // } - // }, onSettingsReturned: () { - // startQrScannerIfPermissionGranted(); - // }); + _easyPermission = FlutterEasyPermission() + ..addPermissionCallback(onGranted: (requestCode, androidPerms, iosPerm) { + debugPrint("android:$androidPerms"); + debugPrint("iOS:$iosPerm"); + startQrScannerIfPermissionGranted(); + }, onDenied: (requestCode, androidPerms, iosPerm, isPermanent) { + if (isPermanent) { + FlutterEasyPermission.showAppSettingsDialog(title: "Camera"); + } else { + debugPrint("android:$androidPerms"); + debugPrint("iOS:$iosPerm"); + } + }, onSettingsReturned: () { + startQrScannerIfPermissionGranted(); + }); } @override void dispose() { controller.stop(); - // _easyPermission.dispose(); + _easyPermission.dispose(); WidgetsBinding.instance.removeObserver(this); super.dispose(); } void startQrScannerIfPermissionGranted() { - // FlutterEasyPermission.has(perms: permissions, permsGroup: permissionGroup) - // .then((value) { - // if (value) { - // controller.start().then((result) { - // if (result != null) { - // setState(() { - // started = true; - // }); - // } - // }).catchError((error) { - // loggy.warning("Error starting scanner: $error"); - // }); - // } else {} - // }); + FlutterEasyPermission.has(perms: permissions, permsGroup: permissionGroup).then((value) { + if (value) { + controller.start().then((result) { + if (result != null) { + setState(() { + started = true; + }); + } + }).catchError((error) { + loggy.warning("Error starting scanner: $error"); + }); + } else {} + }); } @override diff --git a/pubspec.lock b/pubspec.lock index 966945dc..81bbc137 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -487,6 +487,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.0" + flutter_easy_permission: + dependency: "direct main" + description: + name: flutter_easy_permission + sha256: "05eb1b561c894adef28b3ae38d8087fc2635f1047c5e18cf2698fb42b6ccc132" + url: "https://pub.dev" + source: hosted + version: "1.1.2" flutter_gen_core: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index b1b3e90b..5fcac156 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -81,7 +81,7 @@ dependencies: timezone_to_country: ^2.1.0 json_path: ^0.7.1 # permission_handler: ^11.3.0 # is not compatible with windows - # flutter_easy_permission: ^1.1.2 + flutter_easy_permission: ^1.1.2 in_app_review: ^2.0.9 # circle_flags: ^4.0.2 circle_flags: