minor fixes

This commit is contained in:
Thibault Deckers 2023-01-11 12:15:44 +01:00
parent 41faaffd34
commit 4d226e6e38
3 changed files with 16 additions and 7 deletions

View file

@ -39,6 +39,7 @@ open class MainActivity : FlutterActivity() {
private lateinit var analysisStreamHandler: AnalysisStreamHandler private lateinit var analysisStreamHandler: AnalysisStreamHandler
internal lateinit var intentDataMap: MutableMap<String, Any?> internal lateinit var intentDataMap: MutableMap<String, Any?>
private lateinit var analysisHandler: AnalysisHandler private lateinit var analysisHandler: AnalysisHandler
private lateinit var mediaSessionHandler: MediaSessionHandler
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
Log.i(LOG_TAG, "onCreate intent=$intent") Log.i(LOG_TAG, "onCreate intent=$intent")
@ -77,13 +78,14 @@ open class MainActivity : FlutterActivity() {
errorStreamHandler = ErrorStreamHandler().apply { errorStreamHandler = ErrorStreamHandler().apply {
EventChannel(messenger, ErrorStreamHandler.CHANNEL).setStreamHandler(this) EventChannel(messenger, ErrorStreamHandler.CHANNEL).setStreamHandler(this)
} }
val mediaCommandHandler = MediaCommandStreamHandler().apply { val mediaCommandStreamHandler = MediaCommandStreamHandler().apply {
EventChannel(messenger, MediaCommandStreamHandler.CHANNEL).setStreamHandler(this) EventChannel(messenger, MediaCommandStreamHandler.CHANNEL).setStreamHandler(this)
} }
// dart -> platform -> dart // dart -> platform -> dart
// - need Context // - need Context
analysisHandler = AnalysisHandler(this, ::onAnalysisCompleted) analysisHandler = AnalysisHandler(this, ::onAnalysisCompleted)
mediaSessionHandler = MediaSessionHandler(this, mediaCommandStreamHandler)
MethodChannel(messenger, AnalysisHandler.CHANNEL).setMethodCallHandler(analysisHandler) MethodChannel(messenger, AnalysisHandler.CHANNEL).setMethodCallHandler(analysisHandler)
MethodChannel(messenger, AppAdapterHandler.CHANNEL).setMethodCallHandler(AppAdapterHandler(this)) MethodChannel(messenger, AppAdapterHandler.CHANNEL).setMethodCallHandler(AppAdapterHandler(this))
MethodChannel(messenger, DebugHandler.CHANNEL).setMethodCallHandler(DebugHandler(this)) MethodChannel(messenger, DebugHandler.CHANNEL).setMethodCallHandler(DebugHandler(this))
@ -94,7 +96,7 @@ open class MainActivity : FlutterActivity() {
MethodChannel(messenger, HomeWidgetHandler.CHANNEL).setMethodCallHandler(HomeWidgetHandler(this)) MethodChannel(messenger, HomeWidgetHandler.CHANNEL).setMethodCallHandler(HomeWidgetHandler(this))
MethodChannel(messenger, MediaFetchBytesHandler.CHANNEL, AvesByteSendingMethodCodec.INSTANCE).setMethodCallHandler(MediaFetchBytesHandler(this)) MethodChannel(messenger, MediaFetchBytesHandler.CHANNEL, AvesByteSendingMethodCodec.INSTANCE).setMethodCallHandler(MediaFetchBytesHandler(this))
MethodChannel(messenger, MediaFetchObjectHandler.CHANNEL).setMethodCallHandler(MediaFetchObjectHandler(this)) MethodChannel(messenger, MediaFetchObjectHandler.CHANNEL).setMethodCallHandler(MediaFetchObjectHandler(this))
MethodChannel(messenger, MediaSessionHandler.CHANNEL).setMethodCallHandler(MediaSessionHandler(this, mediaCommandHandler)) MethodChannel(messenger, MediaSessionHandler.CHANNEL).setMethodCallHandler(mediaSessionHandler)
MethodChannel(messenger, MediaStoreHandler.CHANNEL).setMethodCallHandler(MediaStoreHandler(this)) MethodChannel(messenger, MediaStoreHandler.CHANNEL).setMethodCallHandler(MediaStoreHandler(this))
MethodChannel(messenger, MetadataFetchHandler.CHANNEL).setMethodCallHandler(MetadataFetchHandler(this)) MethodChannel(messenger, MetadataFetchHandler.CHANNEL).setMethodCallHandler(MetadataFetchHandler(this))
MethodChannel(messenger, StorageHandler.CHANNEL).setMethodCallHandler(StorageHandler(this)) MethodChannel(messenger, StorageHandler.CHANNEL).setMethodCallHandler(StorageHandler(this))
@ -167,6 +169,7 @@ open class MainActivity : FlutterActivity() {
override fun onDestroy() { override fun onDestroy() {
Log.i(LOG_TAG, "onDestroy") Log.i(LOG_TAG, "onDestroy")
mediaSessionHandler.dispose()
mediaStoreChangeStreamHandler.dispose() mediaStoreChangeStreamHandler.dispose()
settingsChangeStreamHandler.dispose() settingsChangeStreamHandler.dispose()
super.onDestroy() super.onDestroy()

View file

@ -33,15 +33,19 @@ class MediaSessionHandler(private val context: Context, private val mediaCommand
} }
} }
fun dispose() {
context.unregisterReceiver(noisyAudioReceiver)
}
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) { override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
when (call.method) { when (call.method) {
"update" -> ioScope.launch { safeSuspend(call, result, ::update) } "update" -> ioScope.launch { safeSuspend(call, result, ::updateSession) }
"release" -> ioScope.launch { safe(call, result, ::release) } "release" -> ioScope.launch { safe(call, result, ::releaseSession) }
else -> result.notImplemented() else -> result.notImplemented()
} }
} }
private suspend fun update(call: MethodCall, result: MethodChannel.Result) { private suspend fun updateSession(call: MethodCall, result: MethodChannel.Result) {
val uri = call.argument<String>("uri")?.let { Uri.parse(it) } val uri = call.argument<String>("uri")?.let { Uri.parse(it) }
val title = call.argument<String>("title") val title = call.argument<String>("title")
val durationMillis = call.argument<Number>("durationMillis")?.toLong() val durationMillis = call.argument<Number>("durationMillis")?.toLong()
@ -115,7 +119,7 @@ class MediaSessionHandler(private val context: Context, private val mediaCommand
result.success(null) result.success(null)
} }
private fun release(@Suppress("unused_parameter") call: MethodCall, result: MethodChannel.Result) { private fun releaseSession(@Suppress("unused_parameter") call: MethodCall, result: MethodChannel.Result) {
session?.let { session?.let {
it.release() it.release()
session = null session = null

View file

@ -384,7 +384,9 @@ class _AvesAppState extends State<AvesApp> with WidgetsBindingObserver {
void didChangeMetrics() => _updateCutoutInsets(); void didChangeMetrics() => _updateCutoutInsets();
Future<void> _updateCutoutInsets() async { Future<void> _updateCutoutInsets() async {
AvesApp.cutoutInsetsNotifier.value = await windowService.getCutoutInsets(); if (await windowService.isCutoutAware()) {
AvesApp.cutoutInsetsNotifier.value = await windowService.getCutoutInsets();
}
} }
Widget _getFirstPage({Map? intentData}) => settings.hasAcceptedTerms ? HomePage(intentData: intentData) : const WelcomePage(); Widget _getFirstPage({Map? intentData}) => settings.hasAcceptedTerms ? HomePage(intentData: intentData) : const WelcomePage();