From fefdce2ba613d11f97759c0fba0ceb1fa4b629ef Mon Sep 17 00:00:00 2001 From: MultiX0 Date: Fri, 28 Feb 2025 02:29:52 +0300 Subject: [PATCH 1/3] fix failed for task ':workmanager:compileDebugKotlin' error --- workmanager/android/build.gradle | 2 +- .../workmanager/BackgroundWorker.kt | 3 +++ .../workmanager/WorkmanagerPlugin.kt | 13 ++++++++++--- workmanager/pubspec.yaml | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/workmanager/android/build.gradle b/workmanager/android/build.gradle index fed07446..cc41aaad 100644 --- a/workmanager/android/build.gradle +++ b/workmanager/android/build.gradle @@ -22,7 +22,7 @@ android { } defaultConfig { compileSdk 34 - minSdkVersion 19 + minSdkVersion 21 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { diff --git a/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/BackgroundWorker.kt b/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/BackgroundWorker.kt index 08367891..6eff4830 100644 --- a/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/BackgroundWorker.kt +++ b/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/BackgroundWorker.kt @@ -1,5 +1,8 @@ package dev.fluttercommunity.workmanager +import io.flutter.embedding.engine.plugins.FlutterPlugin +import io.flutter.embedding.engine.plugins.activity.ActivityAware +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding import android.content.Context import android.os.Handler import android.os.Looper diff --git a/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/WorkmanagerPlugin.kt b/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/WorkmanagerPlugin.kt index e81b07dc..13757e72 100644 --- a/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/WorkmanagerPlugin.kt +++ b/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/WorkmanagerPlugin.kt @@ -3,9 +3,12 @@ package dev.fluttercommunity.workmanager import android.content.Context import io.flutter.embedding.engine.plugins.FlutterPlugin import io.flutter.plugin.common.BinaryMessenger +import io.flutter.plugin.common.MethodCall import io.flutter.plugin.common.MethodChannel +import io.flutter.plugin.common.MethodChannel.MethodCallHandler +import io.flutter.plugin.common.MethodChannel.Result -class WorkmanagerPlugin : FlutterPlugin { +class WorkmanagerPlugin : FlutterPlugin, MethodCallHandler { private var methodChannel: MethodChannel? = null private var workmanagerCallHandler: WorkmanagerCallHandler? = null @@ -19,7 +22,11 @@ class WorkmanagerPlugin : FlutterPlugin { ) { workmanagerCallHandler = WorkmanagerCallHandler(context) methodChannel = MethodChannel(messenger, "be.tramckrijte.workmanager/foreground_channel_work_manager") - methodChannel?.setMethodCallHandler(workmanagerCallHandler) + methodChannel?.setMethodCallHandler(this) + } + + override fun onMethodCall(call: MethodCall, result: Result) { + workmanagerCallHandler?.handle(call, result) } override fun onDetachedFromEngine(binding: FlutterPlugin.FlutterPluginBinding) { @@ -31,4 +38,4 @@ class WorkmanagerPlugin : FlutterPlugin { methodChannel = null workmanagerCallHandler = null } -} +} \ No newline at end of file diff --git a/workmanager/pubspec.yaml b/workmanager/pubspec.yaml index 8fbc2298..6b14a85a 100644 --- a/workmanager/pubspec.yaml +++ b/workmanager/pubspec.yaml @@ -1,6 +1,6 @@ name: workmanager description: Flutter Workmanager. This plugin allows you to schedule background work on Android and iOS. -version: 0.5.2 +version: 0.5.3 homepage: https://github.com/fluttercommunity/flutter_workmanager repository: https://github.com/fluttercommunity/flutter_workmanager issue_tracker: https://github.com/fluttercommunity/flutter_workmanager/issues From 168280aeb3d98ac6115478e1eb2834e609819ed4 Mon Sep 17 00:00:00 2001 From: MultiX0 Date: Fri, 28 Feb 2025 02:32:07 +0300 Subject: [PATCH 2/3] - fix: A bug fix --- workmanager/android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workmanager/android/build.gradle b/workmanager/android/build.gradle index cc41aaad..fed07446 100644 --- a/workmanager/android/build.gradle +++ b/workmanager/android/build.gradle @@ -22,7 +22,7 @@ android { } defaultConfig { compileSdk 34 - minSdkVersion 21 + minSdkVersion 19 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { From 84cee5461db085cce9a63ebf9bcd1d1fb5c095a3 Mon Sep 17 00:00:00 2001 From: kostyan0005 Date: Fri, 28 Feb 2025 23:09:11 +0100 Subject: [PATCH 3/3] Fix some android build issues --- example/android/.gitignore | 2 ++ example/android/app/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- example/android/settings.gradle | 2 +- example/lib/main.dart | 26 +++++++------------ example/pubspec.yaml | 5 ++-- .../workmanager/WorkmanagerPlugin.kt | 2 +- 7 files changed, 19 insertions(+), 22 deletions(-) diff --git a/example/android/.gitignore b/example/android/.gitignore index 6f568019..39de1306 100644 --- a/example/android/.gitignore +++ b/example/android/.gitignore @@ -11,3 +11,5 @@ GeneratedPluginRegistrant.java key.properties **/*.keystore **/*.jks + +app/.cxx/* diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 6c76adc8..669db462 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -36,7 +36,7 @@ android { defaultConfig { applicationId "dev.fluttercommunity.workmanager.example" compileSdk 34 - minSdkVersion 19 + minSdkVersion flutter.minSdkVersion targetSdkVersion 34 versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 064431d8..97a0a5ed 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip \ No newline at end of file +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip \ No newline at end of file diff --git a/example/android/settings.gradle b/example/android/settings.gradle index 009192ec..0a03d7eb 100644 --- a/example/android/settings.gradle +++ b/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.1.4" apply false + id "com.android.application" version '8.8.1' apply false id "org.jetbrains.kotlin.android" version "1.9.23" apply false } diff --git a/example/lib/main.dart b/example/lib/main.dart index 80021afa..ffd185df 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -14,14 +14,10 @@ const simpleTaskKey = "be.tramckrijte.workmanagerExample.simpleTask"; const rescheduledTaskKey = "be.tramckrijte.workmanagerExample.rescheduledTask"; const failedTaskKey = "be.tramckrijte.workmanagerExample.failedTask"; const simpleDelayedTask = "be.tramckrijte.workmanagerExample.simpleDelayedTask"; -const simplePeriodicTask = - "be.tramckrijte.workmanagerExample.simplePeriodicTask"; -const simplePeriodic1HourTask = - "be.tramckrijte.workmanagerExample.simplePeriodic1HourTask"; -const iOSBackgroundAppRefresh = - "be.tramckrijte.workmanagerExample.iOSBackgroundAppRefresh"; -const iOSBackgroundProcessingTask = - "be.tramckrijte.workmanagerExample.iOSBackgroundProcessingTask"; +const simplePeriodicTask = "be.tramckrijte.workmanagerExample.simplePeriodicTask"; +const simplePeriodic1HourTask = "be.tramckrijte.workmanagerExample.simplePeriodic1HourTask"; +const iOSBackgroundAppRefresh = "be.tramckrijte.workmanagerExample.iOSBackgroundAppRefresh"; +const iOSBackgroundProcessingTask = "be.tramckrijte.workmanagerExample.iOSBackgroundProcessingTask"; final List allTasks = [ simpleTaskKey, @@ -224,7 +220,6 @@ class _MyAppState extends State { Workmanager().registerPeriodicTask( simplePeriodic1HourTask, simplePeriodic1HourTask, - flexInterval: Duration(minutes: 15), frequency: Duration(hours: 1), ); } @@ -263,7 +258,7 @@ class _MyAppState extends State { _showNotInitialized(); return; } - await Workmanager().registerProcessingTask( + await Workmanager().registerOneOffTask( iOSBackgroundProcessingTask, iOSBackgroundProcessingTask, initialDelay: Duration(seconds: 20), @@ -276,11 +271,10 @@ class _MyAppState extends State { child: Text("isscheduled (Android)"), onPressed: Platform.isAndroid ? () async { - final workInfo = - await Workmanager().isScheduledByUniqueName( - simplePeriodicTask, - ); - print('isscheduled = $workInfo'); + // final workInfo = await Workmanager().isScheduledByUniqueName( + // simplePeriodicTask, + // ); + // print('isscheduled = $workInfo'); } : null), SizedBox(height: 8), @@ -327,7 +321,7 @@ class _MyAppState extends State { } if (Platform.isIOS) { - Workmanager().printScheduledTasks(); + // Workmanager().printScheduledTasks(); } setState(() {}); diff --git a/example/pubspec.yaml b/example/pubspec.yaml index e8f43730..59c2ad17 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -6,12 +6,13 @@ environment: sdk: ">=2.18.0 <4.0.0" dependencies: - path_provider: + path_provider: shared_preferences: permission_handler: flutter: sdk: flutter - workmanager: + workmanager: + path: ../workmanager dev_dependencies: integration_test: diff --git a/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/WorkmanagerPlugin.kt b/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/WorkmanagerPlugin.kt index 13757e72..df5a563a 100644 --- a/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/WorkmanagerPlugin.kt +++ b/workmanager/android/src/main/kotlin/dev/fluttercommunity/workmanager/WorkmanagerPlugin.kt @@ -26,7 +26,7 @@ class WorkmanagerPlugin : FlutterPlugin, MethodCallHandler { } override fun onMethodCall(call: MethodCall, result: Result) { - workmanagerCallHandler?.handle(call, result) + workmanagerCallHandler?.onMethodCall(call, result) } override fun onDetachedFromEngine(binding: FlutterPlugin.FlutterPluginBinding) {