From 4167227c7b6a069b833d7d5107467dea191cd425 Mon Sep 17 00:00:00 2001 From: "Alexander \"PapaTutuWawa" Date: Sun, 3 Sep 2023 21:57:25 +0200 Subject: [PATCH] feat(interface,android): Allow passing an initial locale to the service --- .../polynom/moxplatform_android/BackgroundService.java | 2 +- .../moxplatform_android/lib/src/isolate_android.dart | 9 ++++++--- .../moxplatform_android/lib/src/platform_android.dart | 5 ++++- .../moxplatform_android/lib/src/service_android.dart | 5 +++-- .../moxplatform_platform_interface/lib/src/isolate.dart | 4 +++- .../lib/src/isolate_stub.dart | 3 ++- .../lib/src/platform_stub.dart | 5 ++++- .../moxplatform_platform_interface/lib/src/service.dart | 3 ++- 8 files changed, 25 insertions(+), 11 deletions(-) diff --git a/packages/moxplatform_android/android/src/main/java/me/polynom/moxplatform_android/BackgroundService.java b/packages/moxplatform_android/android/src/main/java/me/polynom/moxplatform_android/BackgroundService.java index 63198be..2284606 100644 --- a/packages/moxplatform_android/android/src/main/java/me/polynom/moxplatform_android/BackgroundService.java +++ b/packages/moxplatform_android/android/src/main/java/me/polynom/moxplatform_android/BackgroundService.java @@ -114,7 +114,7 @@ public class BackgroundService extends Service implements MethodChannel.MethodCa | (PendingIntent.FLAG_MUTABLE & (aboveS ? PendingIntent.FLAG_MUTABLE : 0)) ); - NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, "FOREGROUND_DEFAULT") + NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, "foreground_service") .setSmallIcon(R.drawable.ic_service_icon) .setAutoCancel(true) .setOngoing(true) diff --git a/packages/moxplatform_android/lib/src/isolate_android.dart b/packages/moxplatform_android/lib/src/isolate_android.dart index 2675c49..2622496 100644 --- a/packages/moxplatform_android/lib/src/isolate_android.dart +++ b/packages/moxplatform_android/lib/src/isolate_android.dart @@ -52,8 +52,9 @@ Future androidEntrypoint() async { final srv = AndroidBackgroundService(); GetIt.I.registerSingleton(srv); srv.init( - entrypoint! as Future Function(), + entrypoint! as Future Function(String), handleUIEvent! as Future Function(Map? data), + data['initialLocale']! as String, ); } @@ -80,9 +81,10 @@ class AndroidIsolateHandler extends IsolateHandler { @override Future start( - Future Function() entrypoint, + Future Function(String initialLocale) entrypoint, Future Function(Map? data) handleUIEvent, Future Function(Map? data) handleIsolateEvent, + String initialLocale, ) async { _log.finest('Called start'); WidgetsFlutterBinding.ensureInitialized(); @@ -96,7 +98,8 @@ class AndroidIsolateHandler extends IsolateHandler { 'genericEntrypoint': PluginUtilities.getCallbackHandle(entrypoint)!.toRawHandle(), 'eventHandle': - PluginUtilities.getCallbackHandle(handleUIEvent)!.toRawHandle() + PluginUtilities.getCallbackHandle(handleUIEvent)!.toRawHandle(), + 'initialLocale': initialLocale, }), ]); diff --git a/packages/moxplatform_android/lib/src/platform_android.dart b/packages/moxplatform_android/lib/src/platform_android.dart index 435849c..e3c0999 100644 --- a/packages/moxplatform_android/lib/src/platform_android.dart +++ b/packages/moxplatform_android/lib/src/platform_android.dart @@ -24,7 +24,10 @@ class AndroidPlatformImplementation extends PlatformImplementation { @override Future generateVideoThumbnail( - String src, String dest, int width) async { + String src, + String dest, + int width, + ) async { return MoxplatformInterface.api.generateVideoThumbnail(src, dest, width); } } diff --git a/packages/moxplatform_android/lib/src/service_android.dart b/packages/moxplatform_android/lib/src/service_android.dart index 23faa77..fb1fa51 100644 --- a/packages/moxplatform_android/lib/src/service_android.dart +++ b/packages/moxplatform_android/lib/src/service_android.dart @@ -39,8 +39,9 @@ class AndroidBackgroundService extends BackgroundService { @override void init( - Future Function() entrypoint, + Future Function(String initialLocale) entrypoint, Future Function(Map? data) handleEvent, + String initialLocale, ) { WidgetsFlutterBinding.ensureInitialized(); @@ -58,6 +59,6 @@ class AndroidBackgroundService extends BackgroundService { _log.finest('Running...'); - entrypoint(); + entrypoint(initialLocale); } } diff --git a/packages/moxplatform_platform_interface/lib/src/isolate.dart b/packages/moxplatform_platform_interface/lib/src/isolate.dart index 8e8f5ff..45b97fc 100644 --- a/packages/moxplatform_platform_interface/lib/src/isolate.dart +++ b/packages/moxplatform_platform_interface/lib/src/isolate.dart @@ -8,10 +8,12 @@ abstract class IsolateHandler { /// [entrypoint] is the entrypoint that is run inside the new isolate. /// [handleUIEvent] is a handler function that is called when the isolate receives data from the UI. /// [handleIsolateEvent] is a handler function that is called when the UI receives data from the service. + /// [initialLocale] the locale to pass to the background service when first starting. Future start( - Future Function() entrypoint, + Future Function(String initialLocale) entrypoint, Future Function(Map? data) handleUIEvent, Future Function(Map? data) handleIsolateEvent, + String initialLocale, ); /// Make sure that the UI event handler is registered without starting the isolate. diff --git a/packages/moxplatform_platform_interface/lib/src/isolate_stub.dart b/packages/moxplatform_platform_interface/lib/src/isolate_stub.dart index 67c96a7..5273b4f 100644 --- a/packages/moxplatform_platform_interface/lib/src/isolate_stub.dart +++ b/packages/moxplatform_platform_interface/lib/src/isolate_stub.dart @@ -22,9 +22,10 @@ class StubIsolateHandler extends IsolateHandler { @override Future start( - Future Function() entrypoint, + Future Function(String initialLocale) entrypoint, Future Function(Map? data) handleUIEvent, Future Function(Map? data) handleIsolateEvent, + String initialLocale, ) async { // ignore: avoid_print print('STUB STARTED!!!!!!'); diff --git a/packages/moxplatform_platform_interface/lib/src/platform_stub.dart b/packages/moxplatform_platform_interface/lib/src/platform_stub.dart index adc308b..b783320 100644 --- a/packages/moxplatform_platform_interface/lib/src/platform_stub.dart +++ b/packages/moxplatform_platform_interface/lib/src/platform_stub.dart @@ -17,6 +17,9 @@ class StubPlatformImplementation extends PlatformImplementation { @override Future generateVideoThumbnail( - String src, String dest, int width) async => + String src, + String dest, + int width, + ) async => false; } diff --git a/packages/moxplatform_platform_interface/lib/src/service.dart b/packages/moxplatform_platform_interface/lib/src/service.dart index d676ebd..006fa4d 100644 --- a/packages/moxplatform_platform_interface/lib/src/service.dart +++ b/packages/moxplatform_platform_interface/lib/src/service.dart @@ -11,7 +11,8 @@ abstract class BackgroundService { /// [handleEvent] is a function that is called whenever the service receives /// data. void init( - Future Function() entrypoint, + Future Function(String initialLocale) entrypoint, Future Function(Map? data) handleEvent, + String initialLocale, ); }