From f69e04c46be943e52f770423c7d0efd711f20344 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Tue, 19 Jul 2022 16:38:53 +0200 Subject: [PATCH] #287 fixed missing storage handler in analysis service, to resolve ambiguous dirs --- .../deckers/thibault/aves/AnalysisService.kt | 14 ++++++++++---- lib/services/analysis_service.dart | 2 ++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/AnalysisService.kt b/android/app/src/main/kotlin/deckers/thibault/aves/AnalysisService.kt index d15af27c3..39e7a9cc6 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/AnalysisService.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/AnalysisService.kt @@ -11,10 +11,7 @@ import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import app.loup.streams_channel.StreamsChannel import deckers.thibault.aves.MainActivity.Companion.OPEN_FROM_ANALYSIS_SERVICE -import deckers.thibault.aves.channel.calls.DeviceHandler -import deckers.thibault.aves.channel.calls.GeocodingHandler -import deckers.thibault.aves.channel.calls.MediaStoreHandler -import deckers.thibault.aves.channel.calls.MetadataFetchHandler +import deckers.thibault.aves.channel.calls.* import deckers.thibault.aves.channel.streams.ImageByteStreamHandler import deckers.thibault.aves.channel.streams.MediaStoreStreamHandler import deckers.thibault.aves.utils.FlutterUtils @@ -42,13 +39,22 @@ class AnalysisService : MethodChannel.MethodCallHandler, Service() { } val messenger = flutterEngine!!.dartExecutor + // channels for analysis + + // dart -> platform -> dart + // - need Context MethodChannel(messenger, DeviceHandler.CHANNEL).setMethodCallHandler(DeviceHandler(this)) MethodChannel(messenger, GeocodingHandler.CHANNEL).setMethodCallHandler(GeocodingHandler(this)) MethodChannel(messenger, MediaStoreHandler.CHANNEL).setMethodCallHandler(MediaStoreHandler(this)) MethodChannel(messenger, MetadataFetchHandler.CHANNEL).setMethodCallHandler(MetadataFetchHandler(this)) + MethodChannel(messenger, StorageHandler.CHANNEL).setMethodCallHandler(StorageHandler(this)) + + // result streaming: dart -> platform ->->-> dart + // - need Context StreamsChannel(messenger, ImageByteStreamHandler.CHANNEL).setStreamHandlerFactory { args -> ImageByteStreamHandler(this, args) } StreamsChannel(messenger, MediaStoreStreamHandler.CHANNEL).setStreamHandlerFactory { args -> MediaStoreStreamHandler(this, args) } + // channel for service management backgroundChannel = MethodChannel(messenger, BACKGROUND_CHANNEL).apply { setMethodCallHandler(context) diff --git a/lib/services/analysis_service.dart b/lib/services/analysis_service.dart index 7b2615d14..706e24090 100644 --- a/lib/services/analysis_service.dart +++ b/lib/services/analysis_service.dart @@ -8,6 +8,7 @@ import 'package:aves/model/source/enums.dart'; import 'package:aves/model/source/media_store_source.dart'; import 'package:aves/model/source/source_state.dart'; import 'package:aves/services/common/services.dart'; +import 'package:aves/utils/android_file_utils.dart'; import 'package:fijkplayer/fijkplayer.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; @@ -42,6 +43,7 @@ const _channel = MethodChannel('deckers.thibault/aves/analysis_service_backgroun Future _init() async { WidgetsFlutterBinding.ensureInitialized(); initPlatformServices(); + await androidFileUtils.init(); await metadataDb.init(); await mobileServices.init(); await settings.init(monitorPlatformSettings: false);